明天被领导要求分享Qcon体会,实在是件不怎么容易的事情。Qcon这样的企业开发大会,很多东西必须要实际应用过才能深有体会,泛泛的谈似乎又觉得乏味。好吧,泛一下就泛一下吧,总比废话要强(上一句是我认为的废话)。
第二天的Qcon大会我主要听了“Devops”的主题。下面分场次来讲一下:
1. 乔梁的Devops
持续集成(CI)拉近Dev和QA
敏捷(Agil)拉近了Business,Dev和QA
而
Devops需要拉近Dev,QA,Ops
Devops兼顾了Dev,QA,Ops,Devops = Culture + Tools,乔梁认为Culture占了70%~80%
无论是CI,Agil还是Devops,自动化是最最基础的。
自动化根据应用场景的不同可以分为三个方面:
1. Environment Provisioning (推荐工具:Puppet,Chef,ControlTier)
2. App Deployment & Data Migration (推荐工具:Capistrano,DBdeploy)
3. Logging & Monitoring (推荐工具:Splunk,Nagios,Munin)
工具具备,如何做(How)?
1. Always write production-ready code
2. Minimize the lead time from idea to live
(我怎么感觉这是What,而不是How)
再玩一下概念:
乔梁提到了精益软件开发(Lean Production,LP,哦,是精益,不是老婆。。),LP是敏捷开发模式中的一种。他提到了符合LP的几种有用实践:
1. System Thinking
2. Value Stream Mapping
3. Practices
后来提到了Marting Fowler一篇关于特性分支的文章:http://martinfowler.com/bliki/FeatureBranch.html
后来举了一个baidu内部推行持续交付的实际项目。
2. 印度某公司的Devops关于Chef的介绍
提到了Devops的Culture:
infrastructure as code
1. Repeatabiity —— Idempotence (幂等性)
2. Automation
3. Agile
4. Scalability
5. Ressurance
6. Disaster Recovery
ssh in for loop is not a solution
后面就开始介绍Chef在他们公司的应用,哥不是很了解。不过发现Ruby在工程上的应用还是很多的(Chef是用Ruby开发的)。
3. 百姓网的敏捷实践
人少的团队就是敏捷啊,不敏捷也就可以88了。
百姓的现状:
1. 集中开发环境
2. 用户测试驱动开发(PHP的动态特性)
3. Svn无分支
4. 每日上线
总体感觉,由于技术人员比较少(全部加起来也就12人),在很多方面可以做到非常灵活,本身的技巧可能并不是多么新鲜。
光是写了下别人的东西,感觉不太好,我补充一下个人的体会,精辟的说两句:
1. 作为技术人员,至少目前是,对于“概念”要保持足够的认识。要知其所以然(为什么要提出这个概念?目前是否有好的实践?),而不是泛泛停留在表面,没有哪家公司会为了“概念”付费。
2. 概念说到底,就是要求项目中的人具备各方面的能力,才能让沟通、理解保持在很高的水准,最终达到更快,更高,更好的目的。比如“Devops”,很明显的例子,所谓的“一专多能”。
3. 很多东西,属于“虽不能至,心向往之”,比如百姓网,只有12个开发,那敏捷的程度自然不是动辄几百个开发的大公司所能比拟的。但是我们要敢于想象一种理想的境界,而不是过分强调“我们目前的实际情况”,这个不可行,那个不现实,结果一样没去做。我理解的废话,一般就是这种类型的,“虽然。。但是。。”,“一方面。。另一方面。。”,“希望更理性的分析。。而不是。。”,网易做产品强调“有态度”,做人做事也是如此,一定要有倾向性,让别人看得出你的态度:赞同什么,反对什么;赞同谁,反对谁,尽管都是一定程度上的(你懂的)。
好了,9点快到了,写的再爽也要停笔了,人怎么能跟时间较劲呢。呵呵。