DevOps是一种工作文化、流程自动化、平台设计的方法论,其快速、优质的交付服务旨在为客户交付更具商业价值和快速响应力的服务。而这些都是通过高效、迭代的IT交付服务实现的。DevOps是将安装在服务器上的应用程序与部署在云平台虚拟机中的应用程序和基础架构建连接起来。
什么是DevOps?
“DevOps”是”development’ 和 “operations”的糅合,但是它呈现的理论和实践意义却比这两个词单独或合并起来使用的意义大得多。DevOps涵盖了(应用程序和基础架构的)安全工作、合作模式、数据分析和许多其他内容。那么究竟什么是DevOps?
DevOps 描述了加速流程的方法。比如一个软件构思(包含:新开发软件的特征、需求改进、故障修补等)从开发到部署都是在交付环境下进行的,DevOps就是通过这样一种工作文化来为客户提供商业价值的。这些方法要求开发团队和运营团队之间的密切交流、合作双方达成思想上的共识。其中资源的可伸缩性及便利的服务供应也是必不可少的。运用DevOps方法论,合作团队可以通过自助服务和自动化技术获得最大限度的工作权限。以可靠信任为基础,开发人员与IT运营人员通过密切的合作来加快软件的构建、测试和发布速度。
当然,这也意味着代码的频繁改动和动态架构的不断应用。传统的管理策略是不能满足这些需求的。改变是进步的象征。
工作文化:
DevOps依赖并重视开放和透明的文化合作。DevOps的文化价值与开源社区和敏捷工作方法的价值紧密地联系在一起,实行DevOps意味着对开放源码原则和实践的应用。
开源软件项目文化是DevOps文化的构建蓝图。开源社区树立的合作模式就是信息的免费共享。它主张提升决策透明度、不畏失败不断试验、鼓励合作信任奖励制度等文化变革的实施。
采用正确的领导和激励计划,开放文化在开发和运营团队之间的实现就变得容易的多了。当这种文化在全公司内部开展时DevOps的作用才能发挥到极致。当然这只是以开发和运营为例,DevOps方法论也适用于其它工作领域。
红帽公司的文化是建立在开放和透明的基础上。它已经在该领域服务了25年之久。在帮助客户选用文化开放策略方面他们有着丰富的经验来指导客户如何实现DevOps。
流程自动化
现代应用程序的开发流程较之以前有很大的不同。许多团队使用敏捷模式开发软件。对于这些开发团队来说,他们对DevOps是胸中有数的。因为敏捷宣言12原则中的第一条就是“通过软件的前期和持续交付来确保客户满意”。这就是为什么持续集成和持续部署(CI/CD) 对于DevOps团队来说如此重要的原因。
但是仅仅改变开发和运营流程是不够的,还需要运用DevOps体系思维来真正地优化软件交付的方式。这意味着DevOps会帮助软件研发部门和终端用户达成共识。其中终端用户向研发部门提出的连续循环的反馈是很重要的。
该流程改变的不仅仅是工作方式,还有工作性质。DevOps不只适用于加速创建相同单模块软件,也适用于加速创建更适合持续交付的新型软件。
这就是为什么DevOps团队经常使用微服务架构构建软件并将这些微服务与API链接在一起的原因。DevOps团队通过专注创建较小的模块功能来实现快速交付,而DevOps管理人员需要知道如何管理这些微服务和APIs、并制定如敏捷集成之类的策略将它们组合在一起。
做出这样的改变是需要付出很多努力的,然而运用正确的技术会让你事半功倍。自动化技术可以帮你加快进程,并将DevOps每日的工作量迁移到云平台。据IDC的一项研究显示表明,85%的IT领导者认为自动化技术对DevOps战略起着至关重要的作用。这是因为自动化技术允许基础架构接纳DevOps持续的代码更改,也能轻松的支持运行环境的持续扩展。自动化技术还帮工作者分担了那些单调重复的任务,给他们留下更为重要的工作。
操作平台&软件工具
选好支持流程的操作平台或软件工具是DevOps成功应用的关键。运营想要获得与开发周期一致的快速发展,就要使用灵活性能高的平台,还要像DevOps开发团队频繁更改代码一样不断调整基础架构。手动部署速度较慢,也有出错的可能。自动化技术可以简化平台配置和部署。
容器允许应用程序在开发、测试和生产环境各个阶段自由切换。容器技术也允许开发人员运用一切所需资源来打包和分包应用程序,对象可以是应用程序配置文件、运行环境,也可以是程序运行的相关依赖库和配置。
选择运行可靠、稳定性强、且与自动化技术高度兼容的平台,比如Red Hat Enterprise Linux和Red Hat OpenShift容器平台,以防止系统在高强度扩展和自动化操作时突然报错。选用合适的平台,还可以帮您充分利用已经执行的文化和流程。