AWS实现DevOps:思维与工具集并重

日期: 2016-11-06 作者:Mike Pfeiffer翻译:滕晓龙 来源:TechTarget中国 英文

开发运营主要依赖于企业在思维方法和自动化工具两方面的转变;缺少其中任何一方面都会导致失败。

开发与运营(即DevOps)模式让IT团队能够以比传统部署方法更快的速度来发布应用程序。很多企业已经依赖AWS用作云平台以提高敏捷性、降低成本支出以及减少用于生产应用程序的时间。在实施DevOps之后,很多企业每天都会多次部署新功能。

但是,要实现这种高效率所需的付出也是不小的。

实施DevOps通常需要改变员工的心态。IT团队需要消除开发团队和运营团队之间的隔阂,以便他们能够协同工作,从而实现快速发布应用程序变更的共同目标。使用正确的方法,自动化就可以取代手动任务,让整个过程变得更快更可靠。

为了更为高效地遵循AWS上的这些做法,开发人员需要充分了解可用的工具与服务。

AWS中的CI 和 CD

持续集成(CI)是一种流行的软件开发实践,它可允许开发人员即时获得关于应用程序代码更改的反馈。开发人员将他们的代码提交至中央库,从而触发自动构建和自动测试。CI可以让IT团队快速解决问题,让应用程序更可靠。

在CI基础之上进行开发是持续交付(CD)的做法。在这种模式下,已提交代码和已批准代码被部署在类似生产的环境中;集成测试可确保应用程序运行正确。如果一切都按计划进行,团队就会心里有底,他们的应用程序有一个可以随时发布的生产就绪版。

AWS开发的服务可允许团队在云中实施这些常见的开发实践。这些服务所创建的CI/CD管道可以自动实现从触发测试与开发到启动新的基础设施、部署和测试应用程序新版本的所有工作。

以下是一些在部署DevOps管道时团队可以使用的AWS工具:

AWS CodePipeline是一个托管的CD服务,它可以对软件发布过程进行建模和编排。在CodePipeline中,开发人员为发布过程中的每一个步骤都设置了阶段。在源阶段,系统会轮询版本控制库是否有开发人员提交代码。当检测到新的变更时,CodePipeline会通过自动化构建和测试阶段发送代码。如果这些任务都成功完成,开发人员就会在现有开发环境中运行和测试应用程序,或者在管道的一个阶段中构建新的环境。

AWS CodeCommit 是一个完全托管和可扩展的源代码控制服务。开发人员将代码提交至在AWS中托管的安全专用的Git库;这种做法帮助团队免于维护和扩展他们自己源代码控制。CodeCommit服务可与现有基于Git的工具进行集成,并可通过使用AWS身份与访问管理来确保其安全性。CodeCommit可与CodePipeline进行无缝集成;IT团队还可以使用公共的或专用的GitHub库。无论采用哪种方式,CodePipeline会对这些库进行轮询以找出变更,并通过发布管道自动发送它们。

AWS CodeDeploy是一个自动化的软件部署服务,它可在企业内部或云中正常运行。IT团队可以在CI/CD管道中使用CodeDeploy在服务器上安装应用程序代码。为了做到这一点,应在弹性计算云(EC2)实例或本地服务器上运行一个代理程序。当新代码通过发布管道时,CodePipeline将从构建阶段取出输出工件,并将它们交给CodeDeploy,后者将在服务器上安装应用程序代码。

基础设施即代码

DevOps模式的核心原则就是让一切都自动化。团队会使用基础设施即代码(IaC)来具体实施软件部署,而不是手工开发服务器环境。其目标是在一个声明性模板中定义基础设施,以便检查源代码控制并作为整个环境的蓝图。这使得团队可以轻松地查看从一个发布版本到下一个版本之间基础设施发生的变更。

此外,CI/CD管道中的阶段能够实现开发环境部署的自动化,以证明应用程序已做好生产准备。

对于AWS用户而言,AWS CloudForamtion是带考虑的IaC产品。基础设施在基于JSON的模板中进行声明性定义,CloudFormation服务可以使用它来部署一个完整的环境。

诸如Chef和Puppet之类的流行配置管理工具可以轻松得与CloudFormation集成以便进一步实现特定操作系统配置的自动化。它们让团队能够将整个基础设施提交至源代码控制,甚至在CI/CD管道中的一个阶段内对其进行测试——就像应用程序代码一样。

监控与日志记录

DevOps思维方式的一个基本做法就是监控、记录和测量一切。亚马逊CloudWatch能够监控常见的性能指标,如CPU和内存使用情况,以便密切关注应用程序运行性能。AWS为每一个服务都提供了大量的监控指标,而开发人员甚至能够自定义他们自己的监控指标。

CloudWatch还支持集中式的日志与事件记录。来自于服务器的系统日志可被自动发送至CloudWatch日志,以便对环境中的每一台服务器上的活动进行集中式的视图显示。CloudWatch Events功能可在AWS平台上发生事件时支持触发操作。例如,开发人员可以设置一个简单通知服务或调用Lambda功能以响应EC2实例进入运行状态;开发人员甚至能够制定计划定时获得弹性块存储卷标的快照。

CloudWatch用户可以对AWS中的任何API决策采取措施。该服务还支持警报和操作,以便当运行性能下降、服务脱线或在应用程序和系统日志中发现错误时通知团队。

实施DevOps的关键在于学习使用工具并获得实践经验。通过使用AWS,实现概念验证将比以往任何时候都更容易。开发人员可以在非生产环境中开始,并在团队熟悉AWS工具之后创建新的管道和使用资源。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐