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

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