什么是互联网架构?
把传统的 IT 架构,从一个物理的专用硬件设备搬到云上,这不是互联网架构。开了一个公众号,亦或做一个 O2O 项目,也不能算互联网架构。
互联网架构有三个特征:
第一是敏捷性。
首先要想清楚客户为什么需要互联网架构重构他的 IT 系统?这里举一个例子,中石化的供应链的平台,今年是跟阿里合作开发的。中石化体量太大,若按传统的 IT 架构去做,从发标到最后上线,至少需要一年时间。可基于阿里巴巴的互联网架构,从第一次接触到最后上线,只用了 90 天时间,到运行四个月已经达成 70 多亿的交易额。
在供应链平台上线之后,两三个月时间又把中石化的会员卡系统上线,随后又是物流系统上线。所以互联网架构的第一个特征就是非常创新敏捷。
第二是扩展性。
整个互联网架构的计算能力,随着机器的增加,其性能和能力都是可以线性扩展的。
这里其实有两个含义,第一是在类似于 “双 11” 这种高并发场景下,它可以线性扩展;第二是当你要搭建一个覆盖全国或者全球的大平台,综合原来所有的 IT 系统架构依旧发现资源不足时,它可以线性扩展。这就像,基于以前的传统 IT 系统,我们的社保不能各个省联通成一个大平台,税务也是这个道理。
第三个是共享和开放性。
在基于传统 IT 的信息化建设中,做一个 ERP 系统或者几百个其他的系统,里面是有非常多的重复开发,这就是能力的不共享。
而阿里的互联网架构下,整个集团用户的管理,其实是作为一个服务共享给所有 BU 的。当做完第一个系统后,用户管理的能力便沉淀下来,这种共享能力被逐渐成为一个业务的共享层之后,再做一个新的系统或者业务时,只需要做一个差异化的业务逻辑就可以。
这就是内部共享,当积累更多,就可以选择开放和运营起来,共享给合作伙伴,这就是生态。
云计算是另一类运营商
电信运营商是运营着通信能力,云计算的公司是运营着计算能力,所以在互联网作为一种基础设施的前提下,云计算其实是另一类运营商。
站在企业的角度,最后每一个企业都会变成它核心能力的运营商。例如一个传统的制造企业,他具有设计能力、品牌能力、用户管理能力等,如果通过互联网架构,把这些核心的能力抽象成一个一个的微服务,通过运营,这些能力可以开放给所有的子业务单元,可以开放给下一个供应链和各个合作伙伴。那么企业就变成了其核心能力的运营商。
阿里巴巴的逻辑是,不仅可以去共享基础设施的云化,还可以实现业务能力的云化。这里就需要大规模的分布式数据库,包括整个服务化的理念等。
如何去快速复制阿里巴巴已经沉淀下来的互联网架构?
先看一下基本框架:最底层是企业级互联网架构,往上到中间这一层就是共享服务层,顶层就是能力开放平台。
这里有一个挑战,当原来的用户管理能力,是在不同的 IT 系统中以不同的形式存在,比如说用户的信息可能在 A 系统中是一种数据形式,B 系统又是另外一种形式,双方孤岛式的存在,在抽象成一个共同的用户管理中心能力之后,需要支撑的就不只是一个业务流了,要求必须是能力可线性扩展。
再来,把一个专用硬件上跑的独立的烟囱式系统,拆成一个横向的、平台化的、分布式的系统之后。有一个问题:这个系统虽然很好,当它越来越大的时候,运维怎么去治理,那么就要有数据化的运营。
说白了就两件事情,一个是在整个系统中做任何一次点击,整个服务集群里面的链路要被跟踪下来。再一个就是结合流计算的技术,能够实时的分析这些数据。真正的互联网架构,还要做到当服务对象感知出问题之前,系统已经知道自己出问题了,并切换掉。
也就是说,第一个挑战是分布式系统的平台和运维之间的矛盾出现后,必须要靠数据化和实时计算的方式去处理。
接下来会有第二个问题,小的垂直式系统被封入一个大的平台之后,有些调用会变成跨网络的调用,那么一定会遇到一个系统性的瓶颈。这时候,必须从架构上提升它的性能,也就是 MQ 起到的作用。此外,在分布式的服务框架等把计算层面的瓶颈打开之后,数据库会出现线性的扩展,数据数访问的链接等等也需要加机器让它线性扩展。
等这些都做完,整个的企业级互联网架构也就建起来。服务的中心可以涵盖供应链、销售、物流、客户管理,甚至把整个企业的能力全部服务化。
这里有一个思考,整个的企业各种 IT 流程、各种数据流,全部被统一到一个平台上去,有什么好处?
我们讲工业 4.0 的概念,最核心的就是从智能的销售,智能的客户管理,智能的物流,智能的供应链,最后整个的信息流打通,实现类似于 C2B 的逻辑。其实企业级互联网架构能够扩展到一个平台上的时候,工业 4.0 就可以落地了。
现在对于互联网的理解,都是工具和应用很多,但是底层架构讲的很少。例如,“双 11” 其实不光是买东西的盛宴,某种意义上是对一个企业商业基础设施的测试。阿里的架构也是经过七次 “双 11” 的锤炼沉淀和优化下来的东西。
这个架构有几个原则,最核心的一个原则,就是把企业的核心能力孵化出来。之后不应该看到企业是独立的一个个系统,而是面向全流程的自动化。
到这里,就涉及三个关键产品:
第一个是 EDAS 产品,这是一个分布式应用框架。超过 99%的阿里内部的应用,都已经在类似于这个上面去跑。该产品很好的封装了后台,所以对于程序员的要求是非常低的。例如,北京国税跟阿里的合作项目中,就只派了十几个应届生在这个平台的基础上,三个月内搭建起了系统。
第二是 DRDS 产品,也是大概超过 90%的应用基本上每天都在使用它,每天的调用量,分布式的数据查询也都在千亿次的级别。
再就是 MQ 这个产品。
这里再分享一个跟芒果 TV 的合作案例。在构建上,大概 40 天时间就完成了整个系统,更关键的一点是他们创新了播放的模式。尤其在粉丝互动时,整个网络的访问量会非常大,系统非常繁忙,在节目开始的时候发现系统能力不足了,只要再加机器上去就行了。充分体现了能力能够线性扩展,让所有的事情都会变的很平静。
总体来说,一个好的产品它有两个特征,第一个特征就是它能解决别人以前很难解决的矛盾。第二,当所有人用这个产品的时候,内心是非常淡定和平静的,不需要去做很多他不懂的事情。