云上持续集成和持续交付的工具(上云工具,关键词优化)

时间:2024-05-03 09:41:30 作者 : 石家庄SEO 分类 : 关键词优化
  • TAG :

    %E4%BA%91%E4%B8%8A%E6%8C%81%E7%BB%AD%E9%9B%86%E6%88%90%E5%92%8C%E6%8C%81%E7%BB%AD%E4%BA%A4%E4%BB%98%E7%9A%84%E5%B7%A5%E5%85%B7

云计算和人工智能快速发展的今天,软件开发和交付受到了持续的挑战。越来越多的企业面临着软件的安全性,性能的挑战。持续集成(Continuous integration, CI)和持续交付(Continuousdelivery, CD)成为现代软件开发必须采用的方法。不过这对开发人员和运维人员的素质也提出的较高的挑战,很多软件开发工程师没有测试和运维的概念,导致开发出来的软件质量不佳,维护过程中不能实现高可用。所幸当前主流的云平台都提供了大量现成的工具,帮助公司快速搭建平台实现持续集成和持续交付,并保证软件的安全性,可靠性和质量。

软件开发中有很多有趣的原则,比如亚马逊CEO Jeff Bezos提出的两个披萨团队(two-pizza teams)或者面向微服务的架构(microservices/service oriented architecture)。不过这篇文章中,我们主要讨论在云上现有能够实现CI/CD的架构。

持续集成和持续交付(CI/CD)

首先我们来看一下什么是持续集成和持续交付。持续集成(CI)是软件开发中的一种方式,开发人员定期将代码迁入中央代码库,然后进行自动的编译和测试。CI的关键是能够更快地找到Bug,降低测试和软件更新的成本。持续交付(CD)则比CI更进了一步,他需要让代码的变更自动编译,测试和能随时交付。CD可以自动部署到测试环境或者生产环境。

这里要注意的是持续交付(Continuous delivery)和持续部署(Continuous Deployment)的区别。持续交付不是说所有的代码变更都要上生产系统,而是说所有代码变更都可以随时准备好上生产系统,持续交付的好处主要是自动化了软件发布流程,提高了开发的生产效率,提高代码的质量以及更快地发布更新。

这里要多提一句的是DevOps。DevOps是提高一个组织高速交付应用和服务的一组理论,最佳实践以及工具,CI/CD其实也是DevOps的一部分。

实现持续集成和持续交付

首先我们来看一下标准的持续集成和交付的流程:

要实现上述的流程有巨大的工作量,也可以检验一个团队的成熟度。这也是一个通用的流程,当然企业或者团队也

代码

这里我们需要一个中央的代码库来管理所有的代码。在互联网上有大量工具可以用在代码管理上,例如Git,TFS, SVN或者CVS,不过当前Git成为了主流。使用Git作为代码库有很多优点,例如分布式,内容管理或者项目管理。企业可以自己部署一套Git,也可以使用当前著名的代码管理SaaS提供上Github。在云上主要选择如下:

无论哪种工具,都能够实现代码的保存和管理,此外也可以进行版本控制。我们推荐使用云上的服务,避免了大量的后台维护工作。当然如果团队对代码的安全性要求比较高,也可以自己维护git服务器。

编译和测试

在编译里,我们可以使用Jenkins,Gitlab,也可以使用AWS CodeBuild和VSTS实现全自动的编译和执行测试脚本的工作。

部署

管理工具

DevOps工具

在云上实现CI/CD的统一部署

在云上我们有大量现成的工具,可以实现完整的CI/CD以及流程管理,下面我们简要介绍一下如何在AWS和Azure上实现完整的CI/CD。

在AWS上实现CI/CD

AWS提供了完整的CI/CD产品,主要包括AWSCodeStar, AWS CodeCommit, AWS CodePipeline,AWS CodeBuild以及AWSCodeDeploy。在DevOps工具里,提供了AWS Opsworks。这些工具已经完整地为AWS用户实现了CI/CD的各种需求,首先我们可以使用CodeCommit来存储代码,然后用CodeBuild编译,最后使用CodeDeploy进行部署,中间的工作流城通过CodePipeline来管理,也可以用CodeStar一键生成所有需要的环境,在运维阶段用OpsWorks自动部署和扩展。

下图展现了AWS代码服务中的各种产品。

而CodeStar更是在以上代码服务的基础上,增加了环境,Jira,用户管理等支持,将软件开发过程中需要的各种服务集成在了一起。如果我们使用的已经是AWS了,那么可以直接利用现有的产品,非常简单高效地完成CI/CD。

在Microsoft Azure上实现CI/CD

微软在传统软件开发领域有着大量的最佳实践,可以说是走在了整个软件开发流程的前列,下图是微软模式和实践中关于持续交付的流程图:

在Azure上自动化这些流程是非常简单的,所有的工作都可以通过Visual Studio Team Services(VSTS)来实现。Azure不像AWS有各种工具实现不同的功能,他现有的VSTS服务就可以从头到底完整实现。例如同时支持Git和TFVC集中式源代码管理,提供弹性的编译服务,持续自动交付到Azure,自动启动压力和性能测试,并且还有协作,敏捷项目管理等传统的MSF流程。

云计算给传统的软件开发模式带来的巨大的变革,能够快速应用现有的持续集成和持续交付工具的团队,就能够在云计算的时代快速实现高质量软件的开发和交付。我们建议新的项目都能够使用云平台上的各种代码管理和CI/CD产品,免去了自行运维的痛苦,也能够把主要精力放在业务逻辑上。

本文:云上持续集成和持续交付的工具的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:二手市场比较,玩客云购买记录下一篇:

7 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18