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. [JS] Topic - hijack this by "apply" and "call"

    Ref: 详解js中的apply与call的用法 call 和 apply二者的作用完全一样,只是接受参数的方式不太一样. 参数形式: Function.apply(obj,args) call方法与 ...

  2. [UI] 06 - jQuery

    前言 From : http://www.runoob.com/jquery/jquery-intro.html Ref: jQuery 实例 一.什么是 jQuery ? jQuery是一个Java ...

  3. [Linux] 如何禁止使用口令只允许使用密钥建立 SSH 连接

    1. 创建 SSH KEY 使用 ssh-keygen 生成一个密钥对,并且将公钥注册到服务器的 $HOME/.ssh/authorized_keys 文件. 2. 确保启用 SSH 公钥认证功能 查 ...

  4. cocos2d-x游戏引擎核心(3.x)----事件分发机制之事件从(android,ios,desktop)系统传到cocos2dx的过程浅析

    (一) Android平台下: cocos2dx 版本3.2,先导入一个android工程,然后看下AndroidManifest.xml <application android:label= ...

  5. IOS-一步一步教你自定义评分星级条RatingBar

    本文转载至 http://blog.csdn.net/hanhailong726188/article/details/42344131 由于项目的需要,需要设计能评分.能显示评分数据的星级评分条,但 ...

  6. 四、K3 Cloud 开发插件《K3 Cloud事件、方法、函数》

    1.简单帐表/动态表单几个主要事件 //初始化 public override void Initialize() //构建动态列 public override BOS.Core.Report.Re ...

  7. MySql 5.7 新特性概览

    安全的提升 1.1 在Mysql 8版本中,caching_sha2_password 是一个缺省的认证插见.5.7 版本的客户端支持 caching_sha2_password 的客户端认证. 1. ...

  8. 利用selenroid扩展uiautoamtor的webview解析能力

    uiautomator是一个非侵入式框架,但是webview解析能力很弱.为了改进webview的支持,可以考虑把webdriver或者selenroid整合进来. 具体接入可参考:http://se ...

  9. Win10配置分屏显示

    新买的电脑是17.3的,单独打开一个界面总是感觉地方有点浪费,研究了下分屏使用. 以下是现在分屏后的电脑界面. 设置说明 目的:将三个窗口分屏布满屏幕,便于多任务操作. 步骤: 1.按住鼠标左键,将w ...

  10. pandas pivot_table 活学活用实例教程

    pandas pivot_table 活学活用实例教程 导入相关数据分析的库 首先进行commentTime时间进行数据预处理 查看数据类型信息 最简单的透视表 直接敲击该函数,在notebook中可 ...