企业DevOps:大规模DevOps成功的5个关键

尝过之后DevOps的好处在美国,企业自然会寻求扩大其应用范围。然而,当团队试图扩展DevOps工作时,适用于小规模用例的工具和流程往往会出现不足。您必须支持所有不同的团队、工具集、应用程序、流程、工作流、发布周期和管道——包括遗留和原生云。否则,您可能会以杂乱无章的自动化竖井或DevOps工具和过程它们的质量、安全性、速度和最终的成功程度各不相同。

成功是至关重要的,因为软件现在是几乎所有业务流程的基础和便利。DevOps——以其迭代的、协作的方式进行应用程序开发和交付——位于这个新价值链的中心。大规模实施需要正确的结构、过程和工具。

在这本电子书中,我们将概述在整个组织中有效扩展DevOps的五个关键原则。

  1. 端到端DevOps的集中管理
  2. 从一开始就安全
  3. 未来的证明与云原生
  4. Pipelines-as-Code
  5. 放眼全球,立足本地

企业DevOps成功的五个关键原则

作为企业DevOps的先驱和领导者,JFrog知道如何在整个组织中有效地扩展DevOps。超过5800人客户包括许多世界上最大的企业,在各个垂直领域,我们对大规模的DevOps略知一二。

我们与这些大型组织合作,因为他们拥抱DevOps——现在是原生云现代化——频繁和大规模地交付高质量的软件。以下是我们的客户在企业中扩展DevOps时实践的五个关键原则。

1 -端到端DevOps过程及其输出的集中管理

一个端到端的中央DevOps的平台应该包括二进制文件的管理,容器图片,CI / CD管道安全性和遵从性,软件分发到跨越运行时环境、边缘和“东西”的最后一英里部署。目前,许多CI / CD工具让您管理自动化过程或它们的结果(构建和二进制文件),但不同时管理两者,也不支持所有类型的二进制文件和技术。

有一个允许这种中心的DevOps平台是非常必要的构件管理从一个解决方案。统一的体验为你的整体提供了清晰的可见性和单一的真相来源SDLC和软件资产。这加速了软件交付,提高了代码质量、安全性和治理,并允许您采取行动,触发依赖项下载、存储库、部署、构建、管道和发布的自动化过程。

通过从单一的端到端DevOps解决方案管理交付过程、交付资产和输出,而不必在不同的工具之间进行“上下文切换”,您将能够:

  • 确保一致性和可追溯性在整个软件生命周期的所有工件中,当它们流经从开发到生产的管道时。
  • 拥有一个通用的知识库和单一的真相来源用于不同类型的二进制文件、容器映像、环境、进程、点工具等。
  • 管理安全性和遵从性,跨越所有工具、过程、工件和存储库(包括第三方的),以确保整个组织的治理。
  • 在整个管道和组织中获得充分的可见性.不再有竖井流程或雪花配置。

2 -安全从一开始-内置DevSecOps和“左移”功能

企业DevOps必须在整个软件生命周期(从开发到部署到生产)中纳入安全和遵从性检查。60%到80%的应用程序代码是由第三方开源组件组成的。使用OSS依赖项作为应用程序的一部分,通过重用生态系统中可用的现有组件,极大地加快了开发人员实现价值的时间和生产力。然而,这些依赖关系通常包含安全漏洞、许可证遵从性问题,或其他治理风险。

今天的企业必须管理空前的软件增长。他们正在生产越来越多的工件和应用程序——都使用OSS组件。此外,继续采用microservices-based由于无数连接的服务,以及每个容器映像可以包含数十个层和数百个OSS依赖关系的事实,云原生应用程序进一步扩大了攻击面。

越来越快地修补这些漏洞的迫切需求,试图领先于坏人一步,以及每200个开发人员中,典型的企业只有一个安全分析师的事实,使这种情况变得更加复杂。

试图在软件开发生命周期的末尾附加安全测试会造成瓶颈并减慢交付。因为安全性测试和扫描是一件痛苦的事情,它们往往会被推到流程的末尾,这时它们会成为瓶颈。

解决方案?

  • 安全性和遵从性必须是一流的公民,默认情况下是启用的,作为所选DevOps平台的组成部分。没有更多的工具/上下文切换,或记得运行测试或启动扫描。
  • 安全性必须是通用的,这意味着它支持所有类型的二进制文件,包括容器映像等云原生工件,并且在整个工件生命周期和CI/CD管道中紧密集成。
  • 深度递归扫描从应用层到操作系统(OS)层的所有依赖项(包括容器映像)都需要。要小心那些工具,它们不能自动扫描和识别到操作系统级别的细粒度依赖树,而无需开发人员进行繁重的工作。
  • 扫描必须是连续的和自动化的——在数据库级别上——跨越所有存储库和生产实例,而不仅仅是由管道触发。为什么?许多依赖关系可能已经存在于“系统”中,并且跨越了现有的应用程序/构建。数据库级扫描可以确保您对新暴露的漏洞有所警觉,并可以对它们进行修补——即使是在旧的应用程序或可重用的软件包中,这些软件包不是“活动的”当前CI/CD交付管道的一部分。除了db级扫描之外,您应该能够触发安全扫描和安全门,作为CI/CD自动化的一部分,作为另一个验证阶段。
  • 启用“左移位”。您的应用程序安全解决方案必须与您的IDE集成,这样您就可以在开发应用程序的过程中尽早识别并修补漏洞。您越早发现这些漏洞,修复它们的成本就越低——而不是等到代码已经准备好构建,更不用说交付生产了。
  • 设置安全和遵从性策略的治理规则,根据软件开发阶段和您公司的软件开发阶段,可以灵活地调整实施范围和后续行动DevSecOps推广计划。根据团队、应用程序、用例、DevSecOps成熟度和风险的不同,您的策略可能或多或少严格。

3 -云原生的未来证明:现代化势在必行

当您现代化您的应用程序以利用现代的原生云模式和Kubernetes等技术时,请记住您仍然需要能够更新您的遗留应用程序——并且不是所有的应用程序都是容器化的微服务(目前)。

企业DevOps平台应该同时支持原生云应用程序和遗留应用程序,这样你就可以管理这两种应用程序的整个生命周期。这包括它们的二进制文件、CI/CD进程、安全扫描等等,而不必切换到单独的工具。

同样,你的DevOps平台必须是混合的多重云,以便您既可以使用它,又可以使用它来管理跨on-prem、私有和公共云、多云和边缘基础设施的混合环境的交付管道。

4 - Pipelines-as-Code

定义“管道即代码”的能力提高了开发人员的工作效率,并有助于扩展DevOps的工作。您可以将管道定义存储在源代码控制中,这使得它们可共享(因此您可以与您的团队协作)、可版本化、可重用、可审计和可复制。

这消除了开发人员之间的冗余工作(因此团队不需要重新发明轮子来创建他们的CI/CD自动化),还允许您在整个组织中标准化和使用经过审查的自动化过程。

此外,它还使您的团队能够像产品一样不断地发展交付管道—用每个后续版本加强、改进和增强您的过程。

让我们更详细地看看“管道即代码”的好处和一些最佳实践:

  • 跨团队重用和标准化:“管道即代码”允许您建模和定义构建块,DevOps团队需要对其跨组织的工作流和流程进行标准化。这有两个主要好处:
    1. 通过重用和共享自动化构建块——包括对象、流程、秘密、资源、配置、策略、安全测试、条件执行等,提高了速度和开发人员的生产力。2022世界杯阿根廷预选赛赛程
    2. 通过对经过批准的、强化的、在整个组织中一致的过程进行标准化来改进质量和治理。这些努力消除了雪花配置、自动化竖井、不同的过程和容易出错的脚本,这些脚本会引入漂移和质量问题。
  • 在管道代码中使用参数。请记住,为了允许不同的团队利用相同的pipeline作为代码,这些构建块应该参数化,以便每个团队可以动态调用适当的输入(例如秘密、资源、环境配置参数等……)2022世界杯阿根廷预选赛赛程
  • 使用声明性自动化。“管道即代码”构建块最好是声明性的,这样就可以更容易地定义和扩展它们,避免“面条式”、容易出错的脚本或繁重的工作。声明式管道也更适合于原生云环境,如Kubernetes。
  • 现代化遗留工作流。由于大型组织可能有许多遗留脚本和技术债务,您需要一个灵活的DevOps平台来继承遗留CI/CD技术(如旧的构建工具)和自定义脚本(如您的Perl/Bash自动化)。这些也需要在你的“管道即代码”脚本中得到支持,使用调用外部系统或自定义代码的标准步骤或集成。通过这种方式,可以通过现代CI/CD解决方案触发和编排这些遗留脚本,实现端到端自动化,直到您有时间重构或现代化它们。
  • 授权DevOps平台团队在组织中扩展DevOps的采用,并在认证流程、升级门、安全和遵从性检查等方面保持一致。

5 .放眼全球,立足本地,对平台团队只字不提

系统级思考是DevOps的一个关键原则。它意味着系统地、整体地思考你的整个DevOps生态系统和你的软件交付实践——包括你的团队、文化、价值流、流程以及技术和架构选择。

要在企业中扩展DevOps,您需要考虑组织范围内的流程和工具,同时允许灵活性、敏捷性和选择自由,以授权开发人员,并支持团队的自主性和速度。你的DevOps平台必须允许你“全局思考,本地行动”。例如,对于某些用例,您应该能够强制执行不同的安全策略,或者集成特定的最佳点工具。

这种方法减少了漂移,防止你最终得到雪花般的工作流或配置,同时也确保遵从性和灵活性,以支持DevOps生态系统中的任何工具或流程——对于遗留和云原生应用程序交付。这就是DevOps平台团队的用武之地!

应用程序交付对于当今组织的竞争优势至关重要。随着部署频率的增长和规模的扩大,许多企业意识到继续使用针对不同团队的特别/竖井解决方案来管理交付是不切实际的。

DevOps平台团队(也称为平台运维或交付服务)负责选择工具和交付基础设施,使所有内部团队都能使用共享的工具、标准化的流程和一致的治理实现DevOps即服务。他们开发、强化并认证团队可以从中央回购中消费的自动化构建块。随着新需求的出现,他们还进一步加强了这些过程。因此,它们有助于提高速度,生产力,可靠性和TCO,通过:

  • 利用“管道即代码”来扩展和加速DevOps在组织中的采用,同时确保治理、遵从性和可审核性。
  • 管理自助服务节点提取和秘密旋转的目录,以使开发人员能够以一种安全的方式提供具有一致配置的环境。
  • 启用对“认证”包的共享存储库的集中访问,供开发人员使用。平台团队加强并保护OSS依赖关系,并证明它们符合组织的治理策略.这消除了重做,并支持围绕共享的、安全的工件的重用和标准化。
  • 以集中的方式管理管道和软件分发到最后一英里部署的团队/阶段之间的二进制文件共享——以优化吞吐量、网络利用率,并确保安全和治理。
  • 以集中的方式管理访问控制(RBAC),以确保遵从性和可审核性——能够确定对所有已批准组件的访问级别,包括存储库、工件、工具、管道过程、批准、环境等。

JFrog平台是一种端到端DevOps解决方案,被世界上一些最大的组织用于加速应用程序交付,同时提高质量和安全性。该平台帮助您简化、保护和扩展您的SDLC端到端,跨越二进制文件管理、容器映像、CI/CD、应用程序安全性和分布

开始您的免费云试用自己去看看JFrog平台!

快速释放,否则死亡