DevOps is dirty work - What's the deal
什么是DevOps?终于又回到这个最初的问题。
第一次看到这个词的时候,还身陷于各种敏捷概念轰炸中。用“身陷”这个词其实并不准确,因为那个年代的我也是那些热情洋溢地无处不宣传敏捷的热血文艺青年中的一员。就像天生的一样,我从未接触或真正实践过瀑布模型。瀑布开发对我来说一直是书里的概念,各种流程背得滚瓜烂熟都是应付考试用的东西。打从第一脚踏入老东家N记,Scrum Master骄傲地带着我各楼层领略五颜六色的进度小纸条和大小各异的手写燃尽图的那一刻开始,我就被敏捷浸淫而无法自拔。N记也不愧为国内敏捷先锋,直到如今国内各大论坛,峰会,workshop,event,无论民间还是官方,企业还是协会,只要有点知名度的敏捷活动,都会混迹一两个N记出身的大牛身影。作为如许多大牛的前同事,可想而知,哥们儿也算科班出身,多少也练就一番底蕴。也的确受益于在N记玩Scrum Master的经验,随时拿敏捷的套路和精髓来吹个牛早已是小菜一碟,而那些敏捷教练都会的抓个话题侃侃而谈也基本不再话下,甚至当时觉得自己做个敏捷顾问绝对绰绰有余,无非就是舍不得拿白银出来去考各种段位凭证罢了。就这样飘然来到C记,在运功帮助团队艰难转型的岁月中某一天,DevOps这个词从天而降。也是从那天起的不久之后开始,对自我介绍这件事产生了巨大的茫然无措之感。
“你现在在C记做什么啊?”
“上线。。。也不完全是。。。运维吧。。。也不确切。。。发布。。。其实我们要写code的,还要测试。。。搭环境我们也管。。。pipeline。。。Jenkins。。。总之很忙。。。经常加班还on call。。。”
“哦。。。现在JDK8了,你们在用吗?”
“对了,我们还要建虚拟机。。。啊?你说Java哦。。我们。。。python,ruby,puppet,groovy,shell,java,C。。。语言太多。。。哦,Java也用的。。”
“嗯嗯,挺好的。。。”
对的,DevOps就是各色杂糅。不仅如此,DevOps的英雄们都是千面人。在Ops眼中,DevOps是troubleshooting的Dev。在Dev眼中,DevOps是排除万难的Ops。在DevOps眼中,DevOps是似幻似真的一切。
我通常喜欢把Continuous Integration(CI)作为描述DevOps工作的起点,尽管很多人都认为DevOps是个比这宏伟得多的事业,而且事到如今这已是如每天早餐一样让人习惯到不废几个工夫就能搞起的事情。然而在我看来,CI系统虽然已普遍被接受并作为各种大咖书中信手拈来的话题,却是在整个自动化部署产品中起着关键的指标性作用,而且并没有被大多数人深入理解。简单来说,没有完善的CI系统,即使Continuous Delivery(CD)能力再强,也不值半毛钱。而为了多值几毛钱,CI的搭建往往不在乎工具,而在乎内容。具体故事,还待细说。
如今DevOps的工作范畴已经无限宽广,稍微看过几本书的人就能举出好多fancy的名词。Jenkins,StackStorm,Docker,Nagios,Circonus,Logstash,Sensu,Nimbus,OpenStack,Puppet,Hiera。。。若要滔滔不绝起来,每一个名词都可以把前世今生说个天荒地老。而事实上更糟糕的是,每天都有新的名词在出现,举不胜举,防不胜防。如若第一次看到这堆名词,一个一个去google的话,相信我,你一定会疯。
尽管生态环境如此恶劣,DevOpser们却每天还在享受与拼命之间来回拉锯,时而因新学一种工具或语言而对未来无比鸡血,时而因一个脚本连不上Server而对事业悲哀到厌食。很刺激,有没有?
其实废话了那么多,还是没说清DevOps是做什么的,那么还是有必要总结一下。DevOps的工作就是,除了制作Application之外的所有工作。如果非要来些启发式的总结,那么,如果你即将踏入DevOps领域,你的决定一定没错,因为大数据时代的IT属于会做Dirty Work的全栈(Full Stack)工程师。如果你还没有这个打算,我的建议是,想清楚再打算。
对了,差点忘了最重要的一件事。在开始成为DevOps之前,请先做一名合格的Dev。DevOps is dirty work where you have to be more than a Dev.
DevOps is dirty work - What's the deal的更多相关文章
- DevOps is dirty work - Dream in One-Click
真是一晃就到年底,年初许的梦想实现了吗?这么残忍的问题还是不要知道答案了吧:) 这恍若隔世的大半年,不仅没有承接着上篇继续聊Continuous Delivery (CD),反而疑似荒废.然而,梦想还 ...
- DevOps is dirty work - CI drives you crazy
一直很想谈谈Continuous Integration(CI),持续集成. 就在不久前一次朋友聚会上,一个刚刚跳槽到一家创业公司的朋友跟我抱怨说他们没有CI,没有code review,要做点事太累 ...
- CI Weekly #10 | 2017 DevOps 趋势预测
2016 年的最后几个工作日,我们对 flow.ci Android & iOS 项目做了一些优化与修复: iOS 镜像 cocoapods 版本更新: fir iOS上传插件时间问题修复: ...
- DevOps对于企业IT的价值
其实从敏捷延展开的 DevOps 概念很早就已经被提出,不过由于配套的技术成熟度水平层次不齐, DevOps 的价值一直没有有效地发挥出来.现如今,随着容器技术的发展, DevOps 在企业中的实践难 ...
- 给 DevOps 初学者的入门指南
当我们谈到 DevOps 时,可能讨论的是:流程和管理,运维和自动化,架构和服务,以及文化和组织等等概念.那么,到底什么是"DevOps"呢? 什么是DevOps 随着软件发布迭代 ...
- DevOps的基本原则与介绍
DevOps的基本原则与介绍 DevOps这个术语是developer与operations的合并简写.实现还有QA.DevOps描述与精简软件交付流程,在今天已经开始广泛的使用.强调从生 ...
- DevOps
DevOps DevOps(英文Development和Operations的组合)是一组过程.方法与系统的统称,用于促进开发(应用程序/软件工程).技术运营和质量保障(QA)部门之间的沟通.协作与整 ...
- 当DevOps撞上物联网
DevOps 领域在近年来变得流行而普遍.它强调不同的角色之间共同协作,以及如何工作得更加紧密,就像这个词语的词根暗示的那样--开发和运维.但是DevOps和物联网有什么关系? 本文选自<Dev ...
- DevOps是云计算时代的开发与运营
DevOps(英文Development和Operations的组合)是一组过程.方法与系统的统称,用于促进开发(应用程序/软件工程).技术运营和质量保障(QA)部门之间的沟通.协作与整合.[1] 它 ...
随机推荐
- html用户注册界面
html用户注册界面 先上一张简约的界面的效果图 这里是style里面的内容 <style> input[type]{ border: 1px solid darkorange; ba ...
- VS2013编译Qt5.6.0静态库
获取qt5.6.0源码包 直接去www.qt.io下载就好了,这里就不详细说了. 这里是我已经编译好的** 链接:http://pan.baidu.com/s/1pLb6wVT 密码: ak7y ** ...
- Factorization Machine因子分解机
隐因子分解机Factorization Machine[http://www. w2bc. com/article/113916] https://my.oschina.net/keyven/blog ...
- RobotFrameWork(三)数据类型
1.1 数字变量 执行结果: 1.2 布尔变量和None/null 执行结果: 1.3 字符串.元组.list和字典 执行结果: 1.4 space和empty 执行结果:
- 解决Delphi图形化界面的TEdit、TLable等组件手动拖拽固定大小,但是编译之后显示有差别的情况
经常遇到这样的情况,在我们使用Delphi的可视化工具进行UI设计的时候,我们拖拽TEdit或者Label组件,并且在可视化界面上设置它们的长.宽 但是当我们编译和运行程序的时候,却发现真正显示出来的 ...
- 【Java EE 学习 33 下】【validate表单验证插件】
一.validate 1.官方网站:http://jqueryvalidation.org/ 2.文档说明:http://jqueryvalidation.org/documentation/ 3.j ...
- WPF 实现 DataGrid/ListView 分页控件
在WPF中,通常会选用DataGrid/ListView进行数据展示,如果数据量不多,可以直接一个页面显示出来.如果数据量很大,2000条数据,一次性显示在一个页面中,不仅消耗资源,而且用户体验也很糟 ...
- SpringMvc的创建流程以及2种加载配置文件的方式
1.首先创建个web项目,第一步导入相应的jar包,并且buildtoPath 2.用elipse或myeclipse点击进入web.xml中 按住 Alt+ / 有个提示 找到前面带 #Dispat ...
- php实现数据库数据读取生成缓存文件
有些时候我们希望减少对数据库的 查询来提高程序的性能,因为这些数据不是经常变更的,而是会在很长一段时间内都不会变化,因此,我们每连接一次数据库,都会把相应的结果用文件的形式保存 起来.比如对于一个商城 ...
- Linux 查杀病毒的常见命令
1. 查看异常连接的网络端口及其对应的相应的进程 netstat -anlp | grep EST 2.看下相关的进程ID对应的可执行文件的位置 ps 2393 可以看到进程的可执行文件在哪? 3.临 ...