DevOps的两种模型——火箭和飞机

越来越多的敏捷企业要求软件开发以超音速,甚至星际速度运行,快速而安全地扭转变化。DevOps管道提供了最好的方式,但是你真正需要什么来实现这个承诺呢?
有一个很好的方法来理解的影响CI / CD流程,以及角色容器技术就像Docker和Kubernetes在DevOps中发挥的作用一样,会有所帮助。从那里,你为什么需要作为二进制存储库管理器的Artifactory完成它可以看得很清楚。
事实上,运行一个完整可靠的DevOps管道并不是火箭科学。
比这难多了。
为DevOps发射
我们经常想到持续集成过程是一个简单的从左到右的线性过程:代码编写、提交、构建、测试、部署,并交付给生产。创建软件是为了“发布”,这意味着它有一个明确定义的方向。
在这个模型中,创建应用程序就像向火星发射任务。在任务开始之前,你必须计划、审查、测试和验证一切。
为了准备火箭发射,各个团队必须密切合作。你只有一次机会发射一枚火箭,升空后,没有机会进行更改或更新。从发射台到发射恒星,火箭的能力是固定的,不可改变的。
火箭也是消耗品。每一次测试都需要制造一枚新的火箭,并存在未知的风险,直到所有系统都“启动”,以完成任务的最终发射。

这是一个简洁、经典的工程模型。但这不是DevOps的工作方式。
运行DevOps团队
火箭模型对DevOps的正确理解是,在创建和运营服务时,开发团队和运维团队在开发生命周期的所有阶段密切协作的方式。
但是DevOps并不是一个简单的从左到右的高风险发布过程。相反,这是一个频繁而无休止的循环,每一次起飞都有自己的风险需要消除。
DevOps更像是现代航空系统,而不是太空任务。航空公司非常频繁地——实际上是连续地——起飞飞机,在任何给定的时间内,都受到全球超过100万名空中乘客的信任。
航空公司管理其机队和航线的流程与DevOps管道保持应用程序的最新和可靠的方式非常相似。与您的企业一样,航空公司需要跟上技术的步伐,迅速响应安全问题,并根据客户需求的变化进行调整,而整个系统都需要不间断地运行。
作为一项持续的实践,航空公司检查(测试),维护(修补),并轮换使用和停用每架飞机。这个过程非常类似于每个应用程序的持续集成、交付和更新。
不像火箭去火星,飞机必须一次又一次地降落和飞行。投入使用的飞机是通过试飞的同一艘飞机。
现在您已经了解了其中的区别,那么如何获得您的DevOps的过程不像火箭工程师而更像航空公司?
准备起飞
火箭和飞机都是多种来源的产物。不同的内部部门负责船舶的结构、力学和控制。类似地,组织中的多个团队为您的应用程序做出贡献。
然而,提供船只大部分部件的是不同的供应商,从闩锁、座椅和地毯等普通元素到复杂的导航系统。应用程序运行的大部分代码也是如此,比如操作系统和语言框架,通常通过远程存储库从企业外部获取。
开发人员可以控制他们自己的代码的哪些部分进入他们的构建。但是,从公共存储库下载的远程包(如npm和Maven)呢?这些变化可能不规律,超出你的控制范围。
如果你的DevOps过程就像建造火箭,那么每一个用于测试或发布的新版本都是一个偷渡者溜上船的机会。
如果没有某种断言监督的方法,您不想要的东西可能会滑入您的构建中,并且您可能永远无法构建一次以上完全相同的结果。

到达跑道
Docker图像就是你的船只,不管它们是火箭还是飞机。它们是您构建的,并封装应用程序将执行的功能。从发射到着陆,他们的能力保持不变。
Docker有它的图像注册表,通过将容器转换成容器来帮助容器到达发射台或闸门,Kubernetes等编配器可以让这些容器飞行。
就像对待火箭一样,您在开发、测试或发布到生产时构建的每个Docker映像(每次都是一个新的火箭)可能与上一个有所不同。

像对待飞机一样对待它们意味着要确保你在空中投放的东西有更大的确定性。航空公司不会为每次起飞都建造一架新飞机,他们会对飞机进行测试,然后在航线上可靠地运行,直到需要更换。
建立一个Docker形象,你推广,而不是重建,通过你的管道来测试和发布,确保Docker带来的每一次都能安全、准时地飞行。

地面控制
正如我们希望您看到的那样,真正的DevOps过程并不是清晰地从左到右,而是复杂的、迭代的、设计、分解和重构的网络过程。
运行你的DevOps管道Artifactory更像一家航空公司,它可以成为地勤人员,确保一切顺利按计划进行。Artifactory使开发人员能够控制他们从代码中构建的Docker映像,并获得始终投入相同工艺的可靠性和速度。
首先,Artifactory解决了开发人员面临的一个关键挑战,即使用npm和Maven等外部依赖项创建稳定、确定的构建。使用Artifactory,开发人员可以维护远程存储库的本地缓存,以防止代码更改在他们准备好之前潜入构建。保持依赖关系也有助于加快构建速度,提高开发人员的工作效率。
使用Artifactory作为Docker注册表也使得通过测试和发布阶段更容易促进不可改变的构建结果DevOps管道,而不是为每个人重建。如果需要,您可以从Artifactory存储的关于每个构建的详尽信息中创建确定的构建。
飞机靠燃油飞行,但航空公司——就像所有现代企业一样——靠数据运作。更多地了解他们的车队、客户和员工有助于最大限度地提高投资回报。
当Artifactory成为您的Kubernetes的Docker注册表,它提供您所需的数据,以简化和保护您的操作。它不仅仅是一个容器映像列表,还提供了对其中内容的可见性他们是怎么做到的.
当你加上图像扫描JFrog x光,您可以获得更多关于这些映像中的代码到底有多安全的数据,从而进一步保护您的企业。
飞向友好的天空
不要以为真正的DevOps就像现代航空公司。DevOps已经成为一种至关重要的实践大多数航空公司都有自己的业务。
联合航空(United)、西南航空(Southwest)、阿拉斯加航空(Alaska Air)和捷蓝航空(JetBlue)等众多航空公司都在这方面进行了巨额投资DevOps和CI/CD在网络和移动平台上为客户提供票务、值机、登机等服务。
他们中的许多人都在自己的环境中包含了Artifactory,在整个过程中发现了DevOps在全球范围内的全部好处。
正如这些高风险企业所表明的那样,仅仅让Docker容器走上正轨是不足以实现真正的DevOps的。这需要Artifactory为CI/CD提供的支持,才能让这些鸟类安全飞行。
