应用

技术

物联网世界 >> 物联网新闻 >> 物联网热点新闻
企业注册个人注册登录

解读持续集成在云计算中的4大优势

2017-09-19 15:52 精灵云

导读:持续集成是一种软件开发实践,即团队开发成员经常定期集成他们的代码到共享存储库,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。

  目前,已有大量的技术和概念可以显著提高软件质量,同时减少开发时间,成本和工作量。今天,我们将通过讨论云计算中持续集成(CI)带来的几个主要优势,来了解为什么实施基于云计算的持续集成可以降低成本,节省资源,并提供动态扩展和更大的灵活性。

  什么是云计算?

  对于云计算的定义有很多,以下是解释较为详尽的一版:云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问, 进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供 应商进行很少的交互。

  对于企业来说,云计算是计算机基础设施,可以无缝地扩展。它的基础设施可以灵活地适应企业不断变化的需求和预算。鉴于这些对企业的好处,近年来,出现了一系列供应商,为企业提供各种云服务,以支持广泛的基础设施需求。包括托管数据库和日志记录提供程序,如ElephantSQL和Loggly,Zoho等电子邮件提供商,以及更广泛的计算基础设施,如Amazon Web Services,Google Cloud Platform和Microsoft Azure。

  什么是持续集成(CI)?

  持续集成是一种软件开发实践,即团队开发成员经常定期集成他们的代码到共享存储库,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的方式构建(包括编译,发布,自动化测试),从而高效而快速地验证并发现

  集成错误。

  最简单的CI可以只包括几件事情:

  1. 一个脚本,启动一个测试工具,例如PHPUnit,JUnit或NUnit,一旦新的代码被集成到Git仓库的主分支中,它会运行应用程序的测试套件;

  2. 在测试套件成功后构建软件的脚本;

  3. 发送给开发人员的电子邮件通知提醒他们以上两个步骤的完成情况。

  实际上,CI管道通常具有更复杂的要求,例如数据库,排队,缓存和Web服务器,这通常是接受和集成测试所需要的。这种复杂性可以由一系列因素驱动,例如软件服务的行业,监管要求和约束,预算限制和项目的技术要求。

  CI在云计算中的好处

  1、降低成本

  计算成本通常不是一个快速而简单的过程。让我们来看一个例子:Codeship Basic提供了三个付费计划:starter、essential和power。还有一个免费的计划(不仅仅是免费试用),如果你刚刚建立一个项目,你可以免费开始,然后随着预算的增长,你可以扩大规模以获得更多的功能和权限。

  假设你使用了其中的一个计划,在注册之后,你只需要做一点轻松的帐户配置,就可以构建你的第一个CI管道了。基于Jenkins等开源工具构建一个解决方案,你必须:

  1、投资硬件和人力资源,以构建和记录初始解决方案;

  2、随着时间的推移,随着软件的发展和变化,维护和调整它;

  3、要更换故障或老化的硬件,管理性能调优;

  4、调整它以适应行业趋势。

  根据你的解决方案需要的先进程度和复杂程度,你的成本,在十多年或更长时间内,可能相当可观。考虑到这一点,这种方法成本更低,不仅是在货币方面,还计算了时间成本。

  2、最小配置

  在云中托管CI解决方案不能消除配置的需要,然而,它可以显著减少。通过使用托管解决方案,只需将配置需求简化为CI管道所需的配置。最重要的是,通常可以使用一系列默认设置来适应正在开发的软件的性质。

  你所要做的就是选择最适合你的软件并进行补充更改。例如,Codeship为这些语言和框架提供了基本的命令,如Go、Java、PHP、Python、Ruby on Rails和Sinatra。此外,还将创建一个默认的管道来匹配默认的构建命令。

  尽管有这种级别的支持和帮助,但是没有云提供商能够创建完全符合每个软件项目需求的解决方案。因此,你可能会发现默认的命令和构建管道并不总是合适的。在这些情况下,你应该期望能够提供定制的构建脚本和配置,以及根据需要在逐个项目的基础上定制和扩展默认选项。

  因此,无论哪种方式,无论是默认值、扩展默认值还是自定义脚本集都是你所选择的路径,仍然要比自己创建的解决方案更少配置。

  3、动态可扩展性

  使用云的最大好处可能是它的弹性性质,它可以随着需求的增加而上下伸缩。如果你是一个小型的开发组织,可能只有两个开发人员在部署你的第一个发行版,你可以开始只使用你绝对需要的特性和计算能力。

  这可以使你的成本保持在最低限度,避免过度投资于你还不需要的硬件。然而,随着应用程序的复杂性或用户基础的增长,你可以动态扩展可用资源以满足需求。

  如果你有间歇性的负荷,这种灵活性也会凸显,这段时间可能只持续几天或几小时。它可以让你动态地处理无法预测的交通高峰或节假日。

  但对于CI,托管提供者也可以通过提供可配置的并行测试管道数量来提供测试的弹性。并行测试管道允许你将构建分成多个管道,从而减少测试套件的执行时间。

  4、灵活性

  云解决方案几乎不考虑其技术组合,它附带了大量基础设施,包括一系列数据库、队列、缓存和搜索服务器。

  而且,在某些情况下,这些服务器的多个版本同时可用。因此,你可以灵活地在各种组合和排列中测试应用程序。你所需要做的就是为你的应用程序提供适当的环境设置,并且它可以根据需要在不同的版本之间进行替换。

  结论

  这些好处有助于解决你可能存在的很多疑虑,我们希望企业看到:无论企业的组织的大小或应用程序的成熟度和复杂程度如何,基于云计算的CI解决方案可能是更可行的选择。