阿里互联网架构的6大最佳实践

2016云栖大会上海峰会于2016.1.20日在上海科技馆顺利举办。本文根据阿里中间件首席架构钟华(花名:古谦)在“云栖大会上海峰会”专场《“互联网+”架构及实践专场-企业级信息系统云化演进之路》中的演讲整理。钟华在演讲中主要为大家介绍了阿里技术架构发展概况,以及在阿里在构建互联网级系统架构的6大最佳实践。

古谦首先带领大家回顾了阿里技术架构前期发展状况。在2016年,淘宝的技术架构现状是一个拥有300多个功能的系统,由500多人的技术团队负责维护,该系统基于传应用开发架构,但当时淘宝业务每年翻倍增长。在这样的大背景下,前期的技术架构出现了严重问题:牵一发而动全身,业务支持缓慢。上百人维护一个核心工程,项目发布周期太长,应用处理能力扩展成本高,错误难于隔离,同时也使得数据库能力达到上限。

经过多年实战和不断创新,阿里巴巴逐渐形成了今天自己的核心系统架构(如下图)。古谦介绍说,这不是单一的产品,是很多包括中间件等在内的产品沉淀和体系化的结果。做架构不能考虑当前的一件事情,要从业务持续发展来思考。他特别强调,共享服务体系的建立打破了应用“烟囱式”的垂直建设方式,使得可以支撑业务快速创新,避免IT建设的资源浪费。聚划算就是依靠这样的系统架构与理念,依靠几个人在短时间内完成系统快速上线。

b951af826a245c5236debf5d286a0c6612ff9797b951af826a245c5236debf5d286a0c6612ff9797

那阿里巴巴在形成今天的互联网级系统架构过程中,遵循着什么样的思路、原则,或者在整个构建过程中,有着什么样的经验值得业界参考呢?古谦在演讲中总结了6个原则:

  • 尽可能拆分
  • 服务架构“去中心化”
  • 异步化
  • 数据化运营
  • 尽可能使用成熟组件
  • 尽可能自动化

具体来说,“尽可能拆分”的意思是要以服务化的方式拆分架构,要做到更好地独立扩展与伸缩,更灵活的部署和隔离错误。“去中心化”的服务架构,与中心化架构诉求是不一样的,“去中心化”的服务架构可以实现服务能力的线性扩展;做到无业务单点,减少故障影响面。

异步化,则是利用异步机制拆分事务,系统解耦合,提升开发效率,不过需要值得注意的一点是要确保系统最终一致。数据化运营,则要真正发挥数据价值,而不是简单提供数据平台;同时尽量注意定位跟踪业务链问题,使得更好的管控“去中心化”服务。越是底层系统,越需要稳定,所以尽可能使用成熟组件,这可以保证在项目出现问题以后有充分的掌控力。

提到“尽可能自动化”时,古谦谈到说,今天很多互联网公司的运维跟不上,导致拖累业务的发展。运维这件事情虽然需要技术人员做,但是百分之八九十工作是可重复的。在运维领域里,人能做的事情机器也一定要做。一旦机器趋于稳定,一定比人可靠。人在做事过程中有情绪,容易出现人工误差。一旦机器规模增大之后,自动化是非常重要的。

“自动化”包括运维标准规范和平台化、弹性伸缩自动化、部署自动化、故障处理自动化。在2015年双11备战中,由于对自动化环境的充分准备,压力测试投入由2000人参与测试降低到了之前人数的1/16,这也大大减少了工程师熬夜次数,使得问题一旦出现就能得到快速响应。

最后,古谦表示说,不管是面对政府客户还是企业客户,我们的产品和服务需要有自己的核心价值。贡献服务理念,可以把核心价值和数据变得足够的稳固,可以面对任何的冲击,需要把我们的能力释放出去。通过能力开放平台,企业自身的数据和核心能力,或者外部第三方平台能够基于自身核心业务能力打造真正的生态。能力开放是新的开放方式,开放出去,对今天“互联网+”转型是真正切实有效的业务上的支撑。


2016云栖大会上海峰会回顾专题(含演讲视频):http://yunqi.aliyun.com/2015/shanghai/review.html

企业级互联网架构Aliware,让您的业务能力云化:https://www.aliyun.com/aliware