什么是DevOps
DevOps维基百科定义: DevOps(Development和Operations的组合词)是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。
但是,准确来说DevOps目前并没有很权威的定义。DevOps,字面意思是Development &Operations的缩写。如果从字面上来理解,DevOps 只是Dev(开发人员)+Ops(运维人员),实际上,它是一组过程、方法与系统的统称,其概念从2009 年首次提出发展到现在,内容非常丰富,有理论也有实践,包括组织文化、自动化、精益、反馈和分享等不同方面。
DevOps来源于敏捷开发的持续发展,是软件开发管理领域继敏捷开发之后的又一次升级。敏捷开发方法的推广和实施,使过程中的开发和测试过程有效的整合,形成整体进行快速有效的迭代交付,但在软件交付客户使用之前,或者使用过程中,还包括集成、部署、运维等环节,需要进一步优化交付效率。因此,DevOps的产生将敏捷的相关理念逐步扩展到运维侧,俗称解决软件交付“最后一公里”的问题。
DevOps的理想是通过进一步简化软件在构建、验证、部署和交付阶段的移动,扩展了敏捷开发实践,同时授权跨职能团队拥有从设计到生产支持的软件应用程序的全部所有权,形成全流程一站式流水线管道。
DevOps 强调开发人员和运维人员(IT人员)的合作,实现软件交付和基础设施变更的自动化。它旨在建立一种可以快速、频繁、可靠地构建、测试和发布软件的文化。
DevOps 的三大支柱是:人(People)、流程(Process)和平台(Platform)。即
DevOps = 人 + 流程 + 平台
人 + 流程 = 文化
流程 + 平台 = 工具
平台 + 人 = 赋能
DevOps平台的搭建
DevOps平台的搭建可通过如下工具进行实现:
项目管理(PM):Jira
代码管理:GitLab
持续集成(CI):GitLab CI
镜像仓库:VMware Harbor
容器:Docker
容器平台: Rancher
镜像扫描:Clairctl
编排:Kubernetes
服务注册与发现:etcd
脚本语言:python
日志管理:EFK
系统监控:prometheus
Web服务器:Nginx
数据库:MySQL redis
有了这一套完整的流程工具,整个开发流程涉及到人员都可以无阻碍的进行协调工作了,