在我们开始下面的讨论之前,首先通过一张总图来了解一下不同的工具,在DevOps生命周期中所处的位置。
DevOps生命周期阶段
我敢断言长期从事开发工作的您,一定对上述图片并不陌生。那么,这是否意味着您能够自如地使用各个阶段的各种工具,而不会碰到任何问题呢?
本文将通过引导您遍历DevOps生命周期中的各个阶段,并向您介绍如何综合使用多种DevOps工具,来解决各种现实问题。总的说来,我们在采用DevOps模式进行软件与应用程序开发时,通常会经历如下五个不同的阶段:
1.持续开发
此阶段涉及到对于软件应用程序基本功能的计划与编码。虽然对于计划而言,并没有什么可选的工具,但是可用于代码维护的工具却有不少。
通常情况下,项目的实现目标是在计划阶段被确定的。而当项目组成员开始着手编写代码时,就进入了所谓的编码阶段。
程序代码可以用任何一种语言来编写,但是我们需要配备相应的版本控制工具予以维护。如今,在此类持续开发的DevOps工具中,受用户欢迎的莫过于:Git、SVN、Mercurial、CVS和JIRA了。
那么,您是否真正理解保留代码主要版本的重要性呢?让我们从如下两个方面来讨论它对于开发与运营的影响吧:
目前,大家普遍认可的工具是Git和GitHub(https://dzone.com/articles/git-vs-github-demystifying-the-differences)。其中,Git允许开发人员在分布式的VCS(版本控制系统)上开展彼此协作。
另外,由于并不依赖于中心服务器,因此运营人员可以从远程位置,对存储库进行各种拉和推式的操作。此处用于维护代码的中央存储库,便是GitHub。可见,Git可谓是世界领先的版本控制系统之一。
2.持续测试
众所周知,开发好的代码是不能够直接部署或发布到生产系统上的。我们应当充分测试代码的潜在错误和性能瓶颈。
通常,执行测试的方式有两种:效率低下的手动测试和高效快捷的自动化测试。如今业界普遍使用的便是自动化的方式,其中具有代表性的包括:Selenium、TestNG、JUnit/NUnit等工具,它们可以自动执行各种用户定义的测试用例。下面我们来看看此类工具的基本特点:
显然,我们应该在DevOps生命周期中不断尝试各种工具,形成持续测试阶段的习惯。如果您要问哪一款是我的最爱?我会告诉你:我会将它们组合起来使用。例如:我会用Selenium进行自动化测试,由TestNG生成报告,进而使用Jenkins触发持续集成。
3.持续集成
这个阶段可谓DevOps最为出彩的部分。它在第一次发布过程中,就发挥了重要的作用。它能够最大限度地促进持续集成工具与配置管理工具的联合部署。
毫无疑问,如今市面上最受欢迎的持续集成工具便是Jenkins。当然,其他流行的CI工具还是Bamboo和Hudson。
持续集成工具的主要功效在于:它能够通过协调其他DevOps生命周期阶段的自动化工具,将整个DevOps结构完整地保持在一起。也就是说:无论是持续开发、测试或部署工具,还是持续监视工具,或是持续集成工具,都可以与CI工具全面集成。
4.持续部署
在讨论了从头开始构建代码的工具、以及测试类工具之后,我们现在来一起看看配置管理工具或容器化工具。这两套工具都有助于在DevOps中实现持续部署(CD)。实际上,持续部署是软件项目的实际落地阶段。
目前,配置管理工具具有如下特点:
下面我们看看容器化工具:
作为一套工具集,容器化工具可以协助运营人员在开发、测试和部署应用程序的环境中,保持一致性。通过对那些在开发/测试/阶段性环境中频繁使用到的相同依赖项和程序包进行打包与复制,容器化工具大幅消除了生产环境中各种错误与故障的可能。
Docker是最早也是久负盛名的容器化工具之一。过去,由于开发人员使用到了各种虚拟机与服务器,因此他们必须通过手动管理,才能保持生产环境状态的一致性。如今,有了Docker容器的协助,大家能够轻松地实现一致性的自动化保持。
近年来,许多云端应用的解决方案,都开始为容器服务提供支持了。其中,Amazon ECS、Azure容器服务和Google容器引擎,都能够对Docker容器提供原生的云服务支持。这也就是Docker能够广为普及的原因之一。当然,其他类型的容器化工具还有:Vagrant。
5.持续监控
如果我们不对应用程序的性能进行监视,那么开发和部署应用还有什么意义呢?就算是再全面的测试,也难免疏漏掉一些潜在的错误或性能问题,因此,持续监控与应用开发同等重要。
目前,属于此阶段的流行监控工具有:Splunk、ELK Stack、Nagios,Sensu、NewRelic。它们与Jenkins结合使用,可以让运营人员达到持续监控的目的。总的说来,持续监控工具的必要性在于如下两个方面:
Splunk和ELK堆栈是该领域的两大工具,它们之间有着竞争关系。它们虽然能够提供几乎相近的功能,但是具体提供的方式却不尽相同。
Splunk是一款非常容易上手的商业工具。而ELK堆栈则是由ElasticSearch、LogStash和Kibana三种开源工具组合而成。虽然可以免费使用,但是ELK设置起来却不像Splunk那么容易。我建议您亲自试用一下这两款工具,以选择更适合自己项目的一款。
网页名称:如何组合多种DevOps工具来解决现实问题
网址分享:http://www.shufengxianlan.com/qtweb/news32/363832.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联