写在前面
民以食为天,食以农为本,农以码为源。饮食文化在中国的渊源历史,浸润了我们这个民族对于自然,人性和哲学的思考。伴随着互联网从工具技术向商业模式转换的浪潮,我们这个文明古国迎来了一次跃进式发展契机。在这一历史机遇面前,我们除了借鉴海外的成功经验,也迫切需要接地气的方法论和发展观。
本系列文章作者系DaoCloud的联合创始人,作为中国最早的开源云计算布道者和实践者,过去几年一直致力于将先进的互联网技术与积淀的企业文化融会贯通,帮助企业实现从传统向互联网业务+技术的双跨越。DaoCloud团队是中国最早的开源容器技术团队,云集了一批业界顶尖工程师历经锤炼,于2015年初正式推出全球首个一站式Docker云平台公有云服务,为用户提供互联网应用的持续集成、镜像构建、发布管理和容器托管的解决方案。文章题材皆来自DaoCloud孵化器内的实际企业案例,并试图用贴近生活的短文将互联网+的应用开发和交付秘诀与读者分享。
上回说到学校后门的黑暗料理,立马开始收到各路私信推荐,且精确提供,如“第四根电线杆”这样的地理位置信息,“面向憨厚的胖大娘”的人脸识别技术,和“排队最长的那家”此类的强社交属性信息。今天的主角,兄弟肉夹馍的故事,就是这么来的。
开发运维,齐力断金。
肉夹馍,属于走三层混合架构的典型代表,同类型的还有驴肉火烧,煎饼果子,大饼卷肉。这个架构因其独特的分层设计原则,带来了极大的开发便利性。这一架构在全球各地都有变种,如汉堡包,三明治,帕尼尼,Spring MVC,Ruby on Rails等。但共性都是一样的,核心风味的食材作为模型,外部通过包裹预制的面粉类框架控制形态,最后封装一层包装交付给用户享用。这一架构被广泛使用好处是食物组件框架化,方便批量生产。缺点就是一旦规模化制造,势必和定制化矛盾,最后就是风味同质化,难登大雅之堂。
所以按图索骥摸到复旦大学北区宿舍的夜市时,除了排队的长龙,并看不透各中神奇之处。直到将近到了队伍前头,得以细看老板的手艺方才一探究竟。这个摊子不大,一人见长,半人见宽。兄弟二人分列两头,左为案板,右为炉火。摊前一溜摆着各色辅菜。于众不同之处在于,食客入队需自报数量,口味和忌口。排在我前面是个金发碧眼的洋妞,一入队便切口一般冲着老板报出“两个薄脆少肥微辣无香菜”。兄弟二人耳闻指令,几不抬头。掌炉火之人合上炉灶掷一块新鲜面团按需揉捏后置入炉火烘烤,掌案板之人勺出相宜之熟肉手起刀落。待得洋妞走到跟前,自助添加辅菜到案板,而案板之人毫无停歇持续加工。恰在此时,掌炉火之人于火中探物,抄起热肉馍飞至案板。案上之人飞刀之处,置馅料与馍中,交于洋妞。一气呵成,叹为观止。待得我走到面前,两兄弟突然移形换位,互换角色。看得我目瞪口呆,忍不住问这是炫技吗?兄弟一人冲我甩甩手说“手切累了,轮换。”。恍然大悟,这便是兄弟制造肉夹馍的秘密。
在传统的业务开发体系里,我们已经习惯了按照既有的框架来将业务转化为业务实现。框架带来的便利同时也间接导致了开发的流程被人为的割裂,这一割裂造成的最普遍现象就是快速变化的业务需求,与不堪重负的运维压力之间的矛盾。于是乎在产品经理,开发团队,和运维团队之间慢慢铸起了高墙,仇恨在这些高墙的间隙见弥漫生长。产品半夜催运维,运维半夜骂研发这样的故事无数遍的重复上演。这个局,怎么破,今天的兄弟二人给了我们很好的启示,也就是传说中的开发运维一体化。
所谓开发运维一体化,即DevOps。追根溯源,来自于Google的内部实践。在Google,一个工程师除了需要开发产品功能,还要向两头延展自己的角色范围,一方面要懂的利用数据来量化自己产品的用户反馈,另一方面每一个人需要能够管理和部署自己的产品。这是一项前期投入大,但是见效长久的工程。借助于Google自身强大的技术实力和卓越的工程师文化,这一理念最终落地申根,成就了未来发展的基石。
工程师文化,是工匠精神在人类文明的新表现形式。对一个工匠来说,其内心最大的满足感在于自己的作品“跑起来,有人用”。这一前一后两个环节,是激发其创造性和能动性的原力。但是因为历史发展的局限性,我们提供的开发工具和管理方法,将开发人员装进了两扇高墙之间,丧失了持续获取原力的渠道。所以好的厨子会偷偷冒充侍者给客人点菜,躲在墙角偷偷看客人的表情,谦虚的询问有什么意见建议。这就是DevOps的精髓。肉夹馍的兄弟二人,谁为开发谁为运维已很难界定,既是掌勺的开发,也是切菜的运维。且互通技能,融为一体。结果就是高速流转的业务,和持续改进的客户体验,并对定制化需求的快速响应。
我们做互联网业务的,遇到的情况肯定比兄弟二人错综复杂。还有很多历史遗留问题也或多或少局限了我们迈开步子的决心。好在是类似容器技术这样的东西适时的出现,大大的降低了开发人员向运维技术栈延展的门槛。当年Google天时地利人和才能做成的事情,现在几乎唾手可得。
原来干运维的听到这急眼了,这是要抢饭碗麽?有道是:开发运维化,运维工具化,工具云端化。运维这工作实际上迎来了更广阔的发展机遇,既然从机械简单劳动解放出来,世界那么大,那还不想去看看?
至此,开发阶段的三道料理尝的也差不多了。但CTO的美食之旅还要继续,正如此季开篇所述,每一个吃货心里都住着个厨子,各位看官难免有些技痒。那下一季我就带大家做做我们DaoCloud厨房的三道招牌Docker料理,也欢迎@DaoCloud,推荐您的独门料理菜谱。