2014年11月19日
[知乎专栏–思考IT]自动驾驶汽车、DevOps、SDE及其他
这个标题,各位看官一看,只怕就会有所体会吧:又是一篇无主题变奏型散文了。
好吧,我承认自己因为各种所见所闻,各种联想与思考,打算写一篇形散神不散的文章。
昨天在路上开车,正好听到交通广播电台的主持人,在介绍自动驾驶汽车,然后介绍这个创新背后的三大支撑:智能导航软件,移动互联网,大数据分析。
我听着觉得很有道理,于是联想到了最近了解到的关于DevOps的一些内容:尽一切可能自动化,Everything as Code,持续交付,虚拟化与云计算。
再进一步,又联想到了之前听到的关于SDN(Software-Defined Network)甚至是更夸张的SDE(Software-Defined Everything)。这背后的技术依然是:虚拟化,云计算,Evertything as Code。
当信息技术的大潮席卷全球的时候,我们在各种创新的背后,都发现了一组似曾相识的身影。
- 如果可能,将任何一个环节都替换成可编程的结构——Everything as Code
- 尽一切可能,将传统的硬件,软件化、虚拟化、服务化,按需提供——Cloud
- 这一切必须要连在一起,不动的东西要连起来,移动的东西也要连起来——Networking
- 由此产生的海量数据,需要能够被高效率的处理——Big Data
拿这四种技术去分析:医疗(基于云计算与大数据分析的医疗)!教育(基于云计算与大数据分析的互联网教育)!开源硬件的创新大潮(基于可编程组件与移动互联网的硬件)!
值得一提的领域还有很多,但无非是这四种技术的排列组合罢了。那么,用这个视角来分析IT研发领域本身呢?
DevOps自然是应用了其中的(Everything as Code、Cloud),比如Vagrant、Puppet、Chef之类的工具可以作为代表。但是:
- Cloud化的进展,并不算快
- Cloud IDE的兴起,目前还处在早期阶段,尚未大规模应用于生产实践。有些公司似乎在尝试,但是大多数程序员,还是在桌面IDE上编程。
- 可以Cloud化的研发领域,还有很多,整个研发过程,都应该有办法搬到云端完成才是。
- Networking,对于研发意味着什么?哪些内容可以在一个研发网络中流动?注意,是整个全球网络,而不是项目组的那几个人
- 打个比方:对一个Story分解为Task的工作,只怕类似的Story已经被无数人做过了。当一个Story摆在我的面前,我能不能搜索类似的前人经验,不必从头做起?工作量估算,也是一样,可以参考他人的做法。
- 大数据分析,也还没有应用于IT研发本身。在研发活动中,有多少行为,是可以数字化的?是可以被统计和分析?是可以通过分析,进一步被优化的?
- 从研发活动能够产生的数据,其实非常非常多,值得跨项目、跨团队横向比较的数据也非常多。这个可以参见我的另一篇文章:玩转Trello – 思考IT – 知乎专栏
从以上的分析来看,给全人类带来福音的信息技术,还没有足够好的造福自己。值得创新的领域,还很多很多!