企业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)层,所有依赖关系(包括容器映像)都需要。如果没有开发人员的大力支持,要小心那些不能自动扫描和识别到操作系统级别的粒度依赖树的工具。
  • 扫描必须是连续的和自动化的——在数据库级别——跨所有存储库和生产实例,而不仅仅是由管道触发。为什么?许多依赖关系可能已经存在于“系统”中,并且跨越现有的应用程序/构建。db级扫描确保您能够及时发现新暴露的漏洞,并可以修补它们——即使是在旧的应用程序或可重用的软件包中,也不是当前CI/CD交付管道的一部分。除了db级扫描之外,您应该能够触发安全扫描和安全门,作为CI/CD自动化的一部分,作为另一个验证阶段。
  • 启用“左移位”。您的应用程序安全解决方案必须与您的IDE集成,这样您就可以在开发应用程序的过程中尽早识别和修补漏洞。越早发现这些漏洞,修复它们的成本就越低——而不是等到代码准备好构建,更不用说交付到生产环境了。
  • 设置安全性和遵从性策略的治理规则;根据软件开发阶段和您公司的情况,灵活地调整执行范围和后续行动DevSecOps推广计划。根据您的团队、应用程序、用例、DevSecOps成熟度和风险,您的策略可能更严格或更不严格。

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

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

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

同样,你的DevOps平台必须是混合的多重云,以便您既可以使用它,也可以使用它来管理内部部署、私有云和公共云、多云和边缘基础架构的混合环境中的交付管道。

4 -管道即代码

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

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

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

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

  • 跨团队的重用和标准化:Pipelines-as-Code允许您建模和定义DevOps团队需要为其跨组织的工作流和过程标准化的构建块。这有两个主要好处:
    1. 通过重用和共享自动化构建块(包括对象、流程、秘密、资源、配置、策略、安全测试、条件执行等)来提高速度和开发人员的生产力。2022世界杯阿根廷预选赛赛程
    2. 通过标准化组织中一致的已批准的、强化的过程来改进质量和治理。这些努力消除了雪花配置、自动化竖井、不同的过程和容易出错的脚本,它们会引入漂移和质量问题。
  • 在管道代码中使用参数。请记住,为了允许不同的团队利用相同的管道即代码,应该对这些构建块进行参数化,以便每个团队都可以动态调用相应的输入(例如秘密、资源、环境配置参数等……)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平台吧!

要么释放,要么死亡