大道至简,知行合一。

阿里拆中台

架构

为什么会有架构?

  • 物理学中‘熵增定律’:一个封闭的系统,都是从有序到无序,即它的熵(混乱程度)会不断增加,最终系统会彻底变得无序;
  • 名字来源于建筑学,从茅草屋到摩天大楼,如何利用有限的面积做出更多的使用空间,类比户型;
  • 软件系统演化,问题变得越来越复杂,e.g. 校园网:告白墙、上传照片、留言评论、主题功能等等。
    • 随着需求的发展,会不断往其中添加新的业务功能;
    • 随着访问量的发展,会不断通过技术手段来强化系统的非业务性功能;

架构的目的

  • 通过内部的合理编排,保证系统的高度有序;
  • 实现合理编排的手段,就是‘分’与‘合’的两者合作;
  • 微服务架构,就是一种拆分的模式,一种分的思想;
  • 中台战略,就是一种服务平台化,一种合的思想;

架构设计原则

  • 合适:只挑对的,不挑贵的;
  • 演化:谁都有一个青涩的童年;【淘宝03年买的PHP上线,后续换了Java,本身技术很烂,找的Sun公司,被强塞用的EJB,很笨重、执行效率低】
  • 成本:好钢用在刀刃上;【很多时候是小成本试错,做MVP(最小化可行性版本)】
  • ……

架构演进案例

1. 初始阶段:用户注册+发帖,上线试水应用服务器应用程序文件数据库服务器

经过一段时间推广运营,用户量上升不少,但是用户反馈网站访问很慢,比如图片打开竟然需要3秒。

可以做程序优化,但是本着快速响应用户需求,时间不等人,能用钱解决的尽量用钱,所以采用硬件升级,即‘分’,当然也要做好取舍,不是能花多少钱就花多少钱,比如淘宝订单业务功能多少钱都得保证稳定性,评论业务就要求没有那么严格。

2. 应用服务器和数据服务器分离

访问速度提升,同时文件服务异常不影响用户。

一段时间后,用户量再次上升,网站流量上升,应用服务器压力倍增,比如一台服务器500到1k并发,用户访问2k,网站有崩溃压力,需要再次进行‘氪金’。

3. 应用服务器集群部署

能够支持大量用户访问了,后续上线了图片说说功能,用户使用频繁,但是分析用户行为日志,发现用户自己发帖少,看别人发帖比较多。

此时读需求多,主要是文件读取和数据库读取压力增加。

4. 缓存服务器优化读性能

解决数据库读取压力,使用缓存,原来是访问数据库,即读取硬盘数据,现在使用缓存,即读取内存空间,保护数据库服务器。

缓存组件以Redis为例,官方声明支持并发为10W/s,就算是1G2核低配服务器也可以轻松达到7到8W,可见缓存读取的速度是很快的。

e.g. 小明同学喜欢看女神小红的个人空间,一分钟刷好几遍,原来都是读取数据库,服务器压力很大,现在有了缓存,可以只第一遍读取硬盘数据,并将结果缓存下来,后续直接从缓存服务器获取数据即可。

用户继续成长,社区逐渐繁荣活跃,越来越多的用户倾向于发帖,此时写压力增大,而缓存仅能解决读压力,需要继续调整架构。

5. 数据库读写分离

主从复制实现读写分离.

因为网站设计功能很单一,用户粘性降低,考虑不断添加新功能,包括评论互动、投票、点赞、打赏等等,网站越来越复杂。

此时随着业务越来越复杂,可能光代码就百万行,这时候就得做拆分了。

6. 服务化拆分

这时不同的业务功能服务可能就由不同团队负责,比如这里服务A和B,不同服务采用消息中间件进行通信。

康威定律:来自于Melvin Conway1968年写的一篇论文,原文是Any organization that design a system (defined broadly) will produce a design whose structure is a copy of the organization’s communication structure.其大意是设计系统的组织,其产生的设计等同于组织之内、组织之间的沟通结构。更加直白一点的说,一个团队设计出来的系统,和这个团队的组织结构,交流方式有很大的关系,如果一个团队是松耦合的,那么开发出来的产品也将是松耦合的。反之亦然。

直白点就是产品基因。组织架构和技术架构对应,才能保证整体业务顺畅,所以公司对技术架构改造,也是对团队结构进行改造。

7. 最终架构形态

前后端分离,见下图,有些组件未涉及,如链路监控、注册中心等。

应对高并发访问的策略

垂直伸缩

提升单台服务器的处理能力,一个打十个;优先考虑,比如将4G换8G,2核换4核;常见于用户量稳定少量的情况,比如银行;

水平伸缩

使用更多普通的服务器构成一个分布式集群,一百个打十个;常见于互联网,用户量不可限制,用户量增长速度远快于硬件增长的速度;

中台战略

‘大中台小前台’的出现

  • 03年出现淘宝,08年阿里调整战略,出现天猫,面向用户群体不一样;
  • 二者存在重复建设问题,造成大量重复建设和资源浪费,如会员、商品、支付系统;
  • 阿里共享事业部应运而生,负责将各个前台系统中的公共部分进行平台化改造,最开始发展并不好,后续10年聚划算得到爆发发展,奠定了其重要地位,埋下中台战略种子;
  • 15年,马云摆放芬兰游戏公司Supercell(《部落战争》、《海岛奇兵》、《卡通农场》),员工不到200,平均一款游戏负责团队员工5到7人,可以快速推出产品,快速试错,经过6年,沉淀下来游戏开发中的公共、通用的游戏素材和算法,让小团队可以像搭积木一样快速研发一块新游戏,该公司后来被腾讯花费86亿美金收购绝大部分股份。
  • 催化剂,阿里一直在构思‘厚平台,薄应用’。

中台架构:双中台战略

为什么拆中台?

  • 张勇:业务发展太慢,要把中台变薄,变得敏捷和快速;
  • 中台百搭意味着妥协,妥协意味响应变慢;
  • 形势变了,当初做中台,是自认为是绝对霸主,现如今对手攻势如潮,宫殿修的再漂亮,也无法防御敌人;
  • 缺少创新,中台适合做‘组合式创新’,只是玩搭积木、拆积木的概念,无法做‘颠覆性创新’;
  • 跳过中台,直接对接基础服务,扯皮减少,交流顺畅,需求延期概率降低;
  • 兵无常势水无常形;架构还是看具体场景和所处发展阶段,做厚做薄,主要看打集中歼灭战还是遍地开花的游击战;
  • 中台不是不行了,是场景变了,中台在提升组织效率、进行组合式创新方面还是非常优秀,很多大厂未来仍然面临这方面的问题,中台依然适用。但是头部公司目前需要解决的是颠覆性创新和释放组织创造力等深层次的问题。
  • 未来,中台将越来越薄,越来越碎,越来越轻,即‘中台碎片化’;
赞(0)
未经允许不得转载:北凉柿子 » 阿里拆中台
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址