读企业IT架构转型之道02(6.8)

栏目: 后端 · 发布时间: 7年前

内容简介:读企业IT架构转型之道02(6.8)

打造数字化运营能力

在业务服务化后,大量的服务接口交互调用,会出现更加错综复杂的服务调用关系,而且在去中心化的服务框架实现模式下,整体调用时一种网状复杂关系。那么如果一个服务API接口调用出现问题,具体应该对应或追踪到哪个业务场景?对于服务开发者必然会关心如下问题:

1. 我的服务在什么链路下被调用,调用场景和数据是否合理?

而对于业务架构师而言,从技术到业务视角,往往会关心如下问题:

1. 当前的业务流程设计中,我依赖了哪些应用,哪些服务?

2. 整个链路的依赖路径是如何的 ?哪些服务队当前业务处理来说做为核心,SLA等级最高?

3. 一次完整的业务请求纠结经过了哪些服务调用,时间究竟花费在哪些地方?

4. 我所负责的业务链路中,哪些服务出错率高?哪些服务是业务链路本身的处理瓶颈?

阿里针对分布式服务调用链跟踪平台-鹰眼,类似的有Twitter的Zipkin。

对于阿里的鹰眼可以看做是一种异步实时的实现模式, 底层核心是基于JStorm流式计算引擎,通过实时的采集,拆分,解析,计算和归并得到最终的业务统计和性能统计数据 。注意,每个运行应用所在的服务器上均有一个代理程序,专门负责实时的将生成的增量日志发送到鹰眼处理集群上。

为了确保追踪一次完整的业务请求,就需要进行埋点和输出日志,对于一次完整的业务请求调用需要全程都传输一个全局唯一ID信息,在鹰眼平台叫做 TraceID ,这个在前面服务链监控中我也谈到过,但是遗漏了一点。即如果要进一步追踪到整体的服务调用链层次结构和嵌套关系,还需要进一步传输 RCPID 信息,以确保最后的链路显示有层次和嵌套关系。在重的ESB总线中通过BPEL服务编排实现的BPEL实例追踪,我们通过上面这种方式巧妙解决掉了。

在埋点和输出日志中往往需要包含如下关键信息:

1. TraceID,RPCID,开始时间,调用类型,对端IP

2. 处理耗时

3. 处理结果(ResultCode)

阿里海量分布式日志处理平台Tlog,实现日志采集,日子格式定义,日志解析和处理,日志输出和展示。同时Tlog采用Google Blocky可视化编程 工具 实现了日志解析格式的灵活配置和定义。

注意对于鹰眼平台的监控已经不是传统网管平台对资源层面的监控,而是上升到了应用和服务性能层面的监控,也是我们常说的APM应用性能监控方面的内容。其典型业务场景包括:


(服务QPS,服务响应时间等)

2. 服务调用链跟踪 (相当重要,为了显示完整层次逻辑,必须TraceID+RPCID)

3. 服务调用链分析 (QPS,调用次数,耗时,依赖度,顺序)

4. 业务全息排查 (实现服务调用链路信息和业务事件信息进行集成)

5. 业务实时监控 (从单纯的技术监控发展到对业务事件和业务指标的监控,体现业务价值)

有了服务链跟踪这一功能,才使得阿里应用服务化后的平台从一个无服务管控的状态变成一个真正可管可控的状态。服务调用链跟踪的功能着重于对业务链路数据的实时监控,服务调用链分析则是对服务调用数据按照不同维度进行离线的统计和分析,两者相辅相成。通过全息信息排查,将鹰眼平台从对跨系统调用追踪升级为跨业务领域追踪,走出了从运维平台朝运营平台转型的重要一步。


平台稳定性的创新和积累包括了 限流和降级,流量调度,业务开关,容量压测和评估,全链路压测平台,业务一致性平台等方面的内容 。在双11或秒杀大促等活动中,稳定性就更加重要。平台的稳定性涉及到硬件基础设施(服务器,网络,存储),平台技术和应用架构,服务设计和监控,软件和应用等多方面的内容。

限流即流量控制,一方面是可以通过对资源曾的资源性能监控触发限流,一个方面是根据预设的服务访问QPS阈值等触发限流操作。当前实际往往是以第二种为主。

阿里在Nginx上扩展组件TMD实现了接入层限流,可通过域名,Cookie,黑名单等多方式限流。

限流平台Sentinel,两个基础概念,资源和策略,对特定的资源采用不同过的控制策略,起到保障和稳定性的作用。注意Sentinel已经是一个完整的限流+监控管理平台,能力包括了:

1. 授权: 通过黑白名单实现服务调用访问授权

2. 限流: 对特定资源进行调用的保护,防止资源的过度调用

3. 降级: 当依赖的资源响应时间过长时进行自动降级,并在制定时间自动恢复调用。

4. 监控: 提供全面的运行状态监控,可以实时监控资源的调用情况

流量调度的核心是通过秒级获取服务器系统运行指标以及业务指标,通过流量调度平台设置的决策算法以及规则,当发现满足规则条件的指标状态发生时,对线上环境的服务器进行下线操作,以屏蔽单点故障影响 。注意这和PaaS的动态资源调度还是有区别的,特别是增加了业务指标的监控。具体指标包括:

1. 系统指标信息:CPU,Load等。

2. 业务指标信息:Http响应时间,HSF服务调用时间,QPS,线程池使用和状态信息等。

在HSF框架里面则主要是通过动态的调整权重路由值来降低对问题服务器的路由权值,直到0,最终达到通过自动化的流量调度来隔离故障。

服务治理和管控

服务化改造和发展的持续进行,传统人工模式的服务支持带来越来越多的问题,具体如下:

1. 服务的数量和业务覆盖范围越来越大(如何高效找到服务并快速使用?)

2. 应用和业务架构越分越细,跨领域理解的成本越来越高

3. 服务安全控制层缺乏(数据安全,服务SLA,服务依赖关系,恶意服务调用等)

4. 开发体验不好,产品在接入流程,开发手册建设非常差

5. 整体服务体系缺乏一个统一的服务治理层

服务核心是暴露一个标准共享的服务接口能力,而服务化核心是从产品能力转化到直接服务客户的能力,实现按需服务。 服务化的思路就是把产品和服务的中心转移到用户身上,以方便用户使用,降低使用成本为目标。

实践共享服务最基本的目标就是把普通的服务能力升级为组件化服务并提供良好的服务治理支持。所以这里面涉及到三个重要内容,也是我很多文章里面谈SOA和服务经常谈到的,即1)建设服务化基础设施和平台 2)业务组件化和组件能力服务化,划分好组件,控制好服务粒度 3)后期的服务管控和治理体系,治理平台建设。

阿里服务化构建过程和基本思路,包括如下:

1. 确定服务化的对象是API (数量是巨大的)

2. 建设API服务封装和管理基础设施 (服务元数据,服务注册接入,安全,SLA,基础运维,监控)

3. 服务化实施 (从API as Service 逐步发展到Product as Service,粗粒度的产品类服务更加体现业务价值)

业务中台中不管是服务中心的建立,还是各服务中心的能力都是一个不断沉淀,不断完善的过程。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Paradigms of Artificial Intelligence Programming

Paradigms of Artificial Intelligence Programming

Peter Norvig / Morgan Kaufmann / 1991-10-01 / USD 77.95

Paradigms of AI Programming is the first text to teach advanced Common Lisp techniques in the context of building major AI systems. By reconstructing authentic, complex AI programs using state-of-the-......一起来看看 《Paradigms of Artificial Intelligence Programming》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具