序言一
本书讲述了阿里巴巴的技术发展史,同时也是一部互联网技术架构的实践与发展史。
为一个复杂的、高速发展的业务构建一个技术系统是一个巨大的挑战。阿里巴巴集团主要是以电子商务、支付为业务主体,这类系统都是复杂的商业系统。这个业务又承载于互联网之上,互联网又具有海量的访问请求与数据。这两者的结合,形成了阿里巴巴集团的业务系统的关键特点。
不同于搜索、社交之类的应用系统,电子商务、支付的业务特性决定了其必须有很高的稳定性与可靠性。用户在使用搜索引擎的时候,哪怕丢失了一半的搜索结果,用户可能都没有觉察。但在电子商应用中,每一笔订单、每一个状态、每一次支付都不能有丝毫差错。与此同时,像双十一这种业务高峰时刻,每秒钟就需要处理十万笔以上的订单。高可用、海量、复杂的业务逻辑交织在一起,是阿里巴巴业务系统的主要挑战。
阿里巴巴集团为了应对这些挑战,在技术上、组织架构上都进行了广泛的实践。并进一步将此种实践提升至中台这样的概念。
阿里巴巴集团在很多技术方面进行了不断的探索,如数据库的水平扩展、复杂业务系统的结构化与服务化、大型系统的消息处理、关键业务系统的实时调控等。在数据库层面,阿里巴巴很早就启动了去IOE的项目,本质上是想解决大规模数据的线性可扩展问题,包括存储与访问两个方面。为了实现这个目标,发展了一系列的中间件来支撑这种新的架构。
随着业务的发展,阿里巴巴也面临着复杂业务系统的解耦问题。在互联网行业,需求的迭代速度非常快,通常每周都会有数十个功能更新或增加,并要及时发布。如何保持业务相对隔离可以让工程师大规模并行工作,传统上有很多解决方案,如SOA、ESB等,但如何在解耦的同时仍能满足互联网海量访问且具有高性能的要求,阿里巴巴集团对传统技术进行了革新,提出了一系列实用的技术方案。
系统规模进一步变大之后,需要解决更多、更复杂的问题,比如在全球进行分布式的部署、99.999%以上的高可用、容灾等,这对系统的架构与设计提出了更多的挑战。
解决了系统的静态架构之外,很快就会发现,像此类复杂的企业级互联网应用需要在运行时可以全程进行动态感知与管理,不仅要有全部的监控能力,更要根据业务流量进行业务的优雅降级,确保系统高可用等。
我认为本书将阿里巴巴一系列在工程上的实践进行了系统的总结,也为进一步的系统演进积累了很好的经验,打下了坚实的基础。
阿里巴巴集团CTO张建锋(行癫)
2017年4月于杭州