DevOps
1 DevOps 概念
DevOps(Development和Operations的组合词)是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。
 DevOps 的几个关键要素为:
- 角色:Development(开发)与 Operations(运维)。
- 手段:标准化、工具化、自动化。
- 生命周期:从需求到部署的整个生命周期,并且生命周期循环演进。
- 目标:更频繁、高效、可靠的完成需求。
概括来讲,DevOps 是一套规范,通过标准化、工具化、自动化的形式更频繁、高效、可靠的支持需求。 分开来讲,DevOps 并不是新的概念。如构建、测试、部署、监控都有成熟的理论、实践与产品。
2 DevOps 与云计算
云计算定义:
NIST云计算的目标:
长期的目标是提供与云计算范式相关的思想领导地位和指南,以此分析其在工业与政府内的使用。NIST旨在缩短使用周期,这将降低短期的花费并实现快速创建与部署企业级应用的能力。NIST希望拥抱云计算系统和支持交互性、便携性以及安全需求的实践,这对于重要使用场景来说是非常恰当并且是可以实现的。
NIST对云计算的定义包含了5个本质特征:
- 按需的自我服务
- 广泛的网络访问
- 资源池
- 快速的弹性能力
- 可度量的服务
NIST使用了如下3个云计算服务模型:
- IaaS——Infrastructure-as-a-Service
- PaaS——Platform-as-a-Service
- SaaS——Software-as-a-Service
发布模型:
- 私有云。云基础架构被一个组织独立地操作,可能被这个组织或者第三方机构所管理,可能存在于某种条件下或者无条件存在。
- 社区云。云基础架构被几个组织所共享,并且支持一个互相分享概念(例如,任务、安全需求、策略和切合的决策)的特别的社区。可能被这些组织或者第三方机构所管理,可能存在于某种条件下或者无条件存在。
- 公有云。云基础架构被做成一般公共或者一个大的工业群体所使用,被某个组织所拥有,并出售云服务。
- 混合云。云基础架构是由两个或者两个以上的云组成,这些云保持着唯一的实体但是通过标准或者特有的技术结合在一起。这些技术使得数据或者应用程序具有可移植性。(例如,在云之间进行负载平衡的Cloud Bursting技术)
DevOps 和云计算本身并无关系,但是二者的组合会带来 1+1>2 的效果。借助云计算的弹性伸缩、资源共享,以及 Paas/SaaS 产品,DevOps 可以得到更好的实施与支持。
3 DevOps 实施
DevOps 的最佳实践即在其每个生命周期的实践。如针对部署,可以使用 A/B 发布、灰度发布等手段得到更好的效果。
参考