在 信息技术的不断变革中,那些曾经耳熟能详的程序英雄的名字渐渐地离我们远去,个人的力量变得越来越渺小。正当我们开始坚信单打独斗的时代一去不复返的时 候,云计算横空出世了。它强大的计算能力、存储能力和简单高效的编程接口,使得一位程序员能够轻松地操控成千上万台计算机,而不必考虑太多的细节。
云计算时代,仿佛又让我们感觉到个人英雄时代伸手可及。
程序英雄时代的衰落
WPS作者求伯君、KV杀毒软件作者王江民、五笔字型作者王永民、中文之星作者王志东、UDDOS作者鲍岳桥和简晶、CCDOS作者吴晓军、自然码作者周志农、CCED作者朱崇君……这些业内耳熟能详的名字,每一个名字都代表一个奇迹。
3岁因小儿麻痹症而落下终身残疾、38岁才接触电脑的王江民,在1996年带着他无师自通编写的KV6杀毒软件来到中关村,1周就赚了150万。1年后,KV杀毒软件占据了通用软件40%以上的市场份额。一夜之间,王江民成为中关村最受人景仰的软件英雄。程序英雄们的故事,曾经是多么辉煌!
然而,随着Internet大浪潮席卷而来,程序英雄们开始隐身幕后。虽然一部分程序英雄成功转型,鲍岳桥和简晶创办了联众,王志东创办了新浪,雷军开创了小米……但谁都清楚,他们是创办者,是管理者,不再是署在他们网站“封面”上的作者了。从那时起,除了一些小软件外(其中不乏成功案例,如Net Ants等),已经很少有人能够与某个知名软件划等号了。
日渐沉重的Winux时代
随着IT从DOS时代向Windows时代过渡,软件系统开始变得越来越复杂,程序开发变成了软件工程。软件除了开发过程外,还有运作过程、维护过程。
首 先,需要进行问题分析,形成软件需求规约,再进行需求分析,生成功能规约。然后,要进行概要设计和详细设计。接着,实现活动把设计结果转换为可执行的程序 代码。软件研制的分工越来越细,有的人做数据库访问层,有的人做业务逻辑层,有的人做用户界面层;软件开发的整个过程,都有不断确认的活动,保证最终产品 满足用户的要求;软件部署后,还有维护活动,包括使用过程中的扩充、修改与完善。伴随以上过程,还有管理过程、支持过程、培训过程等。
不仅软件开发和运维过程越来越复杂,软件的规模也越来越大。从Windows代码行数的变化中就可以看出端倪:Windows 95是1500万行,Windows 98是1800万行,Windows 2000是2000万行,Windows XP是3500万行,而Windows Vista则高达5000万行。虽然比尔·盖茨经常在公众面前怀念只有几十KB的BASIC语言,Windows还是不可避免地变得越来越臃肿,Linux也是如此。二者在这一点上很相似,不妨将之称作Winux。
由于代码量巨大,软件越来越不可能单靠个人的力量就能完成。例如,Windows 2000开发团队有900位开发人员,还配有1800位测试人员。同时,又由于软件系统极其庞大,出现各种Bug的可能性大增,给维护工作带来巨大的挑战,每一个补丁都需要耗费大量人力。所以说,在Winux时代,软件业的个人英雄是很难出现的。
云计算时代程序英雄重现
2006年8月,刚从大学毕业的史蒂维·克里弗顿,发现人们有把照片变成Flash短片的需求,于是架了几台服务器,创办了一家名为Animoto的小公司。当时,Animoto网站每天只有5000位访客。
然而2008年4月,Facebook向其社区热情推荐了Animoto,使得在短短的3天里,就有75万人到Animoto网站注册。Animoto网站顿时不堪重负,变得慢如蜗牛,恶评铺天盖地而来。要扭转乾坤,必需增容100倍以上。这对既没有资本又没有增容技术能力的年轻人来说简直是灾难。
在这个紧要关头,史蒂维的大学同学建议使用亚马逊提供的计算资源租用服务。从此之后,Animoto不再需要购买任何新的设备,有多少流量,就租用多少亚马逊的计算能力。用多少,付多少钱,既节省了成本,又获得了可以无限扩展的计算能力。如今这群年轻人已经赚了大钱。
亚马逊提供的这种计算资源租用服务就称为云计算。亚马逊研发了弹性计算云EC2和简单存储服务S3为企业提供计算和存储服务。在诞生不到两年的时间内,就有44万程序员在亚马逊上注册,开发各种各样的应用。
除了亚马逊外,Google、IBM、微软和Yahoo等大公司都建有云计算平台。云计算领域的众多成功公司还包括VMware、Salesforce、Facebook、YouTube等。
Google搜索引擎就建立于分布在200多个站点、超过100万台的服务器的云计算平台之上。几乎Google所有产品都可以被认为是典型的云计算产品,因为它们也同样使用了这些基础设施。Google还提供了Google App Engine编程环境,供程序员们开发各种应用。
微软于2008年推出了针对公有云的Windows Azure操作系统(现已更名为Microsoft Azure),于2012年又推出了针对私有云的Windows Server 2012,再加上能够统一调度管理这两者的System Center所构成的微软云操作系统,可以有力地帮助用户池化IT资源,变革数据中心,突破数据中心规模疆界,在私有云、托管云和公有云之间,线上线下自由迁移,灵活管理,从而支撑现代应用,支撑海量计算。
以 前,用“一朵云”来代替网络。现在,云计算之所以称作“云”,就是因为其计算设施不在本地而在网络中。云计算是网络宽带化发展的必然结果,它是一种商业计 算模型,将计算任务分布在大量计算机构成的资源池上,使用户能够按需获取计算力、存储空间和信息服务。云计算的核心是可以自我维护和管理的虚拟计算资源 池,通常由一些大型服务器集群构成。
有了云计算平台,程序员就可以动态申请所需资源,来支撑各种应用程序的运转,而无需为烦琐的细节烦恼。云计算使程序员能够更加专注于自己的业务,有利于提高效率、降低成本和实现技术创新。对于程序员而言,如果能够实现向云计算转型,是一个提升自身含金量的绝佳机会。
作者简介:刘鹏,中国云计算专家咨询委员会副主任、中国信息协会大数据分会副会长。