DevOps环境的运营能力与技能需求
自动化环境创建
在DevOps环境中,自动化且一致地创建环境是一项关键能力。这意味着要让组织内的各种授权角色能够按需启动环境,无需人工干预。例如,开发人员可能一天需要多次启动开发或测试环境,自动化流程也可能启动环境来运行验收测试。
同时,启动的环境必须准确反映最终的生产环境。有两种方法可以实现这一点:
- 设计一种创建环境的方法,用它来创建生产环境以及其他所需的环境,确保它们相互匹配。
- 对生产环境进行建模,然后将该模型应用到其他启动的环境中。
新兴的配置管理技术,如微软的Desired State Configuration,以及Chef、Salt、Puppet和Ansible等产品,都有助于实现这些功能。当你能编写描述环境的配置文档,并使用工具在任何时间、任何地点实现该文档时,就接近所需的能力了。容器化技术也能在这方面发挥作用,它有助于抽象出许多环境变量,减少差异和复杂性。
这种能力之所以重要,是因为如果能保证应用程序在开发、测试和生产环境中的运行环境始终一致,那么在不同环境之间迁移代码时遇到问题的可能性就会大大降低。而且,让开发人员等角色能够按需启动准确的环境,有助于促进更真实的测试,在开发阶段消除更多问题。
不过,创建这种能力并非易事,也存在管理方面的担忧。运行环境需要资源,因此组织担心开发人员随意启动虚拟机是合理的。但这并不是说要提供无管理的能力。DevOps中的“Ops”意味着运维不会消失,开发人员也不会“接管”一切。我们的工作是为开发人员提供一套受管理的能力。例如,开发人员应该能够在无需他人干预的情况下启动虚拟环境,并能随时回收(删除并重新创建)该环境,但这并不意味着