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] 它 ...
随机推荐
- 值得推荐的android开源框架
1.volley 项目地址https://github.com/smanikandan14/Volley-demo (1) JSON,图像等的异步下载: (2) 网络请求的排序(scheduling) ...
- .net 根据银行卡获取银行信息
using System; using System.Collections.Generic; using System.Linq; using System.Web; /// <summary ...
- Eclipse安装Freemarker插件
方法一:手动安装 手动安装没有成功 步骤: 1. 下载freemarker-ide : http://sourceforge.net/projects/freemarker-ide/files/ 2. ...
- 浅谈JS之AJAX
0x00:什么是Ajax? Ajax是Asynchronous Javascript And Xml 的缩写(异步javascript及xml),Ajax是使用javascript在浏览器后台操作HT ...
- Windows下几款免费C/C++开发工具简介
我相信作为编程初学者,我们都希望有好用的编程软件.这里"好用"应该至少要满足两点:1.安装简单,2.使用方便.大神移驾,对工具有特殊偏好跳过,从来不用Windows的止步.本文不做 ...
- layer使用方法
type - 基本层类型 类型:Number,默认:0 layer提供了5种层类型.可传入的值有:0(信息框,默认)1(页面层)2(iframe层)3(加载层)4(tips层). 若你采用layer. ...
- slf4j介绍以及实现原理窥探
一.概述 slf4j(全称是Simple Loging Facade For Java)是一个为Java程序提供日志输出的统一接口,并不是一个具体的日志实现方案,就好像我们经常使用的JDBC一样,只是 ...
- ImageView的scaleType详解
ImageView的ScaleType详 1. 网上的误解 不得不说很失望,到网上搜索了几篇帖子,然后看到的都是相互复制粘贴,就算不是粘贴的,有几篇还是只是拿着自己的几个简单例子,然后做测试,这种以一 ...
- __cdecl 、__fastcall、__stdcall
调用约定: __cdecl __fastcall与 __stdcall,三者都是调用约定(Calling convention),它决定以下内容:1)函数参数的压栈顺序,2)由调用者还是被调用者把参数 ...
- 收藏的几个经典Flash
本人收藏了几个有意思的Flash,在此与大家分享下 1.黄金矿工中文版.swf 2.中国象棋.swf 3.运动的老鼠.swf 4.时钟.swf 5. 2048.swf 6.小猫逃跑.swf