软件开发架构师

InfoQ趋势报告:DevOps 和云计算

大数据 85 2019-03-11 10:48

本文要点:

  • Kubernetes 成功占领了容器编排市场,成了云无关(cloud-agnostic)计算的抽象。该领域的下一个“热门话题”可能是“服务网格”和开发者体验 / 工作流工具。
  • 混沌工程已经处于早期采用者阶段。“弹性工程”之前和混沌工程混在一起,现在我们已经把它独立出来,归入创新者采用阶段。
  • 我们正在密切关注边缘计算、边缘机器学习推理以及“无源”计算(originless computing)方面创新性的进展。
  • Nicole Forsgren、Jez Humble 和 Gene Kim 合著的《Accelerate》一书定义了数字转型和高绩效团队领域一些主题,这些主题处于早期采用者阶段。
  • 尽管 "AIOps" 可能是一个被滥用的时髦词汇,但我们仍然把它归入创新者阶段并保持关注。更具体来讲,是关注机器学习所提供的运维洞见和告警的潜在价值。
  • 我们认识到,将持续集成(CI)和持续交付(CD)混在一起,以及在概念上将实践和工具归为一类都不妥当。我们认为,定位为 CI 工具的应用程序 / 服务处于晚期大众采用阶段,而 CI 最佳实践仍处于早期大众采用阶段。此外,我们认为 CD 实践处于早期大众采用阶段
  • 我们正在跟踪软件定义交付宣言和“代码 vs 配置”方式(用于交付和管道自动化)的最新成果。

图片

InfoQ 和 QCon 主要关注处于创新者(Innovators)、早期采用者(Early Adopters)和早期大众(Early Majority)阶段的技术。Geoffrey Moore 所说的早期市场是由“技术狂热爱好者和想要赢得先机的远见者”组成的。我们要努力做的,就是找出与早期市场相匹配的技术。同时,我们也在寻找那些有可能“跨越鸿沟”走向大众的技术。在这种背景下,可能值得一提的是,一种技术在采用曲线上的确切位置可能会变化。 例如,目前微服务被湾区公司广泛采用,但它在其它地方也许不太合适,应用并不广泛。

这篇文章主要介绍我们对 DevOps 和云计算的看法。这两个领域侧重于基础架构模式、技术框架中模式的实现、以及软件工程师必须掌握的设计流程和设计技能。

在这份云计算和 DevOps 趋势报告中,我们认为Kubernetes真正地占领了容器编排市场,是默认的云无关计算抽象。 但是,Kubernetes 并非一个完整的平台即服务(PaaS),而平台即服务恰恰是大多数组织高效部署和运维软件所需要的。因此这个领域的下一个“热门话题”可能是“服务网格”和开发者体验及工作流工具。 服务网格用于管理服务间的通信和发布控制。开发者体验及工作流工具能让工程师高效地完成“开发 - 测试 - 部署 - 观察”周期。

我们认为混沌工程已经处于早期采用者阶段,这主要归功于 Netflix 团队和 O’Reilly《混沌工程》作者的推广,以及相关工具的增多,比如混沌工具包Gremlin 公司作为服务提供的工具。 根据与 John Allspaw、Casey Rosenthal、Nora Jones 以及其他社区成员的讨论,我们把“弹性工程”从混沌工程独立出来,并将其归入创新者类别。

我们正热切关注边缘计算、边缘机器学习推理以及“无源”计算的进展。 这些技术大多处于创新者阶段,但是很显然,像Cloudflare这样的公共云供应商和创新者正在往其中投入大量资源。

Nicole Forsgren,Jez Humble 和 Gene Kim 合著的《Accelerate》定义了数字化转型和高绩效团队方面的几个主题。 基于与外部贡献者的讨论,我们目前正在跟踪其中一些主题,例如“衡量(高) 绩效”、基于证据的转型和变革型领导。 我们认为这些主题处于早期采用者阶段,并热切希望在 InfoQ 上发布更多这些方面的文章。

尽管 "AIOps" 可能是一个被滥用的时髦词汇,但我们仍然把它归入创新者阶段并保持关注。更具体来说,是关注机器学习所提供的运维洞见和告警的潜在价值。随着软件系统变得日益复杂和更加分布式,这类技术可以完善分布式(全栈)跟踪能力,方便问题检测,并有助于减少故障隔离期间的搜索空间。

我们发现,将持续集成(CI)与持续交付(CD)混为一谈,以及把实践和工具归为一类都不妥当。事实上我们承认,我们发布的这方面的文章以及相关文章主题标签远非完美。 我们认为,定位为 CI 工具的应用程序 / 服务处于晚期大众阶段,但 CI 最佳实践仍处于早期大众阶段。此外,我们认为 CD 实践处于早期大众阶段。

我们正在密切关注软件定义交付宣言和”代码 vs 配置“(针对交付和管道自动化)方面的最新成果。 目前Atomist 和 Pivotal 团队正在推进这一领域的大量对话(和技术)。

下面这张是 2018 年第一季度的趋势图。2019 年第一季度的趋势图在文章开始。

图片

以下内容来自 InfoQ 云计算频道和 DevOps 频道编辑之间的内部对话:
Daniel Bryant (独立技术顾问、Datawire 产品架构师、InfoQ 新闻经理)

作为十个发起人之一,我认为混沌工程正在进入早期采用者阶段,Gremlin 和 AWS 团队把它作为对传统 DR/BC 的重新想象 / 扩展进行讨论;此外,我认为极简主义容器镜像(minimalist container images)应归入早期大众 —— 依赖它的自建工具包(比如 LinuxKit)技术归入创新者 —— 分布式追踪可能归入早期大众,通用 DevOps 归入晚期大众,以及容器 ,IaC 和持续交付可能归入晚期大众?
我们需要将服务网格加进来,因为它们是一个超级热门话题,归入早期采用者?
我想听听大家的想法,看是否需要移动一些主题的位置,添加或删除一些主题?

Helen Beal (DevOps 顾问、教练、培训师、演讲者、作家)

我的想法是:
像你说的那样,把 CI/CD 归入晚期大众
把 AIOps 和用于运维的机器学习一起添加到创新者?
'DevOps 工具链’应该在那吗? 归入早期大众?
把电气云(Electric Cloud)和 Xebia Labs 添加到 DevOps 仪表板
将 AI 添加到仪表板?
ChatOps 归入早期大众

Steffen OpelUtoolity管理合伙人)

我同意将 DevOps、容器、IaC 和 CD 归入晚期大众,不用它们的人很快就会落伍。把服务网格添加到早期采用者的建议很好。
我也赞同将 AIOps 作为一个主题添加到创新者中,尽管我认为它更像是“用于运维洞见和告警的机器学习”的广义超集和并能取代它(它涵盖了其它一些领域,比如最近发布的 AWS EC2 预测扩展功能)。

虽然人们对 ChatOps 和全栈跟踪的兴趣与日俱增,但我认为他们的采用情况尚未到达早期大众阶段的标准(至少在“处理大多数 / 所有操作的既定方式”方面),并且 ChatOps 工具成熟度还有很多不足之处。另一方面,“日志聚合 / 分析”似乎已超过早期大众阶段的标准(它完善了“集中日志聚合”,也许现在可以合并这些主题了)。

最后,我想把“边缘计算”作为创新者 / 早期采用者主题(例如 Lambda@Edge、AWS Snowball Edge、AWS Greengrass、Cloudflare Workers 等服务)。一旦广泛应用的公有云(比如 CloudFront,Lambda 以及最近上线的 Cloudflare)提供边缘计算能力,这些能力将快速可用。

Chris Swan** (研究员、DXC Technology副总裁和全球交付组织部门首席技术官)**

我赞同丹尼尔、海伦和斯蒂芬的说法。
这里还缺少针对 CD 的 " 代码 vs 配置 " 和软件定义交付宣言
关于斯蒂芬强调的边缘计算,“无源”能发展起来吗?目前它还很粗陋,早期的演示是毫无意义还是新趋势的开始还很难说(但综合考虑 IoT 以及对更低 UI 延迟的需求,我倾向于给它一些信任) 。
我可能有点吹毛求疵。人们之所以把 CI/CD 混为一谈,是因为这两种任务往往靠同一些工具完成。但我们都非常清楚,他们根本不一样。 CI 现在无疑处于晚期大众阶段,因为在传统组织中它的实施(相对)容易。我认为 CD 与晚期大众阶段尚有差距,因为首先要把 Dev/Ops 重组为 DevOps,许多公司连这一步还没完成。创新采用曲线中的创新间隔,像一道难以跨越的鸿沟,因为 CD 的采用并不仅仅是技术选型。

Helen Beal 

我认为这是 Chris 等人一个非常重要的澄清。

Manuel Pais (独立 DevOps、持续交付顾问)

关于 CI/CD 的讨论,我担心我们混淆了工具和实践,二者处于不同阶段。我同意 CI/CD 工具正在进入后期大众阶段,但只有部分实践(像 CI 和 CD 书籍中所定义的那样)被广泛应用。 许多组织并没有正确实施 CI(Jenkins 最近的一项调查清楚地显示,执行 CI 时所执行的构建远少于你的期望),他们仅仅使用了 CI 服务器。 今年早些时候Dave Farley 对(不)创建分支上的批评也说明了这一点。
(注意:之前把它们混为一谈,我也感到很惭愧。但当这个主题处于早期大众阶段时,问题并非像现在这么明显)
如果我们把工具和实践分开,那么我会把工具归入晚期大众,实践仍然放在早期大众。此外,我建议把主题页面和《Accelerate》中的一些实践对应起来,高绩效团队可以把它作为重要实践的参考 / 框架。
至于其它变化,我的想法有:
DevEx  ——> 归入早期采用者  —— 作为共同关注点由 Atomist 推进
GitOps  ——> 归入早期采用者 —— 由 Weave 推进
Chaos Eng ——> 归入早期采用者  —— 由 Gremlin 推进
AIOps(我们曾称之为“运维洞见和告警的机器学习”) ——> 保持不变

应用程序管道中的不可变基础架构 ——> 归入早期采用者
日志聚合 / 分析 ——> 归入早期大众
SRE / CRE —— > 需要拆分它们。谷歌仍在探索 CRE(它应该归入创新者),而 SRE 应该归入早期大众
K8s ——> 归入早期大众
自助平台 ——> 当然归入早期大众
软件定义网络 ——> 我不是这方面的专家,但我认为它应归入早期大众
容器 / 通用 DevOps/ 基础设施即代码 ——> 归入晚期大众
集中式日志聚合 ——> 和”日志聚合”重复(见上文,应该在早期大众中单独列出)
我还建议把下面这个新主题添加到创新者:
软件定义交付 ——> 由 Atomist 和SDD 宣言推进

Daniel Bryant

感谢大家的精彩讨论。我将会总结出一个主题报告。 我对 CI 和 CD 成熟度之间的差异(以及更低层级上实践和工具之间的差异)特别感兴趣,我们应该对它重点关注一下,它和我们的主题标签有关。
Manuel 建议把 Forsgren、Humble 和 Kim 的《Accelerate》一书优秀成果的关键思想融入到这一版趋势图中,这个建议很棒!这本书正迅速成为业内关键的参考书,就像最近 Manurel 在InfoQ 编辑推荐阅读文章列表中推荐的该作者的其它几本书那样。

InfoQ 的编辑团队通过招聘或培训专家来生产新闻和文章,以及分析当前和未来的技术趋势。

关于作者

图片Daniel Bryant 是组织和技术的变革者。他目前的工作包括:通过引入更好的需求和计划模型在企业中促进敏捷的实施、专注于与敏捷开发相关的架构问题、促进持续集成和持续交付的实施。他目前的技术领域主要包括 DevOps 工具、云计算 / 容器平台和微服务实现。他是伦敦 Java 社区(LJC)的负责人,是多个开源项目的贡献者,为多个知名网站(InfoQ、DZone 和 Voxxed)撰文,并定期在国际大会(QCon、JavaOne 和 Devoxx)上演讲。

图片Chris SwanDXC.technology 全球交付组织部门的 CTO,之前是 Global Infrastructure Services 的 CTO 以及 CSC 分布式计算的总经理。再往前,他分别是 Cohesive Networks、UBS、Capital SCF 和 Credit Suisse 的 CTO 和总监。在从事这些职位时,他的工作主要面向应用服务器、计算网格、安全、移动、云计算、网络和容器。

图片Steffen OpelUtoolity 的合伙人,Utoolity 是一家云计算和软件开发流程工具提供商。他最早学习的是 C++,早期专注于富客户端技术,并参与过 RESTful Web 服务架构的转型。行业向云计算的转变激起了他对开发流程自动化的兴趣,他专注于 DevOps 实施,喜欢在敏捷团队中使用 API 驱动开发。
Steffen Opel是 Utoolity 的管理合伙人。Utoolity 是一个工具软件提供商,提供云计算运营和软件开发流程相关的工具软件。 他接受过正规 C++ 教育,早期专注于富客户端技术,他很早就开始向 RESTful Web 服务架构转换。 云计算的主要行业转向使他对开发过程的彻底自动化感兴趣,他的重点转移到 DevOps 场景,他在敏捷团队中享受 API 驱动的开发。

图片Helen Beal 是一位 DevOps 的顾问、教练、培训师、演讲者和作家。 她专注于通过行为、交互和技术方面的改进,帮助组织优化创意转变为价值的过程。 她喜欢骆驼,甚至曾经看到过火烈鸟产卵。 你可以通过 helen.beal@infoq.com 与她联系 —— 尤其是你希望她写某些内容的时候。

nullManuel Pais 是一名专注于团队和工作流的 DevOps 交付顾问。他帮助企业实施自动化的持续交付,知道如何从技术和人性的角度来理解 DevOps。他还是 DevOpsTopologies.com 的联合评论员、InfoQ DevOps 板块的主编里斯本 DevOps 会议的联合创始人、《Team Guide to Software Releasability》一书的联合作者,该书即将出版。Tweet:@manupaisable

查看英文原文https://www.infoq.com/articles/devops-cloud-trends-2019

文章评论