SlideShare a Scribd company logo
1 of 33
Download to read offline
网易服务集成框架的构建与运维


        李弈远
     zjulyy@163.com

   网易(杭州)网络有限公司
   前台技术中心 基础平台技术
      2011年6月25日
陈述内容

           1
           3   网易服务集成框架

           2   网易运维监控平台

           3   服务集成框架运维

           4    Future Work



网易(杭州)网络有限公司                  网易服务集成框架的构建与运维
研究背景与意义
 功能的堆积、服务耦合的增加给
  系统运维带来了诸多问题

   Web Service
                            产品服务之间紧耦合
    Hessian
      RMI
                        核心产品功能堆积


                 核心产品服务被其他产品依赖


 产品日益丰富,服务接口迅速增长              抽取和独立服务
                             以提高可重用性和性能


网易(杭州)网络有限公司                     网易服务集成框架的构建与运维
研究背景与意义(cont’d)
功能堆积、服务紧耦带来的不利影响
 随着服务的不断增多,需要将某些核心服务独立出来进行部署(如本
地->远程) ,并对服务间依赖关系进行解耦
 大部分WEB调用服务的接口依然是同步接口,一旦服务发生问题容易
产生连锁反应,任意一个服务的失败或过载同时会影响宿于该产品的其
他服务
 由于不同的服务对网络、CPU、内存、磁盘的需求不同,会造成服务
的宿主(产品本身)很难从硬件上为某个服务做最合理的优化以达到性
能的最大化
 服务的更新粒度过大,更新一个服务容易影响同一产品下的其他服务
 服务的提供方式不一致且缺乏统一的管理配置,使开发人员在需要使
用一个服务时无从下手
 服务独立出来部署或者改变部署位置时,依赖此服务的各个产品需同
步修改配置或代码
 服务调用时需了解服务的具体细节,如服务对外暴露链接等

网易(杭州)网络有限公司            网易服务集成框架的构建与运维
解决思路
服务集成框架需要实现如下目标
 服务位置透明
   调用者无需关心服务是位于本地同一个VM下或是位于远程某一台服务器上
 服务过载保护
   当某个服务发生过载或失败时,确保异常不会扩散
 远程调用的行为一致性
   支持各类主流的远程调用方案的前提下,提供将各类服务转化为远程调用的
一致配置方法
 高可靠性&高性能
   在提高系统可靠性的同时,对服务性能带来的影响尽可能小
 同步&异步
   支持同步和异步调用方式,支持基于优先级的方法调用过滤
 无代码侵入性
   上述几点不应带来代码侵入性,开发人员无需学习新的API



网易(杭州)网络有限公司               网易服务集成框架的构建与运维
解决思路(cont’d)
采用ESB隔离异常的核心概念
 Fail-fast & Fail-safe


 服务层面的SEDA模型


 控制Client消耗在特定服务的抽象资源上限


 控制Server端能够提供的抽象资源上限

       抽象资源概念:
       抽象资源不具体指CPU、内存、IO等具体资源, 而是对应于
       服务的处理能力,这点与Load的概念有些类似

网易(杭州)网络有限公司                    网易服务集成框架的构建与运维
解决思路(cont’d)
传统的多线程模型
                工作原理:对于每一个
                 request,dispatcher会为其创
                 建并分配一个线程。该线程
                 负责这个请求的处理;
                优点:执行粒度是整个完整
                 的处理流程,处理逻辑清晰,
                 容易开发;
                缺点:随着处理请求不断增
                 加,导致并发执行的线程数
                 量太多。过多的线程数量导
                 致系统在线程调度和资源争
                 用上的开销过大。引起系统
                 性能急剧下降。导致系统处
                 理能力下降 ;

网易(杭州)网络有限公司              网易服务集成框架的构建与运维
解决思路(cont’d)
多线程模型负载




网易(杭州)网络有限公司   网易服务集成框架的构建与运维
解决思路(cont’d)
SEDA模型
                结构:接受输入的Event
                 Queue;应用开发者编写的
                 Event Handler;用于对执行
                 过程进行控制的Controller ;
                 用于并发处理的Thread Pool;
                工作原理:将每一个处理步
                 骤独立为一个Stage,Stage
                 的输入通过Event Queue获得;
                 Stage的输出以Event形式推
                 送到其他Stage的Event
                 Queue中;Stage之间的这种
                 连接关系由应用开发人员指
                 定;


网易(杭州)网络有限公司           网易服务集成框架的构建与运维
解决思路(cont’d)
ESB负载控制




网易(杭州)网络有限公司   网易服务集成框架的构建与运维
解决思路(cont’d)
ESB性能模型




网易(杭州)网络有限公司   网易服务集成框架的构建与运维
解决思路(cont’d)
原理示意
         Transparent

         Resource Control Strategy                                   Resource Control Strategy




                                                           Handler
                          Client Side                                               Server Side




                                         Proxy
            Event                                                       Event
Client                     Workers               Channel                             Workers       Server
            Queue                                                       Queue
                         (Thread Pool)                                             (Thread Pool)




 通过资源控制策略来防止客户端或服务器端过载
  直接拒绝服务策略
   设置合适的Event Queue长度限制与Worker线程数;
  带优先级的拒绝服务策略
   应用实现优先级回调接口,根据Event内容指定事件优先级,当发生
   异常时优先满足高优先级事件的处理;

网易(杭州)网络有限公司                                                                       网易服务集成框架的构建与运维
解决思路(cont’d)
基于ESB的服务集成框架




   如果请求被拒绝,服务请求方该如何处理?
   和应用逻辑相关,因此由开发者自行处理。

网易(杭州)网络有限公司             网易服务集成框架的构建与运维
解决思路(cont’d)
需要解决的问题
 完备描述服务配置的配置协议
   远程调用的方式各具特点,需要结合各类调用方式的共性与差异来
制定配置协议,并考虑不同产品、不同版本、不同开发阶段的服务暴露,
以完备地描述各类远程调用
 半异步方式调用带来的差异
   执行服务的线程与调用服务的线程不是同一个,会影响一些使用了
线程私有变量或是当前线程状态的服务
 服务注册表服务的可靠性
   所有的服务配置均位于服务注册表中,需充分考虑注册表服务的可
靠性问题,以及在注册表服务失败时的对策问题
 Proxy/Stub的自动生成问题
   由于需要根据配置来生成Proxy/Stub,因此将涉及到依据配置进行代
码生成的问题

网易(杭州)网络有限公司                网易服务集成框架的构建与运维
解决思路(cont’d)
服务集成框架实现了
 服务位置透明
    服务信息通过中心节点统一进行注册和访问
 服务过载保护
    基于SEDA模型,通过资源控制策略,避免过载,防止异常扩散
 服务调用的行为一致性
    为各类服务转化为主流远程调用 (包括http、hessian、rmi、jms、socket、
mina、web service、rest等协议) 以及本地调用提供了一致的配置方法
 高性能
    单个调用情况下,性能影响<1ms
 同步&异步
    支持同步和异步调用方式,支持基于优先级的方法调用过滤
 无代码侵入性
    添加配置文件即可对已有服务实施ESB
 服务切换快捷
    远程调用协议切换、本地/远程调用切换、不同产品/版本/开发阶段服务切换
网易(杭州)网络有限公司                         网易服务集成框架的构建与运维
示例
服务提供方示例


  <bean id=“blogServiceHessianConfiguration"
           class="com.netease.integration.engine.common.Configuration"
           parent="abstractServiceHessianConfiguration">
           <property name="configurations">
                     <props>
                              <prop key="serviceInterface">
                                        com.netease.space.service.BlogService
                              </prop>
                     </props>
           </property>
  </bean>




网易(杭州)网络有限公司                                                网易服务集成框架的构建与运维
示例(cont’d)
服务请求方示例




   <bean id=“blogService"
            class="com.netease.integration.engine.hessian.IntegrationHessian
   ProxyFactoryBean"
            parent="abstractIntegrationProxyFactoryBean" />




网易(杭州)网络有限公司                                                 网易服务集成框架的构建与运维
陈述内容

           1
           3   网易服务集成框架

           2   网易运维监控平台

           3   服务集成框架运维

           4    Future Work



网易(杭州)网络有限公司                  网易服务集成框架的构建与运维
监控平台
设计目标

 解决应用级监控问题


 支持多种语言环境


 提供全面的报警功能


 覆盖传统监控软件功能




网易(杭州)网络有限公司   网易服务集成框架的构建与运维
监控平台(cont’d)
什么是应用级监控
 业务逻辑相关

   举例:
   博客中可能需要监控,日志发表情况、相片上传情况等
   邮箱需要监控日志发送、附件上传等


 监控信息的判断标准随业务逻辑的变化而变化

   举例:
   A服务每小时只在指定时间执行1次,只需关注这次执行的情况
   B服务执行非常频繁,由于依赖第三方接口,允许少量的失败



网易(杭州)网络有限公司                  网易服务集成框架的构建与运维
监控平台(cont’d)
应用级监控的困难

 该收集什么样的信息用于监控?


 根据信息如何判断应用的状态?


 各产品、服务愿意为监控引入多少复杂度?




网易(杭州)网络有限公司        网易服务集成框架的构建与运维
监控平台(cont’d)
应用级监控的解决方案

 基于WEB应用架构的假设


 业务逻辑相关的监控数据始终以集群为单位处理


 不应存在集群中的一个或几个特定节点具有特殊的业务逻
辑的情况。


    推论:应用级监控无需关心集群中单个节点的监控数据




网易(杭州)网络有限公司               网易服务集成框架的构建与运维
监控平台(cont’d)
应用级运行时数据采集

 应用按照一定的规范暴露运行时数据


 数据形式为 {timestamp, number}
  实践证明时间戳+数值的表现形式已能很丰富的展现运
行时状态
   实际表达的信息为:{namespace, key, {timestamp, number}}


 采集到的数据根据监控平台中服务集群的定义对数据进行
加权,变化率计算等标准处理


网易(杭州)网络有限公司                           网易服务集成框架的构建与运维
监控平台(cont’d)
数据的处理
 将运行时数据最终的分析逻辑交还给服务开发
 开发者采用脚本语言(可以是基于JVM的任意脚本)处理
平台为其经过预处理的数据
 定义了API、DSL、类SQL的query接口以屏蔽监控数据的
数据结构,便于开发者处理


 WHY?
 因为各类应用的逻辑千变万化,只有开发者真正理解运行时数据的意义。
 提供监控的基础设施(数据采集,报表呈现,报警),让开发者仅关注运行
 时应用状态的分析即是监控平台的设计理念。



网易(杭州)网络有限公司              网易服务集成框架的构建与运维
监控平台(cont’d)
多语言支持
 支持JMX接口以支持基于java的应用
 Dynamic Mbeans


 订阅模式
 采用AMQP协议
 各服务以json格式播报运行时数据




网易(杭州)网络有限公司            网易服务集成框架的构建与运维
监控平台(cont’d)
系统整体架构
                                                              Web UI



                                              监控数据处理服务

                      可用性打分、计算、绘图

                   加载用户监控脚本、运行、报警

                      监控数据收集汇总、计算
                                                                                       Storage Group




               数据采集服务                                                                                       规
                                                                                                            则
               JMX Query                                 报警服务                                               脚
               Monitor Data                                              Blog                  Cricle       本
                                                                                                            服
                Subscribe                                                                                   务



                           App-1                                        App-n(Python App)
                                                         Tomcat---JVM
                             MBeanServer




                Monitor
                                           Product.war




                                                                                Monitor Data
                                                                                 Producer


                                                                                                  Service
               Java.lang

                Catalina




网易(杭州)网络有限公司                                                                                                    网易服务集成框架的构建与运维
陈述内容

           1
           3   网易服务集成框架

           2   网易运维监控平台

           3   服务集成框架运维

           4    Future Work



网易(杭州)网络有限公司                  网易服务集成框架的构建与运维
服务集成框架运维
基本思路
 以服务为基本运维单位


 从服务信息注册节点获取服务配置信息及服务调用关系


 服务提供方/请求方运维数据通过JMX暴露


 监控每个服务所有提供方的运维数据


 监控每个服务所有请求方的运维数据



网易(杭州)网络有限公司             网易服务集成框架的构建与运维
服务集成框架运维(cont’d)
运维数据
 服务请求方         服务提供方
 请求总数          请求处理时间
 请求队列长度        请求处理数目
 超时请求数目        请求处理失败数目
 请求失败数目
 平均响应时间

 整个服务
 平均响应时间        超时率
 平均处理时间        处理失败率
 平均入队列时间       准入率
网易(杭州)网络有限公司       网易服务集成框架的构建与运维
服务集成框架运维(cont’d)
根据运维数据调整服务配置参数

 处理时间长&高超时率
 服务提供方负载高,增加服务器数量
 处理时间短&低超时率
 能为更多的服务请求方提供服务
 处理时间短&高超时率&低准入率
 网络问题
 请求派发太慢,调节Queue长度或Worker线程数等
 高处理失败率
 服务器端异常


网易(杭州)网络有限公司             网易服务集成框架的构建与运维
陈述内容

           1
           3   网易服务集成框架

           2   网易运维监控平台

           3   服务集成框架运维

           4    Future Work



网易(杭州)网络有限公司                  网易服务集成框架的构建与运维
Future Work
工作展望

 服务器的虚拟化及运维管理
 进一步简化服务集成框架的相关配置
 根据监控数据自动调整服务配置参数
 服务配置参数调整后自动热部署
 ……




网易(杭州)网络有限公司         网易服务集成框架的构建与运维
谢谢!
 李弈远
 网易杭州研究院 前台技术部 基础平台技术
 zjulyy@163.com




网易(杭州)网络有限公司    网易服务集成框架的构建与运维

More Related Content

What's hot

盛大游戏运维体系
盛大游戏运维体系盛大游戏运维体系
盛大游戏运维体系Ken Liu
 
淘宝Java中间件之路 it168
淘宝Java中间件之路 it168淘宝Java中间件之路 it168
淘宝Java中间件之路 it168vanadies10
 
阿里巴巴运维团队的无状态运维思路
阿里巴巴运维团队的无状态运维思路阿里巴巴运维团队的无状态运维思路
阿里巴巴运维团队的无状态运维思路mysqlops
 
中国移动Boss3.0技术方案
中国移动Boss3.0技术方案中国移动Boss3.0技术方案
中国移动Boss3.0技术方案yiditushe
 
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验guiyingshenxia
 
淘宝双11双12案例分享
淘宝双11双12案例分享淘宝双11双12案例分享
淘宝双11双12案例分享vanadies10
 
Solution apc 4.0
Solution apc 4.0Solution apc 4.0
Solution apc 4.0ahnlabchina
 
Top100summit 互联网发布与实验体系建设
Top100summit 互联网发布与实验体系建设 Top100summit 互联网发布与实验体系建设
Top100summit 互联网发布与实验体系建设 drewz lin
 

What's hot (10)

盛大游戏运维体系
盛大游戏运维体系盛大游戏运维体系
盛大游戏运维体系
 
淘宝Java中间件之路 it168
淘宝Java中间件之路 it168淘宝Java中间件之路 it168
淘宝Java中间件之路 it168
 
阿里巴巴运维团队的无状态运维思路
阿里巴巴运维团队的无状态运维思路阿里巴巴运维团队的无状态运维思路
阿里巴巴运维团队的无状态运维思路
 
中国移动Boss3.0技术方案
中国移动Boss3.0技术方案中国移动Boss3.0技术方案
中国移动Boss3.0技术方案
 
Hp云管理平台3.0
Hp云管理平台3.0Hp云管理平台3.0
Hp云管理平台3.0
 
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
 
淘宝双11双12案例分享
淘宝双11双12案例分享淘宝双11双12案例分享
淘宝双11双12案例分享
 
Solution apc 4.0
Solution apc 4.0Solution apc 4.0
Solution apc 4.0
 
Mocha Bsm
Mocha BsmMocha Bsm
Mocha Bsm
 
Top100summit 互联网发布与实验体系建设
Top100summit 互联网发布与实验体系建设 Top100summit 互联网发布与实验体系建设
Top100summit 互联网发布与实验体系建设
 

Viewers also liked

阿里云 张旭 集群运维管理平台
阿里云 张旭 集群运维管理平台阿里云 张旭 集群运维管理平台
阿里云 张旭 集群运维管理平台guiyingshenxia
 
搜狐 窦喆 Sohu-sagent
搜狐 窦喆 Sohu-sagent搜狐 窦喆 Sohu-sagent
搜狐 窦喆 Sohu-sagentguiyingshenxia
 
Bypat博客出品-服务器运维集群方法总结2
Bypat博客出品-服务器运维集群方法总结2Bypat博客出品-服务器运维集群方法总结2
Bypat博客出品-服务器运维集群方法总结2redhat9
 
腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松Michael Zhang
 
互联网海量运维 20130807
互联网海量运维 20130807互联网海量运维 20130807
互联网海量运维 20130807drewz lin
 
Python在豆瓣的应用
Python在豆瓣的应用Python在豆瓣的应用
Python在豆瓣的应用Qiangning Hong
 
服务框架: Thrift & PasteScript
服务框架: Thrift & PasteScript服务框架: Thrift & PasteScript
服务框架: Thrift & PasteScriptQiangning Hong
 
豆瓣技术架构的发展历程 @ QCon Beijing 2009
豆瓣技术架构的发展历程 @ QCon Beijing 2009豆瓣技术架构的发展历程 @ QCon Beijing 2009
豆瓣技术架构的发展历程 @ QCon Beijing 2009Qiangning Hong
 

Viewers also liked (8)

阿里云 张旭 集群运维管理平台
阿里云 张旭 集群运维管理平台阿里云 张旭 集群运维管理平台
阿里云 张旭 集群运维管理平台
 
搜狐 窦喆 Sohu-sagent
搜狐 窦喆 Sohu-sagent搜狐 窦喆 Sohu-sagent
搜狐 窦喆 Sohu-sagent
 
Bypat博客出品-服务器运维集群方法总结2
Bypat博客出品-服务器运维集群方法总结2Bypat博客出品-服务器运维集群方法总结2
Bypat博客出品-服务器运维集群方法总结2
 
腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松
 
互联网海量运维 20130807
互联网海量运维 20130807互联网海量运维 20130807
互联网海量运维 20130807
 
Python在豆瓣的应用
Python在豆瓣的应用Python在豆瓣的应用
Python在豆瓣的应用
 
服务框架: Thrift & PasteScript
服务框架: Thrift & PasteScript服务框架: Thrift & PasteScript
服务框架: Thrift & PasteScript
 
豆瓣技术架构的发展历程 @ QCon Beijing 2009
豆瓣技术架构的发展历程 @ QCon Beijing 2009豆瓣技术架构的发展历程 @ QCon Beijing 2009
豆瓣技术架构的发展历程 @ QCon Beijing 2009
 

Similar to 网易 李弈远 网易服务集成框架的构建与运维

Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境drewz lin
 
深入研究雲端應用程式平台-AppFabric
深入研究雲端應用程式平台-AppFabric深入研究雲端應用程式平台-AppFabric
深入研究雲端應用程式平台-AppFabricJohn Chang
 
IDC大会:新浪SAE架构与设计
IDC大会:新浪SAE架构与设计IDC大会:新浪SAE架构与设计
IDC大会:新浪SAE架构与设计Xi Zeng
 
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验colderboy17
 
E tom ngoss规范及siebel系统在电信行业的应用 陈永林
E tom ngoss规范及siebel系统在电信行业的应用 陈永林E tom ngoss规范及siebel系统在电信行业的应用 陈永林
E tom ngoss规范及siebel系统在电信行业的应用 陈永林corlin chen
 
从运维系统的开发谈安全架构设计
从运维系统的开发谈安全架构设计从运维系统的开发谈安全架构设计
从运维系统的开发谈安全架构设计mysqlops
 
Pm 04 华胜天成openstack实践汇报-20120808
Pm 04 华胜天成openstack实践汇报-20120808Pm 04 华胜天成openstack实践汇报-20120808
Pm 04 华胜天成openstack实践汇报-20120808OpenCity Community
 
中大型规模的网站架构运维 Saac
中大型规模的网站架构运维 Saac中大型规模的网站架构运维 Saac
中大型规模的网站架构运维 SaacChao Zhu
 
Grid Technology and Enterprise Grid / 网格技术及其在企业信息化中的应用
Grid Technology and Enterprise Grid / 网格技术及其在企业信息化中的应用Grid Technology and Enterprise Grid / 网格技术及其在企业信息化中的应用
Grid Technology and Enterprise Grid / 网格技术及其在企业信息化中的应用Zac John
 
集群运维管理平台
集群运维管理平台集群运维管理平台
集群运维管理平台mysqlops
 
20121202 中国电信云计算by谢博士 v4.2
20121202 中国电信云计算by谢博士   v4.220121202 中国电信云计算by谢博士   v4.2
20121202 中国电信云计算by谢博士 v4.2wendy bai
 
+++º+ ¦¦ ¦ ¦¦ ¦+ =
+++º+ ¦¦  ¦ ¦¦ ¦+ =+++º+ ¦¦  ¦ ¦¦ ¦+ =
+++º+ ¦¦ ¦ ¦¦ ¦+ =guesta6295f3
 
Eucalyptus安装及实例映像制作
Eucalyptus安装及实例映像制作Eucalyptus安装及实例映像制作
Eucalyptus安装及实例映像制作liangxiao0315
 
Cibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconCibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconYiwei Ma
 
Cibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconCibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconYiwei Ma
 
杜嵩 Arch summit2012 dusong@freewheel
杜嵩 Arch summit2012 dusong@freewheel杜嵩 Arch summit2012 dusong@freewheel
杜嵩 Arch summit2012 dusong@freewheeldrewz lin
 
云计算在电信业务中的应用分析 罗圣美
云计算在电信业务中的应用分析 罗圣美云计算在电信业务中的应用分析 罗圣美
云计算在电信业务中的应用分析 罗圣美Riquelme624
 
新浪云计算公开课第一期:Let’s run @ sae(丛磊)
新浪云计算公开课第一期:Let’s run @ sae(丛磊)新浪云计算公开课第一期:Let’s run @ sae(丛磊)
新浪云计算公开课第一期:Let’s run @ sae(丛磊)锐 张
 

Similar to 网易 李弈远 网易服务集成框架的构建与运维 (20)

Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
 
深入研究雲端應用程式平台-AppFabric
深入研究雲端應用程式平台-AppFabric深入研究雲端應用程式平台-AppFabric
深入研究雲端應用程式平台-AppFabric
 
IDC大会:新浪SAE架构与设计
IDC大会:新浪SAE架构与设计IDC大会:新浪SAE架构与设计
IDC大会:新浪SAE架构与设计
 
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
 
E tom ngoss规范及siebel系统在电信行业的应用 陈永林
E tom ngoss规范及siebel系统在电信行业的应用 陈永林E tom ngoss规范及siebel系统在电信行业的应用 陈永林
E tom ngoss规范及siebel系统在电信行业的应用 陈永林
 
从运维系统的开发谈安全架构设计
从运维系统的开发谈安全架构设计从运维系统的开发谈安全架构设计
从运维系统的开发谈安全架构设计
 
Pm 04 华胜天成openstack实践汇报-20120808
Pm 04 华胜天成openstack实践汇报-20120808Pm 04 华胜天成openstack实践汇报-20120808
Pm 04 华胜天成openstack实践汇报-20120808
 
中大型规模的网站架构运维 Saac
中大型规模的网站架构运维 Saac中大型规模的网站架构运维 Saac
中大型规模的网站架构运维 Saac
 
Grid Technology and Enterprise Grid / 网格技术及其在企业信息化中的应用
Grid Technology and Enterprise Grid / 网格技术及其在企业信息化中的应用Grid Technology and Enterprise Grid / 网格技术及其在企业信息化中的应用
Grid Technology and Enterprise Grid / 网格技术及其在企业信息化中的应用
 
集群运维管理平台
集群运维管理平台集群运维管理平台
集群运维管理平台
 
20121202 中国电信云计算by谢博士 v4.2
20121202 中国电信云计算by谢博士   v4.220121202 中国电信云计算by谢博士   v4.2
20121202 中国电信云计算by谢博士 v4.2
 
+++º+ ¦¦ ¦ ¦¦ ¦+ =
+++º+ ¦¦  ¦ ¦¦ ¦+ =+++º+ ¦¦  ¦ ¦¦ ¦+ =
+++º+ ¦¦ ¦ ¦¦ ¦+ =
 
Eucalyptus安装及实例映像制作
Eucalyptus安装及实例映像制作Eucalyptus安装及实例映像制作
Eucalyptus安装及实例映像制作
 
Cibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconCibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qcon
 
Cibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qconCibank arch-zhouweiran-qcon
Cibank arch-zhouweiran-qcon
 
关于Swsoft公司
关于Swsoft公司关于Swsoft公司
关于Swsoft公司
 
杜嵩 Arch summit2012 dusong@freewheel
杜嵩 Arch summit2012 dusong@freewheel杜嵩 Arch summit2012 dusong@freewheel
杜嵩 Arch summit2012 dusong@freewheel
 
敦群學院-SharePoint精英計畫-系統開發-Day 3
敦群學院-SharePoint精英計畫-系統開發-Day 3敦群學院-SharePoint精英計畫-系統開發-Day 3
敦群學院-SharePoint精英計畫-系統開發-Day 3
 
云计算在电信业务中的应用分析 罗圣美
云计算在电信业务中的应用分析 罗圣美云计算在电信业务中的应用分析 罗圣美
云计算在电信业务中的应用分析 罗圣美
 
新浪云计算公开课第一期:Let’s run @ sae(丛磊)
新浪云计算公开课第一期:Let’s run @ sae(丛磊)新浪云计算公开课第一期:Let’s run @ sae(丛磊)
新浪云计算公开课第一期:Let’s run @ sae(丛磊)
 

More from colderboy17

linux安装以及LAMP 环境安装详细
linux安装以及LAMP 环境安装详细linux安装以及LAMP 环境安装详细
linux安装以及LAMP 环境安装详细colderboy17
 
Sery lvs+keepalived
Sery lvs+keepalivedSery lvs+keepalived
Sery lvs+keepalivedcolderboy17
 
Lvs手册中文加目录版
Lvs手册中文加目录版Lvs手册中文加目录版
Lvs手册中文加目录版colderboy17
 
My sql procedure
My sql procedureMy sql procedure
My sql procedurecolderboy17
 
Mysqlexplain 执行计划解读
Mysqlexplain 执行计划解读Mysqlexplain 执行计划解读
Mysqlexplain 执行计划解读colderboy17
 
新浪 李晓栋 非商业网络设备的新浪应用之路
新浪 李晓栋 非商业网络设备的新浪应用之路新浪 李晓栋 非商业网络设备的新浪应用之路
新浪 李晓栋 非商业网络设备的新浪应用之路colderboy17
 
网易 王磊 网易海量数据存储平台的构建和运维
网易 王磊 网易海量数据存储平台的构建和运维网易 王磊 网易海量数据存储平台的构建和运维
网易 王磊 网易海量数据存储平台的构建和运维colderboy17
 
淘宝 任卿 打造高效能的Cdn系统
淘宝 任卿 打造高效能的Cdn系统淘宝 任卿 打造高效能的Cdn系统
淘宝 任卿 打造高效能的Cdn系统colderboy17
 
搜狐畅游 叶金荣 游戏数据库运维经验分享
搜狐畅游 叶金荣 游戏数据库运维经验分享搜狐畅游 叶金荣 游戏数据库运维经验分享
搜狐畅游 叶金荣 游戏数据库运维经验分享colderboy17
 
搜狐 窦喆 Sohu-sagent
搜狐 窦喆 Sohu-sagent搜狐 窦喆 Sohu-sagent
搜狐 窦喆 Sohu-sagentcolderboy17
 
神州数码 Jason pan future_clouddatacenterv2
神州数码 Jason pan future_clouddatacenterv2神州数码 Jason pan future_clouddatacenterv2
神州数码 Jason pan future_clouddatacenterv2colderboy17
 
华为 余洲 定制化服务器
华为 余洲 定制化服务器华为 余洲 定制化服务器
华为 余洲 定制化服务器colderboy17
 
互联网运维大会 刘洋-2011-jul 1
互联网运维大会 刘洋-2011-jul 1互联网运维大会 刘洋-2011-jul 1
互联网运维大会 刘洋-2011-jul 1colderboy17
 
新浪 杨海朝 Redis运维之道
新浪 杨海朝 Redis运维之道新浪 杨海朝 Redis运维之道
新浪 杨海朝 Redis运维之道colderboy17
 
阿里巴巴 肖劲青 阿里巴巴运维自动化的探索与规划
阿里巴巴 肖劲青 阿里巴巴运维自动化的探索与规划阿里巴巴 肖劲青 阿里巴巴运维自动化的探索与规划
阿里巴巴 肖劲青 阿里巴巴运维自动化的探索与规划colderboy17
 
阿里巴巴 林钰 网站存储经验谈
阿里巴巴 林钰 网站存储经验谈阿里巴巴 林钰 网站存储经验谈
阿里巴巴 林钰 网站存储经验谈colderboy17
 
Okbuy 李小红 好乐买自动化运维实践
Okbuy 李小红 好乐买自动化运维实践Okbuy 李小红 好乐买自动化运维实践
Okbuy 李小红 好乐买自动化运维实践colderboy17
 
阿里巴巴 叶正盛 数据库性能量化
阿里巴巴 叶正盛 数据库性能量化阿里巴巴 叶正盛 数据库性能量化
阿里巴巴 叶正盛 数据库性能量化colderboy17
 

More from colderboy17 (20)

MySQL SQL规范
MySQL SQL规范MySQL SQL规范
MySQL SQL规范
 
Redis
RedisRedis
Redis
 
linux安装以及LAMP 环境安装详细
linux安装以及LAMP 环境安装详细linux安装以及LAMP 环境安装详细
linux安装以及LAMP 环境安装详细
 
Sery lvs+keepalived
Sery lvs+keepalivedSery lvs+keepalived
Sery lvs+keepalived
 
Lvs手册中文加目录版
Lvs手册中文加目录版Lvs手册中文加目录版
Lvs手册中文加目录版
 
My sql procedure
My sql procedureMy sql procedure
My sql procedure
 
Mysqlexplain 执行计划解读
Mysqlexplain 执行计划解读Mysqlexplain 执行计划解读
Mysqlexplain 执行计划解读
 
新浪 李晓栋 非商业网络设备的新浪应用之路
新浪 李晓栋 非商业网络设备的新浪应用之路新浪 李晓栋 非商业网络设备的新浪应用之路
新浪 李晓栋 非商业网络设备的新浪应用之路
 
网易 王磊 网易海量数据存储平台的构建和运维
网易 王磊 网易海量数据存储平台的构建和运维网易 王磊 网易海量数据存储平台的构建和运维
网易 王磊 网易海量数据存储平台的构建和运维
 
淘宝 任卿 打造高效能的Cdn系统
淘宝 任卿 打造高效能的Cdn系统淘宝 任卿 打造高效能的Cdn系统
淘宝 任卿 打造高效能的Cdn系统
 
搜狐畅游 叶金荣 游戏数据库运维经验分享
搜狐畅游 叶金荣 游戏数据库运维经验分享搜狐畅游 叶金荣 游戏数据库运维经验分享
搜狐畅游 叶金荣 游戏数据库运维经验分享
 
搜狐 窦喆 Sohu-sagent
搜狐 窦喆 Sohu-sagent搜狐 窦喆 Sohu-sagent
搜狐 窦喆 Sohu-sagent
 
神州数码 Jason pan future_clouddatacenterv2
神州数码 Jason pan future_clouddatacenterv2神州数码 Jason pan future_clouddatacenterv2
神州数码 Jason pan future_clouddatacenterv2
 
华为 余洲 定制化服务器
华为 余洲 定制化服务器华为 余洲 定制化服务器
华为 余洲 定制化服务器
 
互联网运维大会 刘洋-2011-jul 1
互联网运维大会 刘洋-2011-jul 1互联网运维大会 刘洋-2011-jul 1
互联网运维大会 刘洋-2011-jul 1
 
新浪 杨海朝 Redis运维之道
新浪 杨海朝 Redis运维之道新浪 杨海朝 Redis运维之道
新浪 杨海朝 Redis运维之道
 
阿里巴巴 肖劲青 阿里巴巴运维自动化的探索与规划
阿里巴巴 肖劲青 阿里巴巴运维自动化的探索与规划阿里巴巴 肖劲青 阿里巴巴运维自动化的探索与规划
阿里巴巴 肖劲青 阿里巴巴运维自动化的探索与规划
 
阿里巴巴 林钰 网站存储经验谈
阿里巴巴 林钰 网站存储经验谈阿里巴巴 林钰 网站存储经验谈
阿里巴巴 林钰 网站存储经验谈
 
Okbuy 李小红 好乐买自动化运维实践
Okbuy 李小红 好乐买自动化运维实践Okbuy 李小红 好乐买自动化运维实践
Okbuy 李小红 好乐买自动化运维实践
 
阿里巴巴 叶正盛 数据库性能量化
阿里巴巴 叶正盛 数据库性能量化阿里巴巴 叶正盛 数据库性能量化
阿里巴巴 叶正盛 数据库性能量化
 

网易 李弈远 网易服务集成框架的构建与运维

  • 1. 网易服务集成框架的构建与运维 李弈远 zjulyy@163.com 网易(杭州)网络有限公司 前台技术中心 基础平台技术 2011年6月25日
  • 2. 陈述内容 1 3 网易服务集成框架 2 网易运维监控平台 3 服务集成框架运维 4 Future Work 网易(杭州)网络有限公司 网易服务集成框架的构建与运维
  • 3. 研究背景与意义 功能的堆积、服务耦合的增加给 系统运维带来了诸多问题 Web Service 产品服务之间紧耦合 Hessian RMI 核心产品功能堆积 核心产品服务被其他产品依赖 产品日益丰富,服务接口迅速增长 抽取和独立服务 以提高可重用性和性能 网易(杭州)网络有限公司 网易服务集成框架的构建与运维
  • 4. 研究背景与意义(cont’d) 功能堆积、服务紧耦带来的不利影响  随着服务的不断增多,需要将某些核心服务独立出来进行部署(如本 地->远程) ,并对服务间依赖关系进行解耦  大部分WEB调用服务的接口依然是同步接口,一旦服务发生问题容易 产生连锁反应,任意一个服务的失败或过载同时会影响宿于该产品的其 他服务  由于不同的服务对网络、CPU、内存、磁盘的需求不同,会造成服务 的宿主(产品本身)很难从硬件上为某个服务做最合理的优化以达到性 能的最大化  服务的更新粒度过大,更新一个服务容易影响同一产品下的其他服务  服务的提供方式不一致且缺乏统一的管理配置,使开发人员在需要使 用一个服务时无从下手  服务独立出来部署或者改变部署位置时,依赖此服务的各个产品需同 步修改配置或代码  服务调用时需了解服务的具体细节,如服务对外暴露链接等 网易(杭州)网络有限公司 网易服务集成框架的构建与运维
  • 5. 解决思路 服务集成框架需要实现如下目标  服务位置透明 调用者无需关心服务是位于本地同一个VM下或是位于远程某一台服务器上  服务过载保护 当某个服务发生过载或失败时,确保异常不会扩散  远程调用的行为一致性 支持各类主流的远程调用方案的前提下,提供将各类服务转化为远程调用的 一致配置方法  高可靠性&高性能 在提高系统可靠性的同时,对服务性能带来的影响尽可能小  同步&异步 支持同步和异步调用方式,支持基于优先级的方法调用过滤  无代码侵入性 上述几点不应带来代码侵入性,开发人员无需学习新的API 网易(杭州)网络有限公司 网易服务集成框架的构建与运维
  • 6. 解决思路(cont’d) 采用ESB隔离异常的核心概念  Fail-fast & Fail-safe  服务层面的SEDA模型  控制Client消耗在特定服务的抽象资源上限  控制Server端能够提供的抽象资源上限 抽象资源概念: 抽象资源不具体指CPU、内存、IO等具体资源, 而是对应于 服务的处理能力,这点与Load的概念有些类似 网易(杭州)网络有限公司 网易服务集成框架的构建与运维
  • 7. 解决思路(cont’d) 传统的多线程模型  工作原理:对于每一个 request,dispatcher会为其创 建并分配一个线程。该线程 负责这个请求的处理;  优点:执行粒度是整个完整 的处理流程,处理逻辑清晰, 容易开发;  缺点:随着处理请求不断增 加,导致并发执行的线程数 量太多。过多的线程数量导 致系统在线程调度和资源争 用上的开销过大。引起系统 性能急剧下降。导致系统处 理能力下降 ; 网易(杭州)网络有限公司 网易服务集成框架的构建与运维
  • 9. 解决思路(cont’d) SEDA模型  结构:接受输入的Event Queue;应用开发者编写的 Event Handler;用于对执行 过程进行控制的Controller ; 用于并发处理的Thread Pool;  工作原理:将每一个处理步 骤独立为一个Stage,Stage 的输入通过Event Queue获得; Stage的输出以Event形式推 送到其他Stage的Event Queue中;Stage之间的这种 连接关系由应用开发人员指 定; 网易(杭州)网络有限公司 网易服务集成框架的构建与运维
  • 12. 解决思路(cont’d) 原理示意 Transparent Resource Control Strategy Resource Control Strategy Handler Client Side Server Side Proxy Event Event Client Workers Channel Workers Server Queue Queue (Thread Pool) (Thread Pool) 通过资源控制策略来防止客户端或服务器端过载  直接拒绝服务策略 设置合适的Event Queue长度限制与Worker线程数;  带优先级的拒绝服务策略 应用实现优先级回调接口,根据Event内容指定事件优先级,当发生 异常时优先满足高优先级事件的处理; 网易(杭州)网络有限公司 网易服务集成框架的构建与运维
  • 13. 解决思路(cont’d) 基于ESB的服务集成框架 如果请求被拒绝,服务请求方该如何处理? 和应用逻辑相关,因此由开发者自行处理。 网易(杭州)网络有限公司 网易服务集成框架的构建与运维
  • 14. 解决思路(cont’d) 需要解决的问题  完备描述服务配置的配置协议 远程调用的方式各具特点,需要结合各类调用方式的共性与差异来 制定配置协议,并考虑不同产品、不同版本、不同开发阶段的服务暴露, 以完备地描述各类远程调用  半异步方式调用带来的差异 执行服务的线程与调用服务的线程不是同一个,会影响一些使用了 线程私有变量或是当前线程状态的服务  服务注册表服务的可靠性 所有的服务配置均位于服务注册表中,需充分考虑注册表服务的可 靠性问题,以及在注册表服务失败时的对策问题  Proxy/Stub的自动生成问题 由于需要根据配置来生成Proxy/Stub,因此将涉及到依据配置进行代 码生成的问题 网易(杭州)网络有限公司 网易服务集成框架的构建与运维
  • 15. 解决思路(cont’d) 服务集成框架实现了  服务位置透明 服务信息通过中心节点统一进行注册和访问  服务过载保护 基于SEDA模型,通过资源控制策略,避免过载,防止异常扩散  服务调用的行为一致性 为各类服务转化为主流远程调用 (包括http、hessian、rmi、jms、socket、 mina、web service、rest等协议) 以及本地调用提供了一致的配置方法  高性能 单个调用情况下,性能影响<1ms  同步&异步 支持同步和异步调用方式,支持基于优先级的方法调用过滤  无代码侵入性 添加配置文件即可对已有服务实施ESB  服务切换快捷 远程调用协议切换、本地/远程调用切换、不同产品/版本/开发阶段服务切换 网易(杭州)网络有限公司 网易服务集成框架的构建与运维
  • 16. 示例 服务提供方示例 <bean id=“blogServiceHessianConfiguration" class="com.netease.integration.engine.common.Configuration" parent="abstractServiceHessianConfiguration"> <property name="configurations"> <props> <prop key="serviceInterface"> com.netease.space.service.BlogService </prop> </props> </property> </bean> 网易(杭州)网络有限公司 网易服务集成框架的构建与运维
  • 17. 示例(cont’d) 服务请求方示例 <bean id=“blogService" class="com.netease.integration.engine.hessian.IntegrationHessian ProxyFactoryBean" parent="abstractIntegrationProxyFactoryBean" /> 网易(杭州)网络有限公司 网易服务集成框架的构建与运维
  • 18. 陈述内容 1 3 网易服务集成框架 2 网易运维监控平台 3 服务集成框架运维 4 Future Work 网易(杭州)网络有限公司 网易服务集成框架的构建与运维
  • 19. 监控平台 设计目标  解决应用级监控问题  支持多种语言环境  提供全面的报警功能  覆盖传统监控软件功能 网易(杭州)网络有限公司 网易服务集成框架的构建与运维
  • 20. 监控平台(cont’d) 什么是应用级监控  业务逻辑相关 举例: 博客中可能需要监控,日志发表情况、相片上传情况等 邮箱需要监控日志发送、附件上传等  监控信息的判断标准随业务逻辑的变化而变化 举例: A服务每小时只在指定时间执行1次,只需关注这次执行的情况 B服务执行非常频繁,由于依赖第三方接口,允许少量的失败 网易(杭州)网络有限公司 网易服务集成框架的构建与运维
  • 21. 监控平台(cont’d) 应用级监控的困难  该收集什么样的信息用于监控?  根据信息如何判断应用的状态?  各产品、服务愿意为监控引入多少复杂度? 网易(杭州)网络有限公司 网易服务集成框架的构建与运维
  • 22. 监控平台(cont’d) 应用级监控的解决方案  基于WEB应用架构的假设  业务逻辑相关的监控数据始终以集群为单位处理  不应存在集群中的一个或几个特定节点具有特殊的业务逻 辑的情况。 推论:应用级监控无需关心集群中单个节点的监控数据 网易(杭州)网络有限公司 网易服务集成框架的构建与运维
  • 23. 监控平台(cont’d) 应用级运行时数据采集  应用按照一定的规范暴露运行时数据  数据形式为 {timestamp, number} 实践证明时间戳+数值的表现形式已能很丰富的展现运 行时状态 实际表达的信息为:{namespace, key, {timestamp, number}}  采集到的数据根据监控平台中服务集群的定义对数据进行 加权,变化率计算等标准处理 网易(杭州)网络有限公司 网易服务集成框架的构建与运维
  • 24. 监控平台(cont’d) 数据的处理  将运行时数据最终的分析逻辑交还给服务开发  开发者采用脚本语言(可以是基于JVM的任意脚本)处理 平台为其经过预处理的数据  定义了API、DSL、类SQL的query接口以屏蔽监控数据的 数据结构,便于开发者处理 WHY? 因为各类应用的逻辑千变万化,只有开发者真正理解运行时数据的意义。 提供监控的基础设施(数据采集,报表呈现,报警),让开发者仅关注运行 时应用状态的分析即是监控平台的设计理念。 网易(杭州)网络有限公司 网易服务集成框架的构建与运维
  • 25. 监控平台(cont’d) 多语言支持  支持JMX接口以支持基于java的应用  Dynamic Mbeans  订阅模式  采用AMQP协议  各服务以json格式播报运行时数据 网易(杭州)网络有限公司 网易服务集成框架的构建与运维
  • 26. 监控平台(cont’d) 系统整体架构 Web UI 监控数据处理服务 可用性打分、计算、绘图 加载用户监控脚本、运行、报警 监控数据收集汇总、计算 Storage Group 数据采集服务 规 则 JMX Query 报警服务 脚 Monitor Data Blog Cricle 本 服 Subscribe 务 App-1 App-n(Python App) Tomcat---JVM MBeanServer Monitor Product.war Monitor Data Producer Service Java.lang Catalina 网易(杭州)网络有限公司 网易服务集成框架的构建与运维
  • 27. 陈述内容 1 3 网易服务集成框架 2 网易运维监控平台 3 服务集成框架运维 4 Future Work 网易(杭州)网络有限公司 网易服务集成框架的构建与运维
  • 28. 服务集成框架运维 基本思路  以服务为基本运维单位  从服务信息注册节点获取服务配置信息及服务调用关系  服务提供方/请求方运维数据通过JMX暴露  监控每个服务所有提供方的运维数据  监控每个服务所有请求方的运维数据 网易(杭州)网络有限公司 网易服务集成框架的构建与运维
  • 29. 服务集成框架运维(cont’d) 运维数据  服务请求方  服务提供方  请求总数  请求处理时间  请求队列长度  请求处理数目  超时请求数目  请求处理失败数目  请求失败数目  平均响应时间  整个服务  平均响应时间  超时率  平均处理时间  处理失败率  平均入队列时间  准入率 网易(杭州)网络有限公司 网易服务集成框架的构建与运维
  • 30. 服务集成框架运维(cont’d) 根据运维数据调整服务配置参数  处理时间长&高超时率  服务提供方负载高,增加服务器数量  处理时间短&低超时率  能为更多的服务请求方提供服务  处理时间短&高超时率&低准入率  网络问题  请求派发太慢,调节Queue长度或Worker线程数等  高处理失败率  服务器端异常 网易(杭州)网络有限公司 网易服务集成框架的构建与运维
  • 31. 陈述内容 1 3 网易服务集成框架 2 网易运维监控平台 3 服务集成框架运维 4 Future Work 网易(杭州)网络有限公司 网易服务集成框架的构建与运维
  • 32. Future Work 工作展望  服务器的虚拟化及运维管理  进一步简化服务集成框架的相关配置  根据监控数据自动调整服务配置参数  服务配置参数调整后自动热部署  …… 网易(杭州)网络有限公司 网易服务集成框架的构建与运维
  • 33. 谢谢!  李弈远  网易杭州研究院 前台技术部 基础平台技术  zjulyy@163.com 网易(杭州)网络有限公司 网易服务集成框架的构建与运维