Devops 这个名词最近很红, 也不知道为什么, 大家就一窝蜂开始谈这个东西. 那到底大家有什么误解? 今天我们就来聊一聊.
首先, 我们先要对于什么是 Devops 有个共同的认识, 否则在没有相同的基础上, 大家很容易各说各话. 在 wiki 中, 它的定义如下:
DevOps (a clipped compound of "development" and "operations") is a software development method that stresses communication, collaboration, integration, automation, and measurement of cooperation between software developers and other information-technology (IT) professionals.
也就是说他是一种软体开发的方法, 这个方法强调了开发和运营之间要沟通, 合作, 整合, 自动化, 以及要有度量和监控.
此外, 他的出现, 是因为他意识到: 为了按时交付软体产品和服务,开发和运营工作必须紧密合作. 因为, 最终还是要让你的business 赚钱, 要能让客户满意, 这才是他最想要的初衷和目的.
可是, 对于从最近的文章或是conference 中, 似乎演变成了自动化, 谁的工具用得多, 谁就是Devops 比较好, 然后再加上工具厂商在背后用力推广, 似乎远远偏离了Devops 的精神以及原因产生的动机了.
那到底大家都把 Devops 误认为什么呢? 就让我们一一来瞧瞧吧
自动化就是 Devops
大家常常看到提到 Devops 就会提到要自动测试, 自动部署, 好像做 Devops 就要把一切给自动化. Devops 是因为想要有效率, 所以才把一些事情给自动化, 但是反之不一定成立.
原先要解的问题是效率和即时性, 自动化只是其中一种解法. 也许只要人多多交谈, 就可以解决了. 凡事都用自动化, 似乎忘记了人的沟通才是根本.
Devops 就是要在 cloud, 就要虚拟化
因为Docker 和云端的话题在这几年很流行, 因此很容易在技术方面, 大家就会用到他们. 但是事实上, 你可以用旧的VMware/ESX, 或什至是实体机器也可以. 只要够用就好, 并且要配合你系统的特性.
就像创业一样, 不是创业就一定要高科技, 卖鱼卖鸡排也是创业. 用高科技并不会让你高人一等, 重点是你的 business 要能活得下去, 并且让客户满意.
Devops 就是一堆工具
每次提到 Devops, 很多人就会问你的工具包是什么, 似乎只要用了这些工具包, 就会变成 Devops, 产品就会快速交付了.
工具再强也是要有人要用, 如果大家都不愿意写自动化, 或者是收到自动化的讯息后没人要及时处理, 这些工具再好也无法帮你什么.
Devops 就是意味没有运营人员和测试人员
这是常见的误解, 认为只要导入 Devops之后, 就可以不要有专职测试人员, 以及运营人员. 所有事情只要 Devops 上了就好.
再次提醒, 当初要Devops 是要让不同角色的人工作能更有效率, 能够有同理心, 站在对方的角度去想, 怎样做可以帮助对方更有效率. 并不是把大家都裁了,然后只剩下一种角色的人, 做所有角色的事情.
Devops 可以不要有 agile
其实有没有 agile 可能不是重点, 只要你能频繁交付就好. 不过, 目前来说 agile 确实是达到频繁交付的好方法.
另外想想当初extreme programming 出来时, 他有强调要用Object oriented, design pattern 吗? 似乎没有, 可是呢, 如果你会的话, 在做TDD or refactoring 就会容易许多. 所以, 同理, 使用敏捷开发方法, 或是CI 会让你在实施Devops 时简单许多.
Devops 是好棒棒, 但是想太多也是一种灾难......
Author David Ko
好雨 - DevOps / 开发运维一体化
https://www.goodrain.com/devops.jsp
DevOps是一种理念,鼓励开发和运维之间沟通、协作、集成和自动化,以便更快捷、更频繁、更可靠的构建、测试、发布应用,而云帮ACP通过对CI/CD、高效运维、微服务架构等功能特性的设计和打磨,为DevOps的实现提供了一个可靠平台。