3.1、淘宝平台“服务化”历程

大约2007年,淘宝500人团队,维护一个war包,200多个功能模块。

1)项目团队协同成本高,业务响应越来越慢

2)应用复杂度超出人的认知负载。

3)错误难于隔离【同一个环境,一个jvm】

4)数据库连接能力很难扩展:每一个机器只有10个,但是应用机器过于多,也达到了5000多连接

5)应用扩展成本高

2007年10月,开始进行基于SOA理念新一代服务化框架研发以及采用业务模块逐步迁移的方式进行应用架构的改造。在未来的14个月中将单一应用模式改造成基于SOA理念的分布式服务架构。在应用部署上,由之前一个几百兆的war包部署模式改造成上百个war包独立部署的服务化框架。结果是:

降低不同模块开发团队间的协同成本,业务响应更迅捷。

大大降低系统间的耦合度以及整体复杂度,各个开发团队可专注各自的业务模块。

避免了个别模块的错误给整体带来的影响。

业务拆分后解放了对单数据库集群连接数能力的依赖。

做到针对性的业务能力扩容,减少不必要的资源浪费。

3.2、中心化 与 去中心化 服务框架的对比

SOA主要特性:

面向服务的分布式计算

服务间松散耦合

支持服务的组装

服务注册和自动发现。

以服务契约方式定义服务交互方式

传统的SOA是以基于ESB总线方式,而互联网是以去中心化服务框架。

1)ESB模式的中心化服务框架的根本诉求

  实现异构系统之间的交互

2)去中心化分布式服务架构解决的问题

  一般是运行在企业内部网络,基于统一的技术接口标准,网络协议,规范进行交互,已使服务的交互效率最高。

对比

1.服务调用方式的不同带来业务的响应和扩展成本。

  

  每一次的交互过程:服务调用者→ESB(接收服务请求)→服务提供者(服务处理)→ESB(服务提供者返回结果)→服务调用者(服务返回)

  经过服务总线路由过的服务交互,共出现4次网络回话创建和数据传输,而去中心化服务框架中服务交互,一次服务的调用只有两次网络会话创建和数据传输,在网络上的开销减少了一半。

  

2.雪崩效应束缚了中心化服务框架的扩展能力

3.3、分布式服务框架HSF、Dubbo

HSF服务框架包含以下主要组件:

服务提供者,在服务框架中真正提供服务功能实现的应用实例,一般是集群部署,每一个HSF的应用均是以war包形式存在,运行在阿里优化定制的tomcat容器中,在tomcat容器层集成了HSF服务框架对服务提供者或者服务调用者进行配置服务容器发现、服务注册、订阅、失效转移等相关功能。只需配置即可,无需引入jar依赖包。

服务调用者,同服务提供者类似。

地址服务器,在HSF服务框架中肩负着给服务提供者和服务调用者提供部署环境中所有配置服务器和DIamond服务器的服务器列表信息。是由Nginx提供该能力。再部署HSF服务环境时,会将整个环境中的配置服务器集群(服务器IP列表)和Diamond服务器集群信息设置在地址服务器上,在实际生产部署中,也会部署多台地址服务器提供负载均衡和高可用性的服务,服务提供者会通过统一域名的方式访问这些地址服务器,通过DNS轮询,实现地址服务器访问的高可用。

配置服务器,配置服务器主要负责记录环境内所有服务发布(服务提供者的IP地址和服务端口信息)和服务订阅(服务调用者的IP地址和服务端口信息)信息,并将服务相关信息推送到服务节点上。为了追求服务发布和订阅推送效率,所有的服务发布和订阅信息均是保存在内存中。

Diamond服务器。是一个通用的统一配置管理服务(类似zookeeper)给应用提供统一的配置设置和推送服务。

  

HSF优点:

1、采用Netty+Hession数据序列化协议实现服务交互

2、容错机制

  

3、线性扩展支持,启动容器后自动注册

3.4、关于微服务

1.1、Martin Fowler描述:

1、分布式服务组成的系统

2、按照业务而不是技术划分组织

3、做有生命的产品而不是项目

4、智能化服务端点与傻瓜式服务编排

5、自动化运维

6、系统容错

7、服务快速演化

1.2、微服务面对的问题

1、微服务化的应用架构如何进行有效的服务管控

2、分布式事务难题

3、自动化运维和平台稳定性

1.3、微服务要求

1、服务设计:服务边界的划分一定是从业务的维度。

  以什么样的服务颗粒定义服务。以什么样数据模型支撑服务能力的线性扩展?如何保持设计出的服务具有很好的业务前瞻性?在满足业务需求下,服务能力的通用性?其他业务接入的扩展能力?

2、原有组织架构是否满足微服务架构持续发展的需要。

003-读书笔记-企业IT架构转型之道-阿里巴巴中台战略思想与架构实战-分布式服务框架的选择的更多相关文章

  1. 004-读书笔记-企业IT架构转型之道-阿里巴巴中台战略思想与架构实战-共享服务中心建设原则

    一般来说服务能力包括两个层次,一个是底层paas的能力,PaaS层结局大型架构在分布式.可靠性.可用性.容错.监控以及运维层面上的通用需求:第二个层次是业务能力,业务能力提供云化的核心业务支撑能力,这 ...

  2. 002-读书笔记-企业IT架构转型之道-阿里巴巴中台战略思想与架构实战-第二章 构建业务中台的基础-共享服务体系简介

    2.1.回归SOA的本质-服务重用 SOA理念的核心价值:松耦合的服务带来业务的复用,通过服务的编排助力业务的快速响应和创新. 现有模式多是烟囱式结合 ESB 企业总线打通不同系统间的交互. 2.2. ...

  3. 001-读书笔记-企业IT架构转型之道-阿里巴巴中台战略思想与架构实战-第一章 阿里巴巴集团中台战略引发的思考

    1.1.阿里中台发展 组件中台可能问题:组织间业务协作.业务核心能力的沉淀.组织KPI考核等 1.2.企业信息中心发展的症结 1.烟囱式系统建设模式 独立构建独立维护 缺点:1.重复功能建设和维护带来 ...

  4. 《企业IT架构转型之道:阿里巴巴中台战略思想与架构实战》-总结

      一.什么是业务中台 概念来自于阿里,介于前台和后台(此后台指的是云计算.数据库.消息队列.缓存等基础服务) 采用共享式架构设计解决以往烟囱式架构设计的资源浪费.重复造轮.试错成本高的问题 阿里的中 ...

  5. 企业IT架构转型之道,阿里巴巴中台战略思想与架构实战

    前言: 晚上11点多闲来无事,打开QQ技术群,发现有关 '中心化与引擎化' 的话题,本着学习的心态向大佬咨询,大佬推荐一本书,我大概看了有四分之一的样子,对于我这种对架构迷茫的人来说,如鱼得水,于是特 ...

  6. 从阿里中台战略看企业IT架构转型之道

    此文是我阅读<企业IT架构转型之道>一书的学习笔记,所有内容出自钟华老师的这本书. 零.为何读<企业IT架构转型之道> 在加入X公司后,开始了微服务架构的实践,也开始了共享平台 ...

  7. 《企业IT架构转型之道》读书笔记

    1 出发点:企业IT系统建设普遍面临的问题和处境 很多企业面临的问题和处境: 『烟囱式』系统建设模式. 当业务部门提出业务需求,信息中心部门进行系统集成商的招投标,再进入到需求收集.需求分析.开发.测 ...

  8. 企业IT架构转型之道 读后感

    放假三天,用部分时间阅读了企业IT架构转型之道这本书.第一遍潦草读完,就感觉收益颇多.这本书值得多读几遍,适合精度. 作为银行IT开发人员,在央企IT成本部门的大背景下,开发过程中遇到的诸多疑惑.困惑 ...

  9. 阿里巴巴分布式服务框架dubbo学习笔记

    Dubbo是什么? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案.简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的 ...

随机推荐

  1. [Object Tracking] **Mask R-CNN

    From: 如何评价 Kaiming He 最新的 Mask R-CNN? 如何跟进这些人,是个能力,要慢慢掌握. https://github.com/CharlesShang/FastMaskRC ...

  2. [Bayes] Understanding Bayes: Visualization of the Bayes Factor

    From: https://alexanderetz.com/2015/08/09/understanding-bayes-visualization-of-bf/ Nearly被贝叶斯因子搞死,找篇 ...

  3. [Linux] 硬盘构造与分区

    首先让我们从物理结构上了解一下硬盘的存储原理. 硬盘构造示意图: 1. head:磁头,磁盘盘面上的磁头,有几个磁头,就有几个盘面.从0开始编号,最大255,表示总共256个磁头. 2. cylind ...

  4. [转]Git忽略规则及.gitignore规则不生效的解决办法

    在git中如果想忽略掉某个文件,不让这个文件提交到版本库中,可以使用修改根目录中 .gitignore 文件的方法(如无,则需自己手工建立此文件).这个文件每一行保存了一个匹配的规则例如: # 此为注 ...

  5. 终端IO(上)

    一.综述 终端IO有两种不同的工作方式: 规范方式输入处理.在这种方式中,终端输入以行为单位进行处理.对于每个读要求,终端驱动程序最多返回一行. 非规范方式输入处理.输入字符不以行为单位进行装配 如果 ...

  6. 二分求幂/快速幂取模运算——root(N,k)

    二分求幂 int getMi(int a,int b) { ; ) { //当二进制位k位为1时,需要累乘a的2^k次方,然后用ans保存 == ) { ans *= a; } a *= a; b / ...

  7. day_10 py

    整理代码!!2018-7-24 20:53:49 直接复制了东西: 一些的demo 重点看蓝字部分! 就是一些简单的方法 基础的而已! 2018-4-22 15:50:26 继续py 还是py好玩感觉 ...

  8. Linux目录结构及文件基本操作

    作业: 1.创建一个homework目录,在该目录下新建名为1.txt~10.txt的文件 2.删除1.txt~5.txt 代码: mkdir homework cd homework touch { ...

  9. Maven本地库_remote.repositories文件

    本地库中的包都有一个_remote.repositories文件,示例: #NOTE: This is an Aether internal implementation file, its form ...

  10. NPOI 自定义单元格背景颜色 XSSFWorkbook - Excel

    x 网上找到了,HSSFWorkbook自定义颜色的例子(讲的还挺细致的),但是XSSFWorkbook确没找到...研究了一下,坑掉了一地... NPOI.XSSF.UserModel.XSSFWo ...