2010 年架构社区回顾:悠长的一年

阅读数:3437 2011 年 1 月 11 日 02:25

福尔斯特说:即将来临的一天,比过去的一年更为悠长。可是这即将来临的一天,无论多么的悠长,终究会流入过去的长河中。把握过去,或许可以成为另一种永恒。回眸过去的 2010 年,架构的发展或如花开花落如此的相似,却又如人来人往如此的不同!软件技术正是在这样一种变与不变中艰难的演进。透视 InfoQ 中文站架构社区在这一年中的热点,或许能帮助我们抓住架构发展的脉络。如此,在即将来临的一天,我们才不会产生面对未来的茫然。

1、 云计算:依旧灿烂

在过去的几年里,整个 IT 行业最热的词语无疑首推“云”。凡是与云有关的产品,公司,技术与论题,都会得到极大的关注,或褒或贬,却始终遮不住云计算的灿烂光芒。整体而言,在 2010 年,业界对云计算的质疑渐行渐远,云也逐渐脱离“云山雾罩”的神秘外衣,人们开始更多地关注云产品的应用,成功的云案例,以及如何规范云计算。这说明云计算已经从纷争的混乱时代开始走向成熟,业界对云的态度更加审慎与理智,不过高浮夸,也不肆意诋毁,而这才是技术发展的正道。个人认为,什么时候当云不再成为热点,就说明云要么已经消亡,要么已经融入我们的生活。正如在破译云计算的 7 个神话中引用的 Serdar 对云的概括:云不是神奇的万灵药也不是一场灾难,更不是救世主也不是罪人。它是一个解决问题的新工具。想象在这么几年里,谁还在炒作 PC 与互联网的概念呢?

在 2010 年,我们看到了许多云产品或云服务的推出。 Rackspace 推出开源云平台,为需要创建自有云解决方案的公司提供了 IaaS 平台。 Google 向开发者提供云存储,说明 Google 的云战略依旧在稳步的前进。而 VMware 也适时地推出了 vFabric,它可以说是 VMware 收购 SpringSource 之后体现其云愿景的产物。在2010 年, Amazon AWS 获得 ISO 27001 认证,标志着 Amazon 公共云已经真正成熟起来。显然,云计算领域中群雄并起,逐鹿中原的戏码还会继续上演。

与此同时,人们也越来越关注云的成功案例。例如,在云应用的两个案例中就提及了IBM 为日本人寿保险公司以及马来西亚信息图形与动画产业构建云平台,并提供云服务。2010 Amazon AWS 创业公司挑战赛的获胜者Mike Kavis,则分享了自己在云应用的成功经验,他认为云中成功的关键始于架构。

关于业界对云计算审慎探讨与分析的报道,频频见于 InfoQ 中文站架构社区。这些内容主要包括云间整合( Cloudstreams: 云间整合的下一个挑战),云的开放(开放的云让业务更“闪亮”),虚拟化(虚拟化发展减缓)、云应用重构(为云应用重构系统)以及云计算标准(云计算标准和开源项目)。

2、 NoSQL:众星追捧

突然之间,NoSQL 成为了明星,而且是万众瞩目、群星追捧的超级大明星。这一结果,或许作为 CAP(即 Consistency,Availability,Tolerance of network Partition)理论的提出者 Eric Brewer 也未曾想到吧。NoSQL(Not only SQL)作为一种迥异于关系数据库的持久化解决方案,以其高性能、分布式、可伸缩性、高可用性的特征,迎合了高速发展的 Web 应用的需要。NoSQL 的诞生与流行,可谓恰逢其时。

2010 年,NoSQL 产品开始扎堆出现,NoSQL 家族逐渐壮大。例如,在 3 月 23 日,North Scale 宣布 NoSQL 数据库解决方案 Membase 的推出。而在 10 月的 Hadoop World 大会上, Membase 与 Cloudera 宣布整合了 Membase 服务器和 CDH(Cloudera Distribution for Hadoop)。MongoDB 则不断推出新版本,例如在它的 1.6 版本中就增加了 Sharding 机制和副本集合特性。可喜的是,我们国内的互联网公司在 NoSQL 领域很是给力,也推出了自己的 NoSQL 开源产品,例如淘宝的 Tair,天涯的 Memlink。其实,在软件领域里,越是新的技术,我们国内的软件企业越有可能取得新的进展,提高自己的竞争力,只要我们拥有创新的精神、开阔的视野和足够的自信心。

比较而言,关系数据库在面对 NoSQL 咄咄逼人的态势下,显得有些心有余而力不足。例如 Digg 与 Reddit 就在 2010 年 3 月宣布加入 NoSQL 阵营,他们都将转向 Cassandra。当然,关系数据库的厂商自然也不甘失败,在 NoSQL 的竞争者这篇新闻中,就提到了不弱于 NoSQL 的关系型数据库 MySQL/HandlerSocket 和 VoltDB。面对 NoSQL 这种新类型数据库的流行,工程界人士也开始了 SQL 之争。在 2010 年 GigaOM 结构会议上,与会公司达成了共识,认为传统的数据库在可扩展的云环境中无法有效工作。他们开始了对 SQL 的声讨。10gen 公司的 Roger Bodamer 认为 NoSQL 更适合于建模领域,而关系型模式由于涉及到太多的表和关系,所以需要最好的数据建模师才能使其有效发挥作用。Neo Technology 公司的 Emil Eifrem 认为,SQL 总是让人头疼,开发者讨厌 SQL,并且使用工具来逃避它。

正是因为 NoSQL 呈现出来的优势与良好态势,越来越多的人开始重视 NoSQL,渴望了解 NoSQL。我们在对 InfoQ 中文站 2010 年的新闻进行点击量统计时,发现排名 20 位的文章中,与 NoSQL 有关的文章就包含了 4 篇,分别位列点击量的 3 位、9 位、11 位和 19 位,它们是:

分布式计算开源框架 Hadoop 介绍

解读 NoSQL 技术代表之作 Dynamo

淘宝开源 Key/Value 结构数据存储系统 Tair 技术剖析

图形数据库、 NOSQL 和 Neo4j

3、 HTML5:Web 的未来

毫无疑问,HTML 5 将在未来的 Web 中占有举足轻重的地位。然而,在这其中不知又开始了多少利益的纷争。Microsoft、Adobe、Google 以及 Apple 都在打 HTML 5 的牌,却又不愿意完全放弃自己原有的前端技术。事实上,Web 标准对于他们而言,既是灾难,又充满了巨大的诱惑。如何在未来的 Web 中分得一杯羹,那就得看他们拥抱 HTML 5 的态度了。

在评论雾里看花:微软的前端技术战略何去何从中,提及了微软开发者平台产品管理部经理Brad Becker 的态度,认为微软将致力于使用Silverlight 实现HTML 无法完成的解决方案来扩展Web 功能。而在微软推出的Internet Explorer 9 Preview 3 中,则提供了更好的 HTML 5 支持。显然,选择 Silverlight 还是 HTML 5,微软的战略有些摇摆不定。Adobe 面对 HTML 5,已经开始积极地面对。在 2010 年的开发者大会上,Adobe 向公众展示了一款用于 HTML5 动画制作的 IDE。可是在视频方面,Adobe 又该如何决策 Flash 的前途呢?现在,有许多视频网站已经开始从 Flash 迁移到 HTML 5,尤其是在 Apple 不愿意支持 Flash 的前提之下。例如, YouTube 就发布了 HTML 5 视频 beta 版,紧接着 Vimeo 也发布了 HTML 5 的 beta 版。至于 Google,也开始布局 HTML 5。它的 Chrome 浏览器目前已经能够支持 75% 以上的 HTML 5 特性。而在 2010 年 11 月召开的 Google 开发者日上,Freiheit.com 的 CTO Stefan Richter 则谈到了使用 HTML 5 与 Google App Engine 编写富 Internet 应用的愿景。虽然这并非官方发言,但 Google 开发者的声音,可能更草根,态度却也更鲜明。Apple 的步伐依然快速。至少在目前,Apple 在移动互联网的地位依旧不可撼动。如今,iPhone 的 Mobile Safari 浏览器已经能够支持 HTML5 的 Canvas/Canvas2D、Video、Audio、Geolocation、Local Storage/Session Storage、Application Cache、Web SQL Database 等。显然,Apple 的 HTML 5 战略已经落地。毕竟,Apple 可不像微软那样,还要为选择自己的技术而犹疑不定。

虽然在 2010 年 InfoQ 中文站架构社区中,对 HTML 5 的关注度似乎还不算高;但 InfoQ 的作者们对于 HTML 5 的前景却前所未有的保持一致的肯定态度。Abel Avram 撰文称 HTML5 已经起飞,豆瓣前端工程师张克军则认为前端的 HTML5 时代来临。当然,我们必须正视 HTML 5,了解其本质。正如《HTML 5 专业开发》一书的作者 Peter Lubbers 所说:“HTML5 不仅仅是 HTML 的更新换代,它已经孕育很久了。”或许,正是因为我们等待得太久,才对它充满了期待吧。

4、 架构质量:大事件

随着软件系统变得越来越复杂,规模越来越庞大,对架构的质量要求也就变得越来越高。如何改善架构的质量,成为了架构师不能承受之轻。是的,随着相关理论的逐渐完善,我们已经可以罗列出改善架构质量属性的技术矩阵。弓箭与靶已经准备就绪,我们却很难寻找到技艺高超的精灵弓箭手,来射出这有力而精准的一箭。一种好的学习方式是提炼最佳实践,所以在 2010 年的 QCon 北京大会上,Twitter 与 Facebook 架构师的演讲才会如此引人瞩目。

纵览 2010 年 InfoQ 中文站的架构社区,有两个与架构质量相关的事件值得我们关注。一个是 FourSquare 的宕机事件,准确地说,应该是 FourSquare 的 MongoDB 宕机事件。InfoQ 有三篇文章 FourSquare 经历两次宕机、 MongoDB 创始人 Eliot Horowitz 分析 FourSquare 宕机原因和 Foursquare 的 MongoDB 宕机事件报道和分析了此次事件,从不同的角度讨论和剖析了宕机事件的原因、解决办法和带来的教训。将它们串联起来读一读,或能启人深思。

另一个事件就是淘宝的双十一事件,InfoQ 中文站对此次事件做了一系列的深度采访,分别就技术和运维的角度剖析双十一事件中淘宝制定的方案与解决办法。这些采访包括:淘宝双十一事件的前中后技术事康伯谈淘宝双十一事件中的 CDN 优化和伏威谈淘宝网的高并发处理与压力测试。双十一事件在国内技术圈儿的影响极为深远,相信在很长的时间内,人们还会津津乐道于这一事件。

最佳实践不嫌其多。在 2010 年 InfoQ 中文站架构社区,我们可以看到 Facebook 分享了如何利用 BigPipe 优化页面加载时间,以及如何使用 Hadoop 来计算大规模分析;Google 则介绍了索引系统 Percolator 的技术细节,用于大数据集增量更新系统;Zynga 的CTO 则讨论了如何设计高可扩展性社交游戏;又拍网分享了架构中的分库设计;还有InfoQ 自己的案例分析,介绍了 InfoQ 网站的数据库升级过程。此外,架构社区还深入分析和讨论了架构质量中关键的属性:系统级复用性能优化与缓存架构安全数据恢复与备份系统集成以及可伸缩系统的设计模式

5、 企业架构:旧事重提

企业架构(Enterprise Architecture)是新玩意儿吗?不是!如果以 IT 行业的年龄来看,它或许可以称为老古董。在 1987 年,John Zachman 就提出: “为了避免企业分崩离析,信息系统架构已经不再是一个可有可无的选择,而是企业的必需”。从那时起,企业架构的理论就得到了缓慢的发展。那么,它的理论如今已经成熟了吗?很多架构师认为,企业架构的原则仍然缺乏稳固的基础。

随着云计算进入架构师的视野,它与企业架构之间的关系也引起了业内的争执。我注意到该文中的一个观点是“转向云计算为的是敏捷和灵活,企业架构正好与之相反。”这又引申出另外一个话题,那就是敏捷与企业架构的关系。Jean-Jacques Dubray 带着疑问的色彩发出呼吁,是否该重新思考企业架构了?敏捷的提出是为了应对软件的变化,而微软的Gabriel Morgan 则认为“EA 不应该包含面向公司变化的业务功能,而是应该通过正确的方式教育和协助建立这些业务功能。”这么说来,或许敏捷的架构可以作为企业架构的一种补充。整体而言,企业架构关注更多的是企业战略的层面。在对业务架构的进行更合理抽象能成为企业架构的关键吗一文中,Fujitsu 的云架构师Ian 的基本观点是,在不同抽象层次上建立业务架构的资产,产出一套适合企业环境的方法,从而有利于更全面的决策与实施。

我的眼光还在穿越这悠长的 2010 年,意犹未尽。我发现还有很多与架构相关的话题值得我们关注,例如 REST,例如模型驱动,例如敏捷与架构的关系,例如软件工艺与良好的设计。它们影响着系统的架构,或者作为架构的一部分决定着架构的优劣。

架构不是一天就能建成的,成为软件架构师的路线更是一个渐进的过程。Simon Brown 认为:“拥有持续的、跨不同领域的技能、知识和经验构成了软件架构的职责。跨越软件开发者和架构师的界限取决于你自己,但是首先你要明白你的经验水平,才能开始架构师之旅的第一站。”这段话撷取于他在 InfoQ 发表的文章你是个软件架构师吗,这篇文章是2010 年InfoQ 中文站架构社区最热最火的一篇文章,一共有21 条回复。看起来,软件开发者真的很在意软件架构师这个头衔!架构师的技能必须全面而专业,这就要求我们必须广泛阅读与涉猎架构领域的知识,套用Simon 的话,来一句广告,那就是——时刻关注InfoQ 架构社区,或许可以成为你开始架构师之旅的第一站。

2010 年已经过去,让我们欢迎 2011 年的到来!个人认为,2011 年的架构仍然会逃不出本文所涉及的五个范畴。除此之外,也许我们还会看到有关物联网和移动开发对架构带来的影响。而自敏捷宣言诞生到现在,已经过去了 10 个年头,或许在 2011 年会看到更多对敏捷架构的讨论。究竟如何,让我们拭目以待!

评论

发布