【.com快译】根据全球领先研究公司Gartner的报告,2019年全球公有云平台收入预计增长17.3%。其中,部署在云环境中的IT基础设施总支出,包括:服务器、企业级存储、以太网交换机等,年增长率将达到10.9%,即达到52.3美元今年亿。与其他IT资产投资相比,云服务相关应用的年增长率非常快。众所周知,任何基于云托管服务的大型高弹性应用,都需要配备自动化验证、基础设施升级、开发部署、质量保证、基础设施管理等配套功能。目前,传统基础设施的管理模型正在被构建CI/CD管道的模型所取代,该模型可以覆盖产品开发生命周期的每个阶段。什么是DevOps?DevOps是一种结合软件开发和运维的方式。它是一种从敏捷开发过程中发展而来的文化。其中,持续集成、持续交付、持续部署是随着DevOps的兴起而新发展起来的开发方式。它们为企业带来以下好处:实现团队间的沟通、协作和凝聚力为应用变更、配置和部署自动化最佳实践提供支持提供各种更快的解决方案来监控和规划各种高频产品更新完全自动化验收验证环境,可以判断流水线是否适合后续的生产环境。持续集成侧重于从代码库的角度控制每个开发人员的软件开发周期。它可以在一天内执行多个集成操作。其主要目的是在早期发现集成中的错误,实现更紧密的内聚和更频繁的开发协作。与之相关的主要活动包括:静态代码分析、单元测试和自动审计。持续交付(ContinuousDelivery)侧重于测试,可以实现代码在不同阶段或生产环境的自动化部署,更新通过审核后,通过自动化的软件发布流程,可以抢先发现各个部署过程中的问题。图2:DevOps在DevOps阶段的优势改善各种协作、运营支持和更快的修复提高灵活性、敏捷性和可靠性实现基础设施安全和保护各种数据可以更快地维护和维护升级可以将数字战略转变为项目并提高IT团队的整体速度、生产力和效率。AWS和DevOpsAWS提供了一套全面的开发人员工具。用户可以使用现有的CI/CD工具(如Ansible、Chef、puppet、Terraform等)在安全、可扩展、可维护且易于集成的环境中实施DevOpsCI/CD。AWS为虚拟机或基于容器的服务提供CI/CD,以及管理(包括:创建、更新和删除)所有其他服务(例如:数据库、存储、计算机、机器学习等)的选项。图3:用于DevOps集成AWS服务的AWSCI/CD工具:AWSCloudFormation:为基础设施和各种服务模板提供准备工具。这些模板可以用JSON和YAML编写,并且可以通过版本控制进行管理。此外,这些模板可以在Jenkins或任何其他带有AWSCLI(命令行)的CI服务器上执行。Terraform为AWSResourceManager提供了一个选项,用户可以使用丰富的控件,以及带有状态管理的扩展。AWSOpsWorks:通过与配置管理软件(如Chef)、应用程序生命周期管理的集成,提供更高层次的自动化增值功能。AWSCodePipeline:它通过持续交付和发布自动化服务促进部署的顺利执行。用户可以应用设计工作流来签入代码、构建代码、将应用程序部署到阶段性测试环境,以及发布到实际生产环境。AWSCodeCommit:这是一种安全、高度可扩展的托管源代码控制服务。它可以托管各种私有类型的Git存储库。AWSCodeDeploy:它具有跨AmazonE2C集群部署应用程序的能力。该服务最大限度地减少停机时间,并通过集中控制与现有软件版本或持续交付流程集成。此外,它还支持Claudia、Serverless等第三方工具,实现AWSLambda和ElasticBeanstalk的部署。AWSElasticBeanstalk:支持自动化和许多其他类型的DevOps最佳实践,包括:自动化应用程序部署和监控、基础设施配置和版本管理。同时,它支持轻松的应用程序和基础架构更改、回滚和转发。AWSECS:这是一种安全且高度可扩展的容器服务,可用于存储各种Docker镜像。AWSXRay:它可以记录和跟踪所有服务之间的通信,以检测应用程序中的各种性能和权限问题。AWSConfig:这是一个审计工具,可用于监控现有的AWS账户资源并触发对基础设施的各种变更警报。AWSCloudTrail:它可以支持对治理、合规性、运营和其他风险类型的审计。AWSCloudWatch:该服务实时监控所有AWS资源和应用程序。它通过设计仪表板、警报和触发器,为托管服务提供一系列指标参数。图4:使用AWS和其他CI工具的流水线示例如今,在软件开发过程中,传统模式正在发生转变。相反,IT运营和开发人员都应遵循以下系统推广原则和概念:基础设施即代码:我们需要像开发人员使用测试代码进行最佳实践那样对待基础设施。AWS可以使用DevOps作为创建和维护基础设施的中点。持续部署:这是DevOps的一个核心战略概念。它的主要目标是实现生产就绪的应用程序代码和自动化部署。自动化:专注于基础架构和应用程序设置、配置、部署和支持。监控:由于沟通和协作是DevOps战略的基础,因此及时了解反馈非常重要。安全性:安全性是一个持续关注的问题。基础设施和公司的各种资产都需要得到妥善保护。当出现问题时,开发人员应该与运营商一起快速解决问题。为了保证云软件及其解决方案的高效顺利实施,必须遵循DevOps的相关原则和实践。可以说DevOps已经成为当今技术领域的重要组成部分,尤其是云解决方案。许多组织需要使用DevOps相关服务来自动提高协作、监控、管理和报告的效果,进而顺利完成产品交付生命周期。通过使用AWS的支持工具和流程,用户可以使用CI/CD加速新服务,以实现操作灵活性、高效的交付方式,并避免生产环境中的潜在问题。原标题:SecureandScalableCI/CDPipelineWithAWS,作者:ChandaniPatel
