前言:有赞最近开始在做平台化的事情,作为共享技术部门的成员,那么自然去要去参与平台化。偶然间,从同事那看到这本书,随意翻了下,不禁感觉相遇恨晚。
第1章:阿里巴巴集团中台战略引发的思考
第2章:构建业务中台的基础-共享服务体系
第3章:分布式服务框架的选择
第4章:共享服务中心建设原则
第5章:数据拆分实现数据库能力线性扩展
第6章:异步化与缓存原则
第7章:打造数字化运营能力
第8章:打造平台稳定性能力
第9章:共享服务中心对内核对外的协作共享
1、阿里巴巴共享事业部的发展史
阿里巴巴的电商平台由开始的淘宝,逐渐发展出天猫部门,一开始,淘宝和天猫部门由淘宝技术团队支持。后逐渐拆分出共享技术部负责公用的部分来支持淘宝、天猫的发展,淘宝和天猫则各自有单独的技术团队做符合各自特性的业务。
但是结果并不如预期,共享技术没有平等的话语权,并没有沉淀下真正的能力,在淘宝、天猫的各种变化的业务需求中艰难生存,而淘宝、天猫则认为共享技术不能很好的支撑,并各种搭建了类似的技术体系。这直接导致很多重复工作,最可怕的是这种重复工作还在不断发生。
后来,在聚划算发展的契机下,淘宝、天猫、1688非常想接入聚划算带来流量,而这时集团给了共享技术平等的话语权,但想接入聚划算必须经过共享技术,这也帮助其规范内部技术体系,为阿里日后的“大中台,小前台”战略做好了铺垫。
最后,共享技术发展成业务中台,成为孕育的土壤,为集团减少了大量重复工作,节约成本,逐步快速培育出了如闲鱼、玩兔等等新业务,并为阿里的数据打通(比如会员数据、交易数据)及日后的发展打下了基础。
2、企业信息中心发展的症结:“烟囱式”系统建设模式的弊端
3、企业信息中心发展的症结:业务支持一直是企业信息中心的组织职能
1、SOA的本质是服务重用。
2、服务需要不断的业务滋养。
只有不断的业务滋养,才能使服务真正成为可重用的组件,为业务的快速响应、支持业务快速创新带来业务价值。而不是采用传统的“烟囱式”系统方式以及“项目制”的建设方式。
这是一个长期、持续的过程,在业务发展过程汇总,逐步打造这些服务,这就要求新的业务必须接入这些已产生的服务,为这些服务能够变得更加专业和稳定带来急需的需求养分,而不能因为这些“刚出生”的服务功能简单、服务消费体验糟糕、服务不稳定等原因而放弃使用这些服务。
3、共享服务体系是培育业务创新的土壤。
共享服务体系能够看到各个业务场景中的自身业务的“点”,能接收到来自不同业务模式下所有交易相关的需求。这有利于培养出特定领域的专家,这些专家能很大概率给企业待来创新能力。
4、赋予业务快速创新和试错能力
共享服务的能力复用,可以极大减少企业的新业务建设成本和时间。而小的成本也让企业更愿意去更多领域快速试错,尝试更多业务。而对于前台的业务部门来讲,减少了很多重复造轮子的情况,团队自然也会更小,这样的小的前台业务团队将具有几个特征:①团队协同效率最高;②对战机(商机)的把握更加敏锐。③调整方向更加快捷。④一旦发现正确目标,全力投入扩大战果。
5、为真正发挥大数据威力做好准备
1、单个应用主要的问题
2、应用拆分后的优点
3、SOA的主要特性
4、“中心化”(ESB)与“去中心化”(dubbo、HSF0)服务框架的对比。P39
ESB产生的原因在于做早期分布式系统整合时,各个系统的语言、通信协议等均有很大的差别,这时,需要一个“中心化”的组件帮助解决这些问题,ESB孕育而生,帮助解决各个系统间的通信问题。
而对于统一标准或者刚开始建立分布式系统的企业来讲,“去中心化”服务框架则更适合未来的发展。在解耦、扩展、性能、容错等均展现出优势。
5、微服务是SOA的一种演变后的形态,与SOA的方法和原则没有本质上的差别,它们都得解决几乎相同的问题。具体技术的选型应该和企业发展的阶段保持一致。
1、共享服务中心的架构目的
1、服务中心的划分原则(P63)
架构本来就是一个追求平衡的艺术,不仅是设计原则上的平衡,还要在技术、成本、资源、性能、团队等各方面进行平衡,以最高效的解决主要问题,偏执的追求一个维度的完美肯定会在其他方面付出代价。
这一块讲的比较粗,其实大致的方案都了解,(读写?分库分表?分片?心跳检测?)具体的细节可以遇到问题时再深入
1、为什么要异步化?
传统ESB服务组合和编排的时候更多采用的是同步的方式,一直保持连接。然而,当所有逻辑都同步顺序执行时,其性能和扩展性都将受到限制。
2、异步化的思想
将大的业务操作,拆分到不同的处理和计算单元,通过异步调用来实现,无需一直保持长连接,占用资源。
3、分布式理论
强一致性(CAP)==> 最终一致性(BASE)
4、分布式事务
两阶段、三阶段、柔性事务(TCC、消息补偿等保证最终一致性)
5、柔性事务事务
主要是讲的阿里“鹰眼”的设计与实现。设计上都是基于Googl Dapper论文的实现,由于之前已经看过调用链的原理,这里没有细化去看每个实现细节,需要时再看每个技术细节也不迟。技术实现上,主要是通过引入鹰眼中间件,进行应用埋点,在机器本地打印日志,中间件会异步将日志传入storm集群实时收集,将实时统计结果写入HBase,将全量日志写入HDFS,MapReduce会运用Hadoop的集群的能力进行离线计算,并最终写入HDFS,最终支持可视化的日志的搜索、监控报警、链路跟踪等。
1、限流降级
这一块在其他书上以及平常自己接触过,所以看的比较快。淘宝的限流降级平台为Sentinel,开源可参考hystrix。
2、可能造成单点或局部应用出现故障的原因:
3、单机、局部服务能力出现问题,也会带来严重的影响
4、流量调度平台(根据机器的实时服务能力、是否可用等来分配机器的实时流量,进行降权、下线等操作)
核心是通过秒级获取服务器系统运行指标以及业务指标,通过流量调度平台设置的决策算法以及规则,当发现满足规则条件的指标状态发生时,对线上环境的服务器进行下线等操作,以屏蔽这些单点或局部出现故障的应用实例对整体平台产生的雪崩式营销。
P171
5、统一分布式配置平台(如apollo、diamond)
6、容量压测及评估规划(这个参考有赞内部的扩容及《亿级流量网站架构核心技术》更详细点)
7、全链路压测平台(可直接参考有赞的全链路压测细节)
8、BCP(实时业务审计平台)的主要目标
9、BCP(实时业务审计平台)的执行流程
10、BCP(实时业务审计平台)平台实现业务稳定的典型案例:双流对账方案
1、服务化建设野蛮发展带来的问题
2、业务中台与前端应用协作(这里的前端应用是指中台的上层具体业务方)
3、业务中台绩效考核
4、能力开发,构建生态。
第10章、第11章讲述了两个案例,虽然该章属于“阿里巴巴能力输出的案例”,但是更多的是中间件能力的输出及中台思想的输出,而不是阿里中台本身能力的输出。