DevOps——究竟为什么会兴起?

DevOps——究竟为什么会兴起?

简介

DevOps(英文Development和Operations的组合)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运营工作必须紧密合作。

其核心价值在于以下两点:

  1. 更快速地交付, 响应市场的变化。
  2. 更多地关注业务的改进与提升。
DevOps——究竟为什么会兴起?

实现DevOps需要什么?

硬性要求:工具上的准备

  • 代码管理(SCM):GitHub、GitLab、BitBucket、SubVersion、TFS
  • 构建工具:Ant、Gradle、maven
  • 自动部署:Capistrano、CodeDeploy
  • 持续集成(CI):Bamboo、Hudson、Jenkins
  • 配置管理:Ansible、Chef、Puppet、SaltStack、ScriptRock GuardRail
  • 容器:Docker、LXC、Rkt、第三方厂商如AWS
  • 编排:Kubernetes、Apache Mesos、DC/OS
  • 服务注册与发现:Zookeeper、etcd、Consul
  • 脚本语言:python、ruby、shell
  • 日志管理:ELK、Logentries
  • 系统监控:Datadog、Graphite、Icinga、Nagios
  • 性能监控:AppDynamics、New Relic、Splunk
  • 压力测试:JMeter、Blaze Meter、loader.io
  • 预警:PagerDuty、pingdom、厂商自带如AWS SNS
  • HTTP加速器:Varnish
  • 消息总线:ActiveMQ、SQS
  • 应用服务器:Tomcat、JBoss
  • Web服务器:Apache、Nginx、IIS
  • 数据库:MySQL、Oracle、PostgreSQL等关系型数据库;cassandra、mongoDB、redis等NoSQL数据库
  • 项目管理(PM):Jira、Asana、Taiga、Trello、Basecamp、Pivotal Tracker

在工具的选择上,需要结合公司业务需求和技术团队情况而定。

DevOps——究竟为什么会兴起?

软性需求:文化和人

DevOps成功与否,公司组织是否利于协作是关键。开发人员和运维人员可以良好沟通互相学习,从而拥有高生产力。并且协作也存在于业务人员与开发人员之间。出席了2016年伦敦企业级DevOps峰会的ITV公司在2012年就开始落地DevOps,其通用平台主管Clark在接受了InfoQ的采访,在谈及成功时表示,业务人员非常清楚他们希望在最小化可行产品中实现什么,工程师们就按需交付,不做多余工作。这样,工程师们使用通用的平台(即打通的工具链)得到更好的一致性和更高的质量。此外,DevOps对工程师个人的要求也提高了,很多专家也认为招募到优秀的人才也是一个挑战。

DevOps——究竟为什么会兴起?

优势

  • DevOps的一个巨大优势就是可以高效交付,这也正好是它的初衷

Puppet和DevOps Research and Assessment (DORA) 主办了2016年DevOps调查报告,根据全球4600位各IT公司的技术工作者的提交数据统计,得出高效公司平均每年可以完成1460次部署。

与低效组织相比,高效组织的部署频繁200倍,产品投入使用速度快2555倍,服务恢复速度快24倍。在工作内容的时间分配上,低效者要多花22%的时间用在为规划好或者重复工作上,而高效者却可以多花29%的时间用在新的工作上。所以这里的高效不仅仅指公司产出的效率提高,还指员工的工作质量得到提升。

  • DevOps另外一个优势就是会改善公司组织文化、提高员工的参与感

员工们变得更高效,也更有满足和成就感;调查显示高效员工的雇员净推荐值(eNPS:employee Net Promoter Score)更高,即对公司更加认同。

重点

  1. 警惕总体安全风险。虚拟化、云、BYOD以及软件定义网络(SDN)等新兴技术不断得到采用意味着网络变得越来越复杂,愈发的异构化,安全风险也是如此。这其中的巨大挑战是迄今为止,安全被视为是事后想法,而安全组织又被认为是企业的抑制因子,只会告诉企业什么做不了而不是如何安全地做事情。这是一个文化问题,需要安全、开发者以及运营团队培育出此前未有过的一定水平的信任和协作。做到这一点的唯一办法是逐步地、带着警惕地去做。[3]
  2. 观察安全风险变化,把DevOps看作一种可将开发者和IT运营引向更快更高效的部署、运营及升级应用的协作理念和流程很重要。
  3. 注意可伸缩性。企业和技术的人必须在功能、推向市场的时间、成本以及风险承受能力等方面做出权衡。你需要有合适的衡量目标,包括特定模式下的那些端点上有多少用户,有多少并发请求。
  4. 争取实现易用-DevOps就是自动化和可重复性。
  5. 管理网关。尽管新的目标是在开发和运营团队之间建设最好的文化,但为了确保产品环境保持稳定,在这两个职能之间保留一些网关仍然是好的。
DevOps——究竟为什么会兴起?

DevOps的采用现状

DevOps正在增长,尤其是在大企业中:调查发现,DevOps的接受度有了显著提高。74%的受访者已经接受了DevOps,而去年这一比例为66%。目前,在81%的大企业开始接受DevOps,中小企业的接受度仅为70%。

那么具体而言都有些公司在采用DevOps呢?Adobe、Amazon、Apple、Airbnb、Ebay、Etsy、Facebook、LinkedIn、Netflix、NASA、Starbucks、Target(泛欧实时全额自动清算系统)、Walmart、Sony等等。

DevOps——究竟为什么会兴起?

为什么会继续火下去?

  • 条件成熟:技术配套发展

技术的发展使得DevOps有了更多的配合。早期时,大家虽然意识到了这个问题的,但是苦于当时没有完善丰富的技术工具,是一种“理想很丰满,但是现实很骨感”的情况。DevOps的实现可以基于新兴的容器技术;也可以在自动化运维工具Puppet、SaltStack、Ansible之后的延伸;还可以构建在传统的Cloud Foundry、OpenShift等PaaS厂商之上。

  • 来自市场的外部需求:这世界变化太快

IT行业已经越来越与市场的经济发展紧密挂钩,专家们认为IT将会有支持中心变成利润驱动中心。事实上,这个变化已经开始了,这不仅体现在Google、苹果这些大企业中,而且也发生在传统行业中,比如出租车业务中的Uber、酒店连锁行业中的Airbnb、图书经销商Amazon等等。能否让公司的IT配套方案及时跟上市场需求的步伐,在今天显得至关重要。

DevOps 2016年度报告给出了一个运维成本的计算公式:

停机费用成本 = 部署频率 * 版本迭代失败概率 * 平均修复时间 * 断电的金钱损失

  • 来自团队的内在动力:工程师也需要

对于工程师而言,他们也是DevOps的受益者。微软资深工程师Scott Hanselman说过“对于开发者而言,最有力的工具就是自动化工具”(The most powerful tool we have as developers is automation)。

工具链的打通使得开发者们在交付软件时可以完成生产环境的构建、测试和运行;正如Amazon的VP兼CTO Werner Vogels那句让人印象深刻的话:“谁开发谁运行”。(You build it, you run it)

DevOps——究竟为什么会兴起?


分享到:


相關文章: