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. [Algorithm] Maximum Flow

    Ref MIT: lecture-13-incremental-improvement-max-flow-min-cut/ Ford Fulkerson algorithm for finding m ...

  2. [UI] 01 - CSS

    前言 一.认识 From: http://www.runoob.com/css/css-tutorial.html CSS 指层叠样式表 (Cascading Style Sheets) 解决内容与表 ...

  3. [React] 13 - Redux: react-redux

    Ref: Redux 入门教程(三):React-Redux 的用法 组件拆分规范 使用 React-Redux,需要掌握额外的 API,并且要遵守它的组件拆分规范. React-Redux 将所有组 ...

  4. ImportError: libmysqlclient_r.so.16: cannot open shared object file: No such file or directory

    在开发一个python项目是,需要用到mysql,但是, 安装完mysql-python后import加载模块提示以下错误: ImportError: libmysqlclient_r.so.16: ...

  5. Sciter返回json

    sciter::value arr[200]; for (int i = 0; i < (int)m_fileList.size(); i++) { cv::Mat img = cv::imre ...

  6. Diagnostics: File file:/tmp/spark-***/__spark_libs__***.zip does not exist

    Diagnostics: File file:/tmp/spark-c03df206-c90e-4c97-a2d6-a5d3fdb17811/__spark_libs__303213348409500 ...

  7. 【react】---context的基本使用新版---【巷子】

    一.全局定义context对象 globalContext.js import React from "react"; const GlobalContext = React.cr ...

  8. HDU 1247 - Hat’s Words - [字典树水题]

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1247 Problem DescriptionA hat’s word is a word in the ...

  9. 【待补】splay 模板

    #define _CRT_SECURE_NO_WARNINGS #include<cmath> #include<iostream> #include<stdio.h&g ...

  10. CM5.x配置spark错误解决

    通过cloudera manager 5.x添加spark服务,在创建服务过程中,发现spark服务创建失败,可以通过控制台错误输出看到如下日志信息: + perl -pi -e 's#{{CMF_C ...