你或许听过DevOps的威名,但有相当大一部分人可能说不清DevOps到底是什么东西。搜索“DevOps”,出来的是茫茫多的信息,最奇怪的现象是明明2009年才提出的名词,却有人号称有十年以上DevOps经验。那小编只好来扒一扒关于DevOps的那些事。
给DevOps下个定义:它应该是一种文化,一个专业,一种行动(movement),而不是单一的角色或者职位。在企业当中引入DevOps是为了让组织变得更好,并不是只适用于初创公司(start-up)或互联网企业。
DevOps有以下五个要素:Culture、Automation、Lean、Measurement、Sharing
有鉴于DevOps的分类仍无既定的依据,2014年Gartner分析师在博客上发表了一张图,希望用图示来说明DevOps的內容与关联性,并将DevOps以人、流程、技术、文化四部分来分类。你应该听过持续整合,持续交付,测试自动化等名词,依照Garner的定义,这些名词都是与DevOps相关的项目。
Gartner对于DevOps的分类图
上图中提出了Full Stack Engineer与DevOps Engineer的概念,那么在这里又不得不脑补一下DevOps Engineer与Full Stack Engineer。
DevOps Engineer(DevOps工程师)根据开发人员的需求构建各种工具,提高开发的速度与品质,解决开发人员的后顾之忧。DevOps Engineer需要善于沟通并且写一手漂亮的代码,成为成功的开发人员背后的“女人”。
Full Stack Engineer,全栈工程师。在DevOps领域或许Full Stack Enginner的定义是:掌握多种技能,并利用这些技能独立完成产品。大多数Full Stack Engineer是在初创公司,这些人什么都会(或者是环境使然,什么都必须会),除了开发技能之外,自己还会研发各种辅助开发的框架或工具。
在DevOps 2015研讨会上,有人鉴于数量繁多的DevOps工具,仿照元素周期表制作出了一张DevOps周期表。划分了数据库、CI、日志、安全、监控、配置管理、云服务等15个大类,120个工具。
DevOps 2015研讨会上的DevOps周期表
掌握了以上图片里的这些工具,或许你就是一名合格的全栈工程师。在DevOps2015大会上几乎每场都在介绍工具,和现行DevOps的趋势一样,工具一个接一个的推出,学都学不完。但个人认为,不要沉迷于工具带来的便利,大多数DevOps工具都是自动化的工具,用任意script语言一样能写出同样的效果,重要的是完全理解了这些工具背后的设计理念和使用时机。