一个都不能少:DevOps的三大核心基础架构

一个都不能少:DevOps的三大核心基础架构

目前,DevOps概念火热,其涵盖面也非常广泛。其实,DevOps的知识体系从顶层上来分解,只有2块:方法论和工具链。我们所能了解到的敏捷理念、实践等都属于方法论的范畴。

今天我们来聊聊实现DevOps工具链的三大基础架构。

一个都不能少:DevOps的三大核心基础架构

▲ DevOps工具链周期表

惊鸿一瞥中,是不是回忆起匆匆那年?化学老师敲黑板:元素周期表背了吗?

简而化之,实现DevOps工具链只需要3个核心基础架构:

  • SCM配置管理系统
  • Automation自动化系统
  • Cloud云/可伸缩的、自服务的、虚拟化系统
一个都不能少:DevOps的三大核心基础架构

▲ DevOps3大核心基础架构

01

SCM配置管理系统

软件配置管理(Software Configuration Management,SCM)是指通过执行版本控制、变更控制的规程,以及使用合适的配置管理软件,来保证所有配置项的完整性和可跟踪性。配置管理是对工作成果的一种有效保护。

软件配置管理是DevOps最底层的基础设施,无论是Configuration As Code 还是 Infrastructure As Code 都强调,通过代码管理的方式来管理环境,环境版本化是DevOps中快速创建和重复创建最重要的基础。

周期表左侧第二列就是各种可供选择的软件配置管理系统,如:GIT,SVN,Mercurial,GitHub,Bitbucket等。

对于实施DevOps来说,选择哪种SCM的一个重要考虑点就是后续Automation和Cloud两个环节中其它工具的集成情况如何。

SCM中所放置的内容又可细分为:

一个都不能少:DevOps的三大核心基础架构

▲ SCM内容

环境配置:针对当前应用的固定环境配置;

环境数据:部署时根据情况调整的数据,如:配置文件,开发/测试/生产环境的地址等。

02

Automation自动化系统

自动化(Automation)是指所有的操作都不需要人工参与,全部依赖系统自动完成,比如上述的持续交付过程必须自动化才有可能完成快速迭代。DevOps需要构建相应的工具链,将工作任务自动化,才能实现自动化的持续交付流水线。

自动化在DevOps中一般由各种类型的Build系统来实现,如:Jekins,Team City,Travis CI,CC等。为了完成应用从开发环境到生产环境的迁移,开发者必须处理编译、自动化测试、依赖恢复、容器构建、打包、编排等众多操作。

这一过程就需要Junit,Xunit,FitNesse,Selenium,NuGet,NPM等额外配置工具协助实现。但这些工具只是在Automation中实现某一部分的功能,归根结底,仍然是由Build系统驱动,并依赖于SCM中所提供的各种代码来实现。

03

Cloud云

云(Cloud)是指一个独特的IT环境,用于远程提供可扩展和可测量的IT资源。在用户看来,云上的资源是可以无限扩展的,并且可以随时获取,按需使用。这种服务可以是与软件、互联网相关的,也可以是任意其他的服务。

云计算是DevOps诞生的重要基础。没有云提供的可伸缩的、自服务的、虚拟化系统,DevOps理念只能是纸上谈兵。

一个都不能少:DevOps的三大核心基础架构

▲ 云基本概念与模型

云所提供的API对DevOps理念的落地非常重要,SCM的产出与Automation都需要调用云API来完成应用部署。

通过云API,只需少量的代码即可快速操作云产品;

在熟练的情况下,使用云API 完成一些频繁调用的功能可以极大提高效率;

通过API可以组合功能,实现更高级的功能,易于自动化,易于远程调用,兼容性强,对系统要求低。

一个都不能少:DevOps的三大核心基础架构

▲ 用户调用云API

云是目前IT领域的热点,企业的IT系统架构实施云化的主要目标是提升IT资源的利用率、降低IT成本,促进企业IT建设从粗旷型方式到集约型方式的转变。

通福云分布式研发云平台(CCS DevCloud),集云端研发运营一体化的研发云平台,由中国通服集团集二十多年研发与实践倾力打造。为客户提供代码托管、编译构建、部署发布、运维监控、项目管理等覆盖软件研发全生命周期服务,让软件构建、测试和发布变得更快捷、可靠,全面助力企业快速提升研发效率和产品交付能力。


分享到:


相關文章: