《企业IT架构转型之道:阿里巴巴中台战略思想与架构实战》-总结
一、什么是业务中台
概念来自于阿里,介于前台和后台(此后台指的是云计算、数据库、消息队列、缓存等基础服务)
采用共享式架构设计解决以往烟囱式架构设计的资源浪费、重复造轮、试错成本高的问题
阿里的中台架构:
二、业务中台的好处
传统烟囱式架构的缺点:
项目制下的产物,相似功能重复建设,比如各业务中通用的用户、订单、会员、评价等功能,开发和维护成本高
数据分散,格式不统一,无法进行某个领域的业务建模
团队成员按照项目组织,经常项目做完即走,无法深入了解业务,无法培养领域专家
创新业务试错成本过高,限制企业创新能力
中台架构的优点:
通用的业务能力沉淀,合理使用技术资源;数据集中,建模完整。
团队成员专注某个领域,形成业务专家
厚中台,薄应用的设计,创新业务试错成本低
形象的描述为:
美军二战时以军为作战单位,越战时以营为作战单位,中东战争时以7-11人的小班为作战单位,是当今世界上最灵活的军事组织。
美军之所以敢把小的团队投放前线,得益于中后台强大的导弹指挥系统。
三、业务中台的特点
开放:内部开放,易于接入
服务:提供统一服务,服务能力需要不断提升
滋养:需要不断业务滋养发展,无法一蹴而就,服务不需要“业务稳定”
稳定:利用专注专业的能力带来服务稳定
数据:线上和线下数据结合,充分发挥大数据的威力
四、业务中台建设原则
高内聚、低耦合原则——高内聚是指同一个服务中心内的服务模块应该相关性、依赖性很高,而服务中心之间应该隔离性较大,尽可能追求低耦合。
数据完整性原则——与上一条原则一脉相承,让业务相关的数据统一起来,尽可能让数据模型统一,为以后的大数据建设做好基础。
可运营性原则——这里的可运营性包含2层含义,一是指能快速满足上层业务的需求,同时利用业务不断滋养平台,二是指共享服务中心这个平台的可运营性,数据模型统一之后可以较低成本的引入大数据技术,让数据来源、数据分析、数据业务价值自然行程闭环,所以通过服务中心引入大数据来产生业务价值也是服务中心建设原则之一。
渐进性原则——该原则是从降低风险和实施难度的角度出发,有些人可能会觉得服务中心是基础建设,所以从一开始设计了太多的原则从而导致项目周期延长,数据过于分散也会产生数据库性能以及分布式事务的问题,其实服务化架构就是一种敏捷实践,我们推荐小步快跑而不是推倒重来,通过真实的业务需求锻炼出高价值高可靠的共享服务。
五、业务中台的稳定性
限流和降级
流量调度
业务开关
容量压测及评估规划
全链路压测
业务一致性
六、业务中台与前端应用协作
业务中台对前端核心业务的紧密沟通机制,比如定期参与前端的业务周会
建立分歧升级机制,解决有分歧的情况
岗位轮转推动真正换位思考
业务持续沉淀及共建模式
七、业务中台绩效考核
服务稳定是重中之重
业务创新推动业务发展
服务接入量是衡量服务价值的重要考核
客户满意度促动服务的提升
摘录于:《企业IT架构转型之道:阿里巴巴中台战略思想与架构实战》
《企业IT架构转型之道:阿里巴巴中台战略思想与架构实战》-总结的更多相关文章
- 《FLASH PROGRAMMING 那些事》总结
注明来自 http://www.ssdfans.com/?p=5589 以MLC为例: 对FGF(Floating Gate Flash)技术的,MLC programming一般分两步走:先prog ...
- Implementation of Serial Wire JTAG flash programming in ARM Cortex M3 Processors
Implementation of Serial Wire JTAG flash programming in ARM Cortex M3 Processors The goal of the pro ...
- [原创] Keil uVision5 下载程序 add flash programming algorithm选项缺少需要的算法解决办法
MDK开发环境从V4升级到V5后,支持包不再是集成到开发环境当中,而是封装在PACK中,需要自行安装,比较麻烦. 搭建MDK开发环境以及破解的方法,在前面的文章中有详细说明,这里不再赘述,有兴趣的可以 ...
- Turtelizer 2 provide JTAG Flash programming and debugging of ARM based boards via USB
http://www.ethernut.de/en/hardware/turtelizer/ Introducing Turtelizer 2 Overview Turtelizer 2 had be ...
- 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU硬件那些事(2.3)- 串行NOR Flash下载算法(J-Link工具篇)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是J-Link工具下i.MXRT的串行NOR Flash下载算法设计. 在i.MXRT硬件那些事系列之<在串行NOR Flash X ...
- Programming Internal Flash Over the Serial Wire Debug <SWD> Interface -- EFM32
1 Debug Interface Overview 1.1 Serial Wire Debug Serial Wire Debug (SWD) is a two-wire protocol for ...
- Error:Flash Download Failed-"Cortex-M3"
Error:Flash Download Failed-"Cortex-M3"出现一般有两种情况: 1.SWD模式下,Debug菜单中,Reset菜单选项(Autodetect/H ...
- STM32F4读写内部FLASH【使用库函数】
STM32F4Discovery开发帮使用的STM32F407VGT6芯片,内部FLASH有1M之多.平时写的代码,烧写完之后还有大量的剩余.有效利用这剩余的FLASH能存储不少数据.因此研究了一下S ...
- Flash Download Failed-"Cortex-M3"
rror:Flash Download Failed-"Cortex-M3"出现一般有两种情况: 1.SWD模式下,Debug菜单中,Reset菜单选项(Autodetect/HW ...
- Stm32_调试出现 Error:Flash Download Failed-"Cortex-M3"
rror:Flash Download Failed-"Cortex-M3"出现一般有两种情况: 1.SWD模式下,Debug菜单中,Reset菜单选项(Autodetect/HW ...
随机推荐
- Ubuntu Kylin 14.04安装
早听说Ubuntu Kylin对中国本地做了很多定制的工作,想搜狗输入法.WPS,还有中国日历等.昨天没事就下载了一个Kylin试用了下,使用的方法还是使用EasyBCD软件做了个硬盘安装启动,关于E ...
- P1006 输出第二个整数
题目描述 输入三个整数,整数之间由一个空格分隔,整数是32位有符号整数.把第二个输入的整数输出. 输入格式 输入三个整数,整数之间由一个空格分隔,整数是32位有符号整数. 输出格式 输出输入的三个整数 ...
- while循环&CPU占用率高问题深入分析与解决方案
直接上一个工作中碰到的问题,另外一个系统开启多线程调用我这边的接口,然后我这边会开启多线程批量查询第三方接口并且返回给调用方.使用的是两三年前别人遗留下来的方法,放到线上后发现确实是可以正常取到结果, ...
- C# 程序集数量对软件启动性能的影响
本文通过很多的数据测试分析在一个项目引用很多个外部项目和将外部项目的类合并到一个项目之间的启动性能的不同. 通过分析知道了如果一个项目引用了很多项目,而且在启动过程会全部调用这些项目,这时的软件性能会 ...
- linux alloc_pages 接口
为完整起见, 我们介绍另一个内存分配的接口, 尽管我们不会准备使用它直到 15 章. 现 在, 能够说 struct page 是一个描述一个内存页的内部内核结构. 如同我们将见到的, 在内核中有许多 ...
- antd Bug记录
antd-mobile Carousel 走马灯竖向滚动内容为空会导致visibility:hidden; Carousel Banner轮播组件初始化加载高度不正确可以在第一张图片onload事件的 ...
- ZOJ——String Successor(字符串模拟题目)
ZOJ Problem Set - 3490 String Successor Time Limit: 2 Seconds Memory Limit: 65536 KB The succes ...
- Libra和中国央行数字货币(DCEP)的对比
最近偶然和朋友讨论起Libra,对Libra和央行的数字货币方案很感兴趣.梳理了阅读资料(参考见文末)和自己的思考,发知乎留个记录. Libra 是什么? 无国界货币 + 为全球数十亿人服务的金融基础 ...
- 安卓APP动态调试(IDA实用攻略)
转自:http://drops.wooyun.org/mobile/5942 0x00 前言 随着智能手机的普及,移动APP已经贯穿到人们生活的各个领域.越来越多的人甚至已经对这些APP应用产生了依赖 ...
- JavaScript递归注意事项
var svg_node = document.getElementById("svgnode") function parents(posnode,selector) { var ...