Awsaws in action(aws实战)

AWS 上 DevOps 实践

2018-07-30  本文已影响323人  专职跑龙套

什么是 DevOps?

https://aws.amazon.com/cn/devops/what-is-devops/

DevOps 模式定义

DevOps 集文化理念、实践和工具于一身,可以提高组织高速交付应用程序和服务的能力。

image

DevOps 的工作原理

在 DevOps 模式下,开发团队和运营团队都不再是“孤立”的团队。有时,这两个团队会合为一个团队,他们的工程师会在应用程序的整个生命周期(从开发测试到部署再到运营)内相互协作,开发出一系列不限于单一职能的技能。

在一些 DevOps 模式下,质保和安全团队也会与开发和运营团队更紧密地结合在一起,贯穿应用程序的整个生命周期。当安全是所有 DevOps 团队成员的工作重心时,这有时被称为“DevSecOps”。

他们使用能够帮助其快速可靠地操作和发展应用程序的技术体系和工具。这些工具还可以帮助工程师独立完成通常需要其他团队协作才能完成的任务(例如部署代码或预置基础设施),从而进一步提高团队的工作速度。

DevOps 的优势

如何采用 DevOps 模式

DevOps 的文化理念

简单来说,DevOps 的宗旨就是消除两个传统上孤立的团队(开发团队和运营团队)之间的壁垒。
有些组织甚至没有独立的开发团队和运营团队,工程师可能身兼两职。利用 DevOps,这两个团队可以携手合作,共同提高开发人员的生产力,同时增强运营的可靠性。他们力求频繁沟通、提高效率,并改善客户服务的质量。他们能够完全掌控自己的服务,并且经常越过自己的既定角色或职能的传统工作范畴,思考最终用户的需求以及解决这些需求。
质保和安全团队也可以与这两个团队紧密协作。凡是采用 DevOps 模式的组织,无论组织结构如何,参与团队都会将整个开发和基础设施生命周期视为己任。

DevOps 实践说明

一个基本实践经验就是要频繁地进行小规模更新。这是组织能为客户快速提供创新的有效方式。

此外,组织还可以使用微服务架构来提升应用程序的灵活性,从而加快创新步伐。

但是,微服务与较高的发布频率相结合会导致部署量大幅度增加,可能会带来运营挑战。因此,持续集成和持续交付等 DevOps 实践经验有助于解决这些问题,让组织能够以安全可靠的方式快速交付。

与基础设施即代码和配置管理一样,基础设施自动化实践经验也有助于维持计算资源的弹性和对频繁变更的适应性。

此外,进行监控和记录这一实践经验可帮助工程师追踪应用程序和基础设施的性能,以便他们快速应对出现的问题。

DevOps 实践经验

1. 持续集成 CI

采用持续集成时,开发人员会定期将他们的代码变更合并到一个中央存储库中,之后系统会自动运行构建和测试操作。持续集成的主要目标是更快发现并解决错误,提高软件质量,并缩短验证和发布新软件更新所需的时间。

2. 持续交付 CD

采用持续交付时,系统会对代码变更自动进行构建和测试,并为发布到生产环境做好准备。
持续交付可以在构建阶段后将所有代码变更都部署到测试环境和/或生产环境中,从而实现对持续集成的扩展。当持续交付得以正确实施时,开发人员将始终能够获得一个已通过标准化测试流程的部署就绪型构建工件。

3. 微服务

微服务架构是一种将单个应用程序构建为一系列小服务的设计方法。其中每个服务均按各自的流程运行,并利用一种轻型机制(通常为基于 HTTP 的应用程序编程接口 (API))通过一个明确定义的接口与其他服务进行通信。

4. 基础设施即代码

基础设施通过代码和软件部署技术(例如版本控制和持续集成)得以预置和管理。
借助云的 API 驱动型模式,开发人员和系统管理员能够以编程方式与基础设施进行大规模互动,而无需手动设置和配置资源。

5. 监控和日志记录

通过对应用程序和基础设施生成的数据进行采集、分类和分析,组织可以了解变更或更新如何影响用户,同时深入了解出现问题或意外变故的根本原因。此外,创建警报或对这些数据执行实时分析也能帮助组织更主动地监控其服务。

6. 沟通与合作

DevOps 和 AWS

https://aws.amazon.com/cn/devops/
AWS 可以提供一套灵活的服务,让各家公司利用 AWS 和 DevOps 实践经验来更加快速、可靠地构建和交付产品。
这些服务可以简化基础设施的预置和管理、应用程序代码的部署、软件发布流程的自动化以及应用程序和基础设施性能的监控。

AWS 提供的 DevOps 工具

1. 持续集成和持续交付

AWS 开发人员工具可以帮助您安全地对应用程序的源代码进行存储和版本控制,还可帮助您自动构建、测试应用程序并将其部署至 AWS 或本地环境。

您可以通过 AWS CodePipeline 来构建一个组合或分别使用 AWS CodeBuild、AWS CodeDeploy 和各种其他工具的持续集成或持续交付工作流。

2. 微服务

使用容器无服务器计算来构建和部署微服务架构。

3. 基础设施即代码

使用代码和模板来预置、配置和管理您的 AWS 基础设施资源。监控并实现基础设施合规性。

4. 监控和日志记录

5. 平台即服务

无需预置和管理基础设施与应用程序体系即可部署 Web 应用程序。

6. 版本控制

上一篇 下一篇

猜你喜欢

热点阅读