公众号关注 「奇妙的 Linux 世界」
设为「星标」,每天带你玩转 Linux !
— 1 —
可操作的概述
多亏了云计算和开源,软件开发的速度从几年缩短到几个月。
每家公司都在向一个软件公司转变。DevOps 已迅速成为公司大规模开发和部署软件的最有效方式。
DevOps 是将成熟的工作流和工具应用于软件开发生命周期的过程。Amazon、Adobe 和 Netflix 等领先公司都有成熟的 DevOps 工作流和技术堆栈来构建产品。
DevOps 越来越成为企业关注的焦点。超过 90% 的企业领导者将 DevOps 列为其组织的首要战略重点。然而,只有 12% 的企业拥有成熟的 DevOps 能力。
为了让组织从云中获得最大价值,他们需要拥有合适的平台来优化软件交付。但是,这存在一些挑战。只有五分之一的公司表示他们拥有合适的工具和自动化来扩展 DevOps。
这些挑战的出现也为企业提供了在 DevOps 领域来解决此问题的机会。虽然目前只有10% 的公司围绕单一 DevOps 平台进行了标准化,但另有 60% 的公司表示他们可能会在未来几年内这样做。
安全仍然是组织最紧迫的问题之一,我们看到安全性措施正在通过 DevSecOps 紧密集成到软件中。现在大部分公司都计划将安全性纳入其开发能力中。
鉴于 DevOps 这种处理工作的方式,未来该行业可能会出现整合,这最终会产生一些赢家,随着时间的推移,利基参与者(niche players)可能会变得更加边缘化。
随着 AI/ML 的进步,自动化将在软件开发中发挥越来越重要的作用,包括自动代码审查和代码/功能建议。
— 2 —
DevOps 的演变
软件正在吞噬世界。现在软件定义了创新的速度,并继续区分赢家和输家。数字化转型仍然是老牌公司生存的关键。获胜者不仅需要具备构建软件的能力;还需要在这方面表现出色。软件开发始终需要更大的规模和更快的速度。如今,超过 70% 的 DevOps 团队每天发布一次代码,比 2021 年增加了 11%。
定义 DevOps
DevOps 的核心是一组实践和方法,将软件开发人员(Dev)和运维(Ops)团队聚集在一起来大规模交付软件:
安全团队在软件交付安全方面发挥着关键作用。
工程团队计划、创建和验证代码。
运维团队确保成功的发布、打包、配置和监控。
构建有效的 DevOps 流程需要成熟的无缝协作文化。需要管线(pipeline)、代码合并、测试、验证和高度自动化才能快速安全地将代码从设计和构建转移到部署和生产。这反映在持续集成/持续交付(CI/CD)中,这是 DevOps 框架的重要组成部分。CI 是将测试与代码自动集成的哲学,而 CD 涉及频繁部署该代码。使用持续迭代过程来构建、测试和部署可以帮助避免错误(bug)和代码失败。
DevOps 实践允许开发、安全和运维团队协作并一起工作,从而缩短软件开发生命周期,有时能够从几个月缩短到几小时。
来源:GitLab
如何做到
过去,开发人员会在他们的个人计算机上编写和运行代码。启动时,他们需要大型单体服务器和流程来部署它们。DevOps 工具使软件团队能够每天多次为其用户部署代码。正如 Technically 的 Justin Gage 所描述的那样,就在 10 或 15 年前,如果你正在编写软件,则需要:
手动管理你的远程存储库(没有 GitHub),运行你自己的数据中心,或者租用别人的(没有 AWS),在不同位置缓慢移动代码(没有 1gbps 互联网)并手动运行测试和 ping 服务器进行监控(没有 Datadog)。新功能和产品发布非常的缓慢。
在过去 10 年中,云计算和开源在推动 DevOps 发展方面发挥了关键作用。
云计算和开源工具都为软件交付提供了规模优势,并使整个过程成本变得更低。组织正在从单体架构(大型、集中式服务器)转向微服务架构(分布式和小型应用程序)。但是你的架构越可扩展,你的流程就越混乱。能够更快的交付并不意味着可以更智能的交付。GitHub 和 GitLab 等企业应运而生,帮助实现从代码到部署的整个软件交付工作流程的自动化。
随着每家公司都成为了软件公司,以及软件部署速度的加快,开发人员的生产力变得更加重要。运维团队必须与开发人员保持同步,以便能够有效地管理开发人员交付的产品和监控。如果没有可靠和高效的基础设施运维,开发人员就无法最大化他们的产出。
DevOps 将开发人员和运维人员联系在一起作为一种解决方案而出现。通过使用一套实践(practice)、工作流程和工具,从业者希望能够大大加快创新速度,减少重复性工作量。因此,DevOps 工具是为开发人员提供支持的重要工具包。但是 DevOps 革命是通过软件开发中的一些巨大飞跃实现的:云计算和开源。
云:DevOps 引点(Spark)
在 1990 年代构建软件应用程序需要付出大量的努力,其中最重要的是要架设自己的物理服务器。平均而言,开发一个新的软件应用程序可能需要 3 年时间。这个过程非常缓慢,你经常会看到一些项目被废弃,因为它们在部署之前可能就已经过时了!
云计算的引入,以及通过使用容器、无服务器和 API 对不同编程组件的持续抽象,极大的提高了软件的生产率。整个平台都建立在云供应商之上:Shopify 和 Snap 建立在 GCP 上;Netflix 依赖于 AWS。
今天,你可以在 AWS 上托管你的应用程序,将你的数据存储在 Snowflake 上,通过 Cloudflare 提供内容,使用 Vercel 构建你的客户端应用程序,使用 Datadog 监控你的应用程序,并且可以通过 API 的方式直接与 Twilio、Stripe 以及 Okta 等数以千计的其他应用程序集成。这种演变已将软件开发生命周期从数年缩短到数月,甚至数周。
云的演变是软件构建方式最重要的转变。通过与开源的结合,只要通过互联网连接,任何开发人员都可以获得开发过程中任何方面的最佳工具。然而,这种速度和应用程序的蔓延使得管理起来异常复杂。这种复杂性是让 DevOps 成为优先事项的引点。
DevOps 随着云计算的日益普及而发展,是一种更好的管理云操作复杂性的哲学和文化方法。DevOps 提供了更高的透明度和统一的目标,有助于克服开发人员和运维团队之间的摩擦(前者专注于速度,后者专注于稳定性)。
开源:DevOps 平台的关键驱动力
除了云,开源平台在 DevOps 的采用中发挥了关键作用。谈到有效的 DevOps 部署,如果你查看这些软件公司,至少 60% 的 DevOps 资产是开源的,其中超过 54% 的公司完全部署开源产品。与此同时,那些开源使用率较低的公司,只有 20% 成功的部署了 DevOps 工具。
由于成本效益高、易于采用以及拥有与开发人员的其他工具集成的能力,开源越来越受欢迎。开源软件旨在与其他软件组件一起工作和集成,帮助组织利用最好的工具来完成工作,同时降低复杂性。
许多顶级 DevOps 供应商都在开源框架之上构建了他们的软件。这样做的一个主要原因是它可以帮助供应商适应不断变化的环境并确保他们拥有高质量的代码库。开源代码库有时有成千上万的开发人员在仔细检查他们自己项目的代码。随着时间的推移,代码库不断进行类似 Kaizen[1] 的改进。
这与专有代码形成鲜明对比,在专有代码中,供应商将拥有数量有限的内部开发人员来管理可能包含数万行代码的代码库。所以,这也是许多领先的软件供应商成为过时的遗留平台的根本原因,特别是如果他们的代码库采用的是单体结构而不是微服务架构。
源代码管理领域出现了重大的开源创新。Git 于 2005 年发布,是一个免费的开源源代码存储库,使开发人员能够更好的进行版本控制。当开发人员编写代码然后对其进行测试时,他们会遇到一些错误,这是一个不可避免的问题。版本控制使他们能够恢复到不包含错误的代码库的早期版本,这样他们就可以更轻松地进行故障排除。
Git 最大的一个新增亮点之一是它的分支模型,它允许开发人员编写独立于代码库主干的代码分支。这使开发人员可以灵活地尝试新想法,而不会影响整个应用程序或生产中的代码。Git 可以在需要时毫不费力地合并、删除或撤回分支。
— 3 —
评估 DevOps 机会
今天的开发人员数量估计接近 3000 万。只有 50% 的公司在其组织中大规模实施了 DevOps,只有五分之一的公司表示他们拥有合适的工具和自动化来扩展 DevOps。许多公司仍在追赶以填补这些空白。这意味着 DevOps 革命仍处于早期阶段。
DevOps 供应商有很大的机会提供必要的软件,以促进更具凝聚力的文化和简化工作流程。虽然大多数组织都在推出 DevOps,但其中 82% 的 DevOps 部署处于中低水平;但DevOps部署已经开始进行中了。
来源:State of DevOps Report 2021
现在,公司有机会给各种规模的组织提供加速采用 DevOps 的产品。到 2027 年,DevOps 市场预计将从 2021 年的 70 亿美元增长到 260 亿美元。随着市场的增长,管理各种不同的解决方案的复杂性也随之增加。Gartner 估计,到 2024 年,60% 的组织将从多点解决方案转向价值流管理平台,以简化应用程序交付,这远高于 2021 年的 20%。
DevOps 世界的整合即将到来。当每家公司评估其潜在机会的规模时,它会围绕着每家公司的能力来构建 DevOps 平台,而不仅仅是一个点解决方案。大约 60% 的公司表示,他们计划在未来三年内整合 DevOps 平台。这种转变并不容易。完全过渡到 DevOps 的困难主要归因于所需的文化和组织转型。
— 4 —
DevOps 技术栈
DevOps 是一种文化转变,涉及软件开发生命周期中的各个步骤。目前还没有一个包罗万象的平台来覆盖整个范围。DevOps 团队通常将定制的工具链放在一起,以连接由开源和供应商工具组成的各种人员和工作流程。一个的输出是另一个的输入,依此类推。这导致供应商格局非常分散。
来源:Sapphire Ventures
每个组织都选择他们想要用于自己流程的工具链。当一家公司利用 DevOps 时,他们的工具链将涵盖需求规划、创建、测试、发布和监控等阶段。大多数 DevOps 供应商将专注于工具链的特定领域,例如需求规划、问题跟踪、源代码控制、代码编写、测试、配置管理、部署或监控。
来源:Hubspot
总体而言,随着用户利用机会测试不同的一流解决方案,软件开发会变得越来越分散(fragmented)。随着软件生产周期速度的增加,对无缝工具链的需求变得越来越重要。
鉴于涉及多个利益相关者,确定组织将使用哪些 DevOps 工具可能会很复杂。高管们希望确保正常运行时间并控制成本,而开发人员则专注于性能和易用性。首先,我们将介绍一些在 DevOps 生命周期中利用的关键平台。然后我们将更多地讨论 DevOps 的未来,以及它是如何变化的。
GitHub
Git 是开发人员在其工作站上本地安装和使用的软件。随着云计算的出现,GitHub 也出现了,它已经成为最大的基于云的平台,扩展了 Git 的优势。可能令人困惑的是,虽然 GitHub 的软件是封闭源代码的,但它实际上是几乎所有开发人员和非编码人员创建和共享其开源项目的首选之地。GitHub 成功的关键贡献者是它的社区。
来源:GitHub
使用 GitHub,可以轻松地与其他团队成员共享代码。你可以查看、编辑和评论他人的代码。授权人员可以远程访问 Git 存储库。从本质上讲,Git 有助于 DevOps 团队协调代码编写,而 GitHub 的分支模型使开发人员能够贡献新的或修改后的代码,这些代码可以在不覆盖主分支中现有代码的情况下进行验证。
2018 年,微软以 76 亿美元的价格收购了 GitHub。通过 GitHub,微软开始采取措施重建与开源社区的关系。微软前 CEO 史蒂夫·鲍尔默(Steve Ballmer)此前曾将 Linux 称为癌症。
在微软的支持下,GitHub 继续发展壮大。2022 年 10 月,GitHub 的 ARR 达到 10 亿美元,活跃用户达到 9000 万,从收购时的 2 亿美元增加到 3 亿美元。GitHub 也受益于微软的平台,包括他们与 OpenAI 的合作。大型语言模型(LLM)帮助 GitHub 的平台检查代码、生成代码和自动化安全测试。
GitLab
随着 DevOps 成为事实上的软件生产方法,越来越多的参与者希望扩展他们的平台。GitLab 在市场上占据了独特的地位,因为他们很早就明确表示他们正在尝试构建一个开放的核心平台以扩展整个 DevOps 生命周期。
来源:GitLab
GitHub 和 GitLab 的核心区别在于 GitHub 专注于代码存储库,并使用户能够轻松地与他们选择的 CI/CD 工具(例如 Jenkins、CircleCI)集成。GitLab 不仅包含他们自己的 CI/CD,还在一个平台中包含一整套 DevOps 工具,因此,如果用户选择,则不需要其他第三方工具。
GitLab 对其产品特性、路线图以及与其他工具的比较也是非常公开的。GitLab 甚至针对 GitHub 和 GitLab 的行业标准发布了其功能成熟度分析。GitLab 的完成度为 82%,而 GitHub 的完成度为 56%。
来源:GitLab
GitLab 是 DevOps 领域的新兴领导者之一。该公司于 2021 年 10 月进行首次公开募股,截至 2022 年 10 月,他们的 LTM 收入达到 3.33 亿美元,同比增长约 70%。GitLab 发展势头的主要驱动力是其成为多产品工具链的独特方法。他们设法将自己定位为一个单一的应用程序,可以提供端到端的综合 DevOps 解决方案,并具有强大的安全功能。
GitLab 的 CI/CD 自动执行构建、测试和部署代码到生产环境所需的步骤。他们的平台可以自动配置基础设施并管理基础设施变更、票务(ticketing)和版本控制。
虽然其他平台具有一种优势(即代码存储库、应用程序测试)并能够与其他第三方 DevOps 工具集成,但 GitLab 的独特之处在于它试图在整个 DevOps 堆栈中提供工具。他们拥有整个工具链的能力也使得跨用户角色的协作更加无缝。
来源:GitLab
GitLab 的多产品策略还使他们能够产生超过 130% 的净美元保留率(net dollar retention)。开发人员将针对特定需求测试 GitLab,然后将 GitLab 的其他功能与同类第三方工具进行比较。通过将所有工具都放在一个平台上,用户通常会选择采用更多 GitLab 的产品,从而推动高净美元保留率。通过使用来自 GitLab 的统一 DevOps 平台,T-Mobile 和 UBS 等公司能够将部署速度提高 10 倍。
GitLab 的开源参与在支持其产品创新方面发挥了关键作用。GitLab 在为公司代码库的开源组件做出贡献时,经常收到来自开发人员社区的功能反馈。
HashiCorp
HashiCorp 正在迅速成为 DevOps 中的知名品牌,并于 2021 年 12 月启动了 IPO。它比大多数其他 DevOps 供应商更垂直集成,因为它提供跨多云环境的基础设施配置服务。与 Chef、Puppet 和 Ansible 等工具相比,HashiCorp 的基础设施即代码(IaC)产品——Terraform,在开发人员中非常受欢迎。
HashiCorp 将其所有产品定位为多云产品,这对于必须跨多个不同云提供商进行部署的开发人员和工程师来说非常友好。与 GitLab 类似,HashiCorp 使其代码对他们的开源社区可见,这有很多好处,包括增强的安全性(即更快的发现错误)以及通过不断的持续改进,可以获得更高质量的软件。数以千计的开发人员为其开发做出了贡献,并将继续寻求优化代码。
来源:HashiCorp
HashiCorp 的开源方法使其能够与开发人员社区建立深厚的联系,同时社区也会支持他们与 DevOps 决策者建立关系的 GTM 策略,而不是采用自上而下的高接触(high-touch)方法来吸引高管的注意。你可以从 GitHub 上一些更受欢迎的产品的星数(类似于“赞”)的增长中看到开发者社区的一些回应。
来源:github.com/HashiCorp
HashiCorp 提供免费和商业产品。HashiCorp 的产品已被下载超过 1 亿次。该公司在其开源产品之上销售专有软件,重点是大型企业。截至 2022 年 10 月,该公司的 LTM 收入为 3.93 亿美元,同比增长约 52%。该公司还拥有 133% 的净美元保留率,这表明客户也在不断的付费。
CircleCI
CircleCI 是超过 100 万开发人员使用的持续集成(CI)平台。CircleCI 允许开发人员创建自动化测试、监控构建和定位问题,以便他们可以迭代和修复它们。该产品可帮助开发人员连接到 GitHub 等代码存储库,通过预构建集成、webhook(可定制集成)和 API 与工具链集成,然后部署到所选环境,如 AWS。该公司为用户提供一系列选择,包括云和自托管环境以及根据用户自定义需求的订阅服务。
CircleCI 提供与安全和管理相关的企业功能。CircleCI 是唯一获得 FedRAMP 认证的 CI/CD 工具之一。它支持隔离的执行环境,包括 Docker、Linux、macOS、Android、Windows 和自托管运行时。它们还支持 OpenID Connect 集成以实现更好的身份控制。
来源:CircleCI
Jenkins
Jenkins 是另一个非常流行的开源软件工具。它的 CI/CD 产品利用自动化来给出代码建议。它进一步协助构建代码库,管理代码分支与主分支的集成,测试,持续调试代码库,与各自的开发人员沟通问题,并将经过验证的代码推向生产。在高层次上,Jenkins 提供了一个带有支持工具的管线,可以帮助开发人员安全的编写代码、测试代码并将其交付到实际生产中。
其他几种常见的开源开发工具包括 ELK(用于日志记录和监控)、Ansible(用于硬件和配置管理)、Chef(也用于硬件和配置管理)和 Apache Kafka(实时数据流管理)。总的来说,有一大群玩家在处理 DevOps 生命周期的一个组成部分或另一个组成部分。但未来的场景演变可能与今天的样子大不相同。
— 5 —
DevOps 的展望
来源:Sapphire Ventures(Contrary Research)
软件开发的速度呈指数增长。仅在过去 10 年中,全球数据量就增长了 15 倍以上。上世纪 70 年代和 80 年代,科技界经历了一场“软件危机”,软件变得越来越重要,但其生产却经常超出预算且无法按计划进行。随着时间的推移,软件开发已经从关注效率演变为关注质量和可扩展性。
就事物的构建方式和人们的生活方式而言,技术越来越成为宇宙的中心。因此,我们需要构建可以大幅扩展的技术,并且比过去更快地完成这项工作。
来源:IEEE Computer Society
当你思考 DevOps 的未来会是什么样子时,你实际上是在看技术生产的未来会是什么样子。影响软件开发的趋势与软件本身的功能一样多变,但有三种趋势对未来的软件开发方式具有总体影响。
整合工具链:随着在软件开发生命周期中提高效率变得越来越重要,公司将寻求将更多的 DevOps 技术栈转移到同一平台上。这将有利于那些在同类最佳单点解决方案上构建多产品平台的公司,并为未来在 DevOps 中占据主导地位的公司奠定基础。
DevSecOps:随着软件开发速度的不断提高,在发布某些东西之前,事后安全审查的回旋余地不大。左移是将安全审查集成到开发生命周期中,对于任何希望成为主要 DevOps 平台的公司来说,这将成为越来越重要的筹码。
AI/ML 的融合:人工智能在每个行业都变得越来越普遍,但它最常用于快速移动、资源受限的环境中。世界上几乎没有任何价值链像软件一样快速移动和资源受限。从 AI 辅助代码审查到通过 AI 进行全面开发,自动化将通过多种方式影响软件的创建方式。
整合工具链
来源:GitLab
随着部署速度的提高,开发人员的生产力已成为首要任务。当涉及到开发人员的时间时,每家公司都会感到资源受限。增加更多的软件工程师不是一个可扩展的解决方案,同时我们也看到这种需求的不断增加。据估计,到 2030 年,软件工程师的短缺将超过 8000 万。公司正在竭尽全力提高开发人员的能力。
除了人才短缺之外,有证据表明,公司还需要更好地利用其现有的工程力。2018 年,Stripe 发布了一份名为 The Developer Coefficient 的关于软件工程效率的报告。他们这样描述这个机会:
“虽然当今企业面临着无数问题——安全漏洞、贸易关税、复杂的政府法规、日益激烈的全球竞争——但如何利用开发人员可能是影响他们未来成功的最被忽视的因素。开发人员充当力量倍增器,如果使用得当,他们有可能在未来十年内将全球 GDP 提高 3 万亿美元。虽然许多人认为缺乏开发人员是主要问题,但这项调查了六个不同国家的数千名 C 级高管和开发人员的研究发现,如果企业想更快地发展,就需要更好地利用现有的软件工程人才, 开发新产品,并利用新兴趋势。”
更好的利用现有软件工程资源的需求导致了两种趋势的流行:(1) 增加对开源社区的依赖,以及 (2) 增加对价值流管理的重视。
在开源方面,你会看到像 Grafana 这样的公司凭借其开源社区的力量,在很大程度上与 Datadog 等竞争对手形成了差异化。Grafana 的首席执行官 Raj Dutt 明确强调了这一点,他说:“我们 90% 的用户永远不会付钱给我们,这是设计使然。拥有一个健康的开源社区对我们来说非常重要。这是第一个任务。” 要了解有关 Grafana 的更多信息,您可以在此处[2]阅读 Contrary Research 备忘录。
在价值流管理方面,越来越多的 DevOps 平台继续强调从创意到生产和交付的端到端体验。一些公司已经通过收购建立了这些能力,例如 Microsoft 和 GitHub,或者 Cloudbees 和 Electric Cloud。
另一方面,GitLab 专注于在通用代码库上构建端到端平台。这进一步强调了他们成为“一体化的 DevOps 平台”的愿景。GitLab 成立于 2014 年,当你在他们的网站上查看他们的早期消息时,他们并没有从统一平台的愿景开始。但是消息强调的重点是开源,以及在代码上进行协作的能力。
来源:GitLab(June 2014)
从 2014 年到 2017 年,他们的重点继续围绕着为“现代开发人员”构建平台和统一开发生命周期的各种功能。DevOps 早在 2000 年代初就出现了,但构建一个统一的平台是闻所未闻的。2017 年底,该公司的消息声称开始围绕当今产品战略的核心理念:“整个软件开发和运营生命周期的单一应用程序。”
来源:GitLab(September 2017)
到 2020 年晚些时候,这一驱动原则演变成对营销更加友好的口号:“一体化 DevOps 平台”。虽然这只是 GitLab 的一个例子,但这代表了 DevOps 领域的整体情绪。如今,软件开发生命周期相互关联,拥有一个统一的平台具有明确的价值主张。
诚然,DevOps 工具链中供应商整合的一些论点对于这些希望推动其客户统一其 DevOps 堆栈的大型平台来说是自利的。一家应用安全公司的一位高管是这样说的:
“GitHub、Atlassian、微软……他们试图让每个人都采用统一的工具系统。但就工具而言,大多数人仍然选择同类中最好的。不过,这个想法是,有些人最终将采用更多的“你不会因为购买 IBM 而被解雇”的方法,即你从单一供应商处购买所有东西。”
无论整合是快速发生还是缓慢发生,有一件事是肯定的:除了效率之外,每个有抱负的 DevOps 平台都需要解决的下一个重要方面是安全性。
DevSecOps
DevSecOps 正在成为 DevOps 领域的另一个主要趋势。另一种表达趋势的常用方法是左移。如果你将开发生命周期想象成从左到右的路径,那么现状会将安全性置于工作流的最右侧——需要在部署之前进行审查。左移(Shift-left)是将安全性重新调整为开发生命周期的早期部分。
来源:Snyk
随着软件开发步伐的不断加快,安全运营团队捕获每个代码级漏洞的能力变得更加困难。一些消息来源表明,67% 的开发人员发布了带有漏洞的代码,84% 的代码库包含一个或多个开源漏洞。左移,以及越来越强调让开发人员参与安全流程,使安全审查流程更加主动,而不是被动。
与采用 DevOps 所需的文化变革类似,将安全性有效集成到更广泛的软件开发生命周期中也需要类似的文化变革。通常,安全和 DevOps 独立工作,开发人员专注于效率,并在安全介入之前取得良好进展,并强调在项目可以继续部署之前需要解决的大量问题。
左移是从开发人员开始编写代码和配置基础设施到部署和监控的安全最佳实践的一致应用。这分别涵盖了软件开发时间表以及测试(staging)和生产时间表。左移的各个方面可以自动化,以持续检查可能导致可利用漏洞的错误和不良做法。
来源: Convequity
左移不仅为组织提供了更好的安全性,而且还加快了上市时间。在项目已经取得进展后进行安全性的传统方法不可避免地会减慢速度,因为它将被推回给开发人员进行故障排除。一次就把事情做对有明显的好处,可以更好地响应最终用户的需求并降低成本。
如前所述,GitLab 对构建端到端 DevOps 平台的重视已经扩展到包括安全功能。Bridgecrew 于 2021 年被 Palo Alto Networks 收购,目前专注于 shift-left 的基础设施方面。自 Bridgecrew 被收购以来,下载量从 2020 年的 100 万激增至 2021 年的超过 300 万。
Snyk 是 DevSecOps 领域的主要供应商。Snyk 的平台会在开发人员编写代码时持续实时检查潜在漏洞,而不会像传统安全审查那样对生产力产生负面影响。Snyk 的用户认为易用性和明确的增值可以帮助他们加快 CI/CD 工作流程,同时保持高水平的安全性。
从 GTM 的角度来看,2022 年 7 月,Snyk 宣布他们的 ARR 达到 1.5 亿美元,尽管存在宏观逆风,但同比增长 150%。Snyk 的快速增长表明,尽管 IT 消费需求减弱,但 DevSecOps 正在成为许多组织的高优先级项目。要了解有关 Snyk 的更多信息,你可以在此处[3]阅读 Contrary Research 备忘录。
你会看到,企业对 DevOps 流程中安全性的持续需求不仅体现在 Snyk 的成功中,而且体现在整个公司的预算中。截至 2022 年 9 月,62% 的公司预计明年的安全预算将增加约 10%。四分之三的公司计划将安全性纳入其技术堆栈,以开发完全集成的 DevSecOps。
来源:Battery Ventures
安全性继续控制着预算和优先级,不仅因为它可以提高开发人员的效率,还因为安全性是每个公司都关心的一个未解决的问题。43% 的安全开发团队关注安全问题,因此专注于优化其组织以有效实施 DevSecOps。
虽然安全是开发人员生命周期的关键部分,但它也代表了对现有软件工程师本已有限能力的另一种压力。公司正在转向自动化以提高工程能力。
AI/ML 的融合
虽然安全是 DevOps 流程的第一个注入部分,但 AI/ML 紧随其后。大约一半的技术领导者表示他们正在研究 DataOps 和 MLOps 等新领域,以更好地利用他们的 DevOps 功能。其中一个例子来自 GitLab 的首席执行官 Sid Sijbrandij:
“如果我们看一下 AI/ML,会发现有两件事情正在发生。我们正在使用它来让 GitLab 变得更好。一个很好的例子是代码审查员……另一件事是帮助数据科学家完成他们的工作……我们看到一个伟大的融合正在发生,AI/ML工程师必须与 DevSecOps 人员合作,反之亦然,因为未来每个重要的应用程序两者都需要。”
考虑到软件工程师和数据工程师之间工作流程的相似性,MLOps 与 DevOps 更加集成是一个合乎逻辑的扩展。这让数据科学家成为任何 DevOps 平台的 TAM 的一部分。除了额外的用户角色之外,AI 正在成为 DevOps 产品中更重要的一部分。这些 DevOps 平台可以访问的数据量也为自动化越来越多的开发生命周期创造了机会。
这种趋势的最好例证是去年推出的 Amazon CodeWhisperer 或 Github CoPilot。CoPilot 是由 GitHub 和 OpenAI 开发的基于云的 AI 平台,通过在开发人员编码时提供建议来协助开发人员。CoPilot 围绕 OpenAI Codex 和 GPT-3 构建,从正在开发的代码中提取上下文,建议整行或整个功能,使开发人员能够更快地编写代码。它的大型语言模型是通过分析 GitHub 存储库上的所有开源代码,然后收集必要的数据来为开发人员试图完成的工作推荐最佳代码而构建的。
结合机器学习有助于优化软件交付的工作流程。智能模型有助于自动化构建、测试和部署应用程序的各个方面。考虑到软件的数量和种类,模型有丰富的数据集可以继续改进,从而使 GitHub 的 Copilot 和类似工具能够更准确地实时建议代码片段或整个功能。
Meta 的研发团队看到了软件开发中 AI/ML 的进步,做出了以下预测:
“随着 [支持 ML 的软件开发] 的进步,我们认为编程应该成为一种半自动化的任务,人类表达更高层次的想法,而详细的实施则由计算机自己完成。”
在 DevOps 的扫描和测试方面,Harness、Snyk 和 GitLab 等公司使用类似的模型来分析代码并帮助工程师检测安全异常和潜在的代码漏洞,这些模型使用经过公开可用的开放系统数据训练的预构建模型。例如,Snyk 收购了 Deepcode 以启用自动代码审查,此外还向寻找安全漏洞的开发人员提出更改建议。人工智能将继续在自动化和简化开发人员工作流程方面发挥关键作用,这将提高开发人员的工作效率。
其他公司正在从头开始实现开发人员工具的自动化。Replit 是一种基于浏览器的协作集成开发环境(IDE),允许开发人员使用 50 多种语言进行编码。该平台易于部署,具有多种集成功能,使开发人员可以轻松创建自己的编程环境。最近,他们宣布 Ghostwriter 作为其 AI 模式功能的一部分。该产品的大部分都是基于开源 LLM构建的,这些 LLM 已经针对易用性进行了优化。Ghostwriter 在代码片段和整个函数中提供了类似的代码完成建议。
大多数企业都强调开发人员的生产力是自动化的案例,而 Replit 则将自动化作为简化开发人员学习之旅的一部分。该公司对教育和托管服务的重视针对的是学习编程的开发人员或正在寻找更易于使用的副项目环境的成熟程序员。要了解有关 Replit 的更多信息,你可以在此处[4]阅读 Contrary Research 备忘录。
来源:Replit
— 6 —
DevOps 的未来就是软件开发的未来
到目前为止,云计算一直是开启快速软件开发的关键。访问最好的工具和资源提高了开发人员构建卓越软件的能力,并且比以往任何时候都更快。然而,这些相同的功能也导致了开发过程的极大复杂性。DevOps 是解决在没有创建基础设施加速的情况下问题的解决方案。
软件开发没有放缓的迹象。公司将继续从他们使用的 DevOps 平台中寻找尽可能多的价值,以降低应用程序在其流程中蔓延的复杂性。软件创建速度的加快将扩展 (1) 每个应用程序的安全功能,以及 (2) 公司可以访问的可用开发人员资源。
安全性将越来越多地交织在开发过程中,并将在该生命周期中尽早推进。安全性不仅会扩展到代码级别,还会扩展到云计算和抽象层,如 API 安全和容器安全。与软件开发一样,安全性是一个快速发展的领域。在自动化成为故事的关键部分之前,人类的专业知识只能走这么远。
AI/ML 的进步,以及开源存储库和现有软件网络中的大量数据,使得大型语言模型能够围绕软件语义构建。现在,DevOps 平台可以开始自动化开发过程的各个方面。AI 助手可以直接在 IDE 中提出代码建议。安全漏洞扫描也可以自动化,因为这些模型知道要寻找什么样的问题。
DevOps 的未来就是软件开发的未来。去年,风险投资公司向构建开发工具的公司投资了 370 亿美元。对软件以及构建该软件的软件开发人员的需求只会增加。平台存在着巨大的机会,可以成为这一日益重要的过程的核心组成部分。
相关链接:
https://en.wikipedia.org/wiki/Kaizen
https://research.contrary.com/reports/grafana
https://research.contrary.com/reports/snyk
https://research.contrary.com/reports/replit
本文转载自:「分布式实验室」,原文:https://url.hi-linux.com/s5uZ7,版权归原作者所有。欢迎投稿,投稿邮箱: [email protected]。
最近,我们建立了一个技术交流微信群。目前群里已加入了不少行业内的大神,有兴趣的同学可以加入和我们一起交流技术,在 「奇妙的 Linux 世界」 公众号直接回复 「加群」 邀请你入群。
你可能还喜欢
点击下方图片即可阅读
SQLite 的文艺复兴
点击上方图片,『美团|饿了么』外卖红包天天免费领
更多有趣的互联网新鲜事,关注「奇妙的互联网」视频号全了解!