如何用混合云CI/CD加速软件交付

你是否在寻找解决方案快速应用程序开发和迭代?你并不孤单。要做到这一点在美国,许多组织正在跨多个云提供商采用云原生容器。的原因吗?这种策略降低了厂商锁定的风险,并帮助您横向扩展应用程序基础设施。
在他们最近swampUP 2021说话”使用Artifactory和云上运行的容器走向无服务器,两位谷歌云专家概述了最佳实践,并就构建混合式多云CI/CD解决方案提供了建议。
在这篇博文中,我们将详细描述一个引人注目的用例通过谷歌云平台的开发者倡导者Guillaume Laforge和谷歌Cloud的混合云专家兼CNCF大使Ayrat Khayretdinov在本次演讲中发言。
具体来说,我们将浏览一个web店面应用程序,重点介绍其微服务架构和云容器服务基础设施,并以更新web前端和产品目录为例,快速满足对最新产品激增的需求。
但首先,让我们确定我们对DevOps的概念。如果你熟悉它,直接跳到下一节。让我们从定义“混合多云CI/CD解决方案”开始:
- “混合”在此上下文中,指的是同时驻留在场所中的应用程序(例如。数据中心)和公共云基础设施(在这种情况下,Docker容器)。
- ”多重云”指跨越多个公共云提供商的应用程序,在本例中包括:谷歌云亚马逊网络服务和微软Azure。
- “CI / CD”在面向devops的组织中是一个常见的首字母缩写,翻译为”2022世界杯预选赛 ’的软件。
- 持续集成(CI)是一个DevOps的最佳实践,它可以自动化代码更改、版本控制、分支工作流和软件物料清单(SBOM)来自中央存储库的管道升级标准,用于应用程序团队构建、测试和部署更新和发布。
- C连续部署(CD)是一种DevOps最佳实践,它自动化了新的、经过验证的CI版本的软件发布过程,这些版本通过了测试标准,并且可以稳定地部署到生产环境中。
微服务应用架构
像微服务这样的现代软件架构通过将独立的服务解耦为更小的(微)任务和代码片段来实现更大规模的企业web应用程序和服务。这些松散耦合的微服务可以使用api共享资源和交换数据,以交付在线购物服务,并具有独立更新和迭2022世界杯阿根廷预选赛赛程代的灵活性。在本例中,我们将在下面绿色显示的服务目录中突出显示CITY BIKE产品的更新。
此参考店面应用程序包括Web服务和许多数字业务的典型组件:
- 前端用户界面
- 产品目录服务
- 结账服务
- 支付服务
- 航运服务
客户体验(CX)
自行车因其更新的电动版本、更轻的材料以及出行时间而变得超级受欢迎。随着人们将骑自行车视为生活中有趣而健康的活动,“城市自行车”这一类别的网页浏览量越来越大。为了改善客户体验(CX)并使购买更容易,以绿色突出显示的网络店面需要更新:图像、描述和定价。
纪尧姆和艾拉演示了工作流来更新在线商店应用程序中的web前端图像,并将更新推送到前端的Docker容器中,其中包含CITY BIKE的最新型号。这个例子强调了一个端到端的工作流,开发人员可以快速响应不断变化的使用模式。
服务架构
每一个令人惊叹的前端背后都是神奇的后端。这个服务架构连接了云本地CI/CD解决方案的三个关键组件:云奔向Anthos,JFrog DevOps平台而且GitHub用于源代码控制。通过这个多云解决方案,开发人员可以获得一组强大的DevOps工具为不同的云提供商创建和构建CI/CD管道。
在这个环境中,每个开发版本的人都可以获得一个具有本地缓存的公共开发环境,以便快速访问构建的最新版本,以便进行下一次评审和合并请求。数据架构包括与远程开发团队及其资源相互连接的Kubernetes集群的本地数据中心。2022世界杯阿根廷预选赛赛程
架构组件
Anthos,谷歌云应用程序管理平台,建立在谷歌Kubernetes Engine (GKE)基础上,用于跨混合多云基础设施管理容器。这为开发人员提供了一致的谷歌云平台(GCP)、AWS或本地环境的开发和操作体验。
云运行可以作为完全托管的谷歌云服务,也可以作为部署到Anthos GKE集群中的Anthos的Cloud Run。Cloud Run专注于无状态的http驱动容器,并将所有基础设施管理抽象出来,因此您可以专注于最重要的事情——构建应用程序和服务用你最喜欢的语言。
Knative轻松插入现有的构建和CI/CD工具链作为底层平台来构建、部署、自动伸缩和监视工作负载,只要它们运行得最好。
JFrog Artifactory的CI和CD集成的开放方法为管理和治理提供了通用的解决方案软件“物料清单”(SBOM):每个版本和发行版的二进制文件、软件工件和依赖项。JFrog Artifactory支持所有主要的包管理器,如Docker, Maven, npm, PyPi, NuGet, Gradle, Go等等。它也是领先的Kubernetes注册表管理应用程序包、操作系统组件依赖关系、开源库、Docker容器和Helm图表,使所有依赖关系完全可见。
JFrog管道提供工作流自动化您的CI和CD管道的所有关键流程。使用JFrog管道与Jenkins集成, Artifactory在构建创建期间提供工件并解决依赖关系,它也是最终构建分发的本地存储库。
JFrog x光与JFrog DevOps平台完全集成,作为您的SCA工具扫描和m从管理二进制文件的同一窗格监视二进制文件的安全性和遵从性。
CI/CD工作流自动化
软件材料清单(SBOM) -真相的来源
一个概念真相的来源对于二进制文件,工件和依赖关系是加速自动化的关键,流程和工作流的可重复性是关键。如果每个分支都在不同的版本上开发或测试,或者外部依赖引入了漏洞,那么大部分努力都是白费的。作为一种最佳实践,每个开发人员都应该能够访问构建的最新版本,并且在发布到生产环境之前,应该扫描它们的漏洞和许可违规。
与JFrog Artifactory作为真相的来源,所有项目团队成员都可以根据他们的权限访问最新的版本验证、扫描和可跟踪的组件,而不管他们的地理位置。
的JFrog平台提供完整的CI/CD解决方案(持续集成/持续交付)工作流程在谷歌云与二进制存储库管理,安全漏洞扫描和安全软件分发到终点。
持续集成(CI)
为了确保应用程序更改是用整个代码库的最新版本构建和测试的,并避免大规模合并带来的挑战,CI的DevOps最佳实践旨在在增量更改发生时验证增量更改。由于大多数缺陷都是在提交代码更改之后发现的,因此快速修复它们会带来更好的质量。
下面是CI工作流的一个示例序列,用于生成一个带有CITY BIKE图像更改的前端应用程序的构建:
- 新的图像被提交到一个存储库中,例如在GitHub中用于源代码,或在Artifactory中用于二进制文件、图像、工件和依赖项。
- GitHub通过网络钩子通知JFrog管线的变化。
- 管道开始自动执行CI工作流:
- 构建Docker映像
- 用x射线扫描漏洞
- 最后将docker image推送到JFrog Artifactory
为了简化这个过程,使用的“图形”视图我的管道提供了一个有用的执行步骤及其状态的可视化,所有这些都从一个门户网站进入JFrog DevOps平台。
- 工作流分配在运行时容器中创建构建的步骤。
- 这些步骤生成的所有二进制文件都来自Artifactory存储库。这包括构建信息,或软件材料清单(SBOM),以及通过CI/D管道进行的推广。
持续交付(CD)
在本例中,CD工作流分发SBOM,该SBOM由新CITY BIKE的更新图像标记组成,包括产品描述和定价。图像标记被更新到生产Docker容器和Anthos应用程序管理完成构建以自动化交付和分发。
这个CD工作流为一个容器化的构建执行以下顺序:
- 管道中的CI工作流生成一个新的构建(参见下面的成功完成)。
- CI工作流触发CD工作流的执行。在本例中,将包含一个新的CITY BIKE映像到产品目录存储库,从而触发管线工作流,将构建提升到生产存储库。
- 自动更新生产在线网站商店与新的城市自行车形象。
的第一步是构建jfrog。io /专卖店/前端Dockerfile;
通过x射线扫描构建,以识别安全漏洞和符合许可政策,一旦工作流程完成,新型的JFrog CITY BIKE就可以在数字店面中供客户查看和购买。
通过对组成混合云CI/CD解决方案的主要组件的高级介绍,devops领导的组织现在有了一个参考解决方案快速应用程序开发集装箱的基础设施。
报名参加JFrog在谷歌云免费开始。欲了解更多信息,请访问c该死的博客帖子”使用JFrog免费订阅启动DevOps的5步”。
