如今大火的DevOps逐渐被大众所熟知,新的业务浪潮  集文化、工具、实践于一身,IT团队敏捷协作,不再处于孤岛,自动化协同,持续创造价值,已成企业软件研发的主流,不断为企业所采纳,形成协同体系。

优维已在DevOps领域精耕七年,自身也一直受益于DevOps应用,精益运维、最佳实践,因此特别分享经验之谈,期待可以服务到更多企业。优维人:DevOps  我们懂!且听小编分享干货~


1.概念


DevOps(Development-Operations),即开发+运维,一套系统性方法论,定义一组自动化流程,实现快捷可靠的软件构建、测试、发布,填补开发与运维之间的信息鸿沟,改善团队之间的一体化协作关系,带来组织文化(敏捷团队)的改变。

由于软件行业日益清晰认识到,要想按时交付软件产品和服务,开发和运营工作必须紧密合作。因此DevOps应运而生,用于促进开发、技术运营、质量保障部门之间的整合协同。

DevOps分为持续集成、持续交付、持续部署三大阶段,并且对工具进行分类,进行配置管理、应用程序部署、版本控制、监控、测试、构建系统,形成增加协作、减少孤岛、共享责任、自治团队、提高质量、重视反馈、增强自动化的企业文化。


2.优势


速度快

高速运转,更快针对客户需求适应市场,更有效推动业务成果,让团队充分掌控服务并及时发布更新。

快速交付

自动执行软件发布流程(从构建到部署),提高发布效率,更快创新产品,响应客户需求,建立竞争优势。

可靠性强

确保应用程序更新和基础设施变更的品质,以便在保持最终用户体验的同时,更可靠进行交付。

规模大

大规模运行与管理基础设施和开发流程,自动化和一致性在降低风险的同时,有效管理复杂且不断变化的系统。

增强合作

强调主人翁精神和责任感。开发人员和运维团队协作输出,降本增效,建立起敏捷团队的组织文化。

安全性高

在快速运转的同时保持控制力和合规性,自动实施,在保证安全性的前提下连接开发人员与运维团队,敏捷合作。


3.关键工具


源代码库

开发人员签入和更改代码,存储管理签入各类代码,流行的工具有Git、Subversion、Cloudforce、Bitbucket、TFS。

构建服务器

自动化工具,将源代码库中的代码编译为可执行代码库,流行的工具有Jenkins、SonarQube、Artifactory。

配置管理

定义服务器或环境的配备,流行的工具有Puppet、Chef。

虚拟基础架构

基础设施具有允许使用配置管理工具以编程方式创建新机器的API,也有例如VMware、VCloud的私有云。

自动化测试

集中于构建自动管道测试,确保拥有可部署的构建的同时已经准备好部署,最流行的工具是Selenium and Water。

管道编排

管道类似一条生产装配线,从开发一直到代码被部署到生产或后期预生产环境中为止一直发生。


4.落地实践


持续集成(CI)

开发人员定期变更代码合并到一个中央存储库中,系统自动运行构建和测试操作,更快发现并解决错误,提高软件质量,缩短验证和发布新软件更新所需时间。

持续交付(CD)

系统自动构建和测试代码更改,并做好发布到生产环境的准备,实现对持续集成的扩展,让开发人员始终拥有一个通过标准化测试流程的部署就绪型构建工件。

微服务

围绕业务能力进行构建,每项服务均限定到单个目的,使用不同的框架或编程语言编写,并作为单个服务或一组服务进行独立部署。

变更管理

请求、计划、实施、评估、满足新要求所需的变更过程,在配置管理过程中,运营现有系统和基础架构的变更管理。

基础设施即代码

借助云的API驱动型模式,开发人员以编程方式与基础设施进行大规模互动,使用标准化模式进行快速部署,使用最新补丁和版本进行更新,或以可重复的方式进行复制。

策略即代码

组织自动跟踪、验证、重新配置由代码描述的基础设施,轻松掌控资源变更,确保安全措施以分布式方式得到妥善执行,例如采用PCI-DSS或HIPAA确保信息安全性或合规性。

持续监控

组织对各项指标和日志进行监控,以了解应用程序和基础设施性能对产品特性与最终用户体验的影响,创建警报并对这些数据执行实时分析,输出对服务的主动监控。

沟通与合作

以物理方式将开发和运维的目标、流程、职责结合起来,加强组织内部交流,从而建立团队之间的相互协作,树立敏捷团队文化规范。


上一篇: