杂项-分布式-EDAS:深度解析阿里云EDAS服务
ylbtech-杂项-分布式-EDAS:深度解析阿里云EDAS服务 |
1.返回顶部 |
深度解析阿里云EDAS服务
企业级分布式应用服务(EDAS,Enterprise Distributed Application Service)是一个以阿里中间件团队多款久经历练的组件产品作为核心基础,所组建的企业云计算解决方案。其充分利用阿里云现有的资源管理和服务体系,引入中间件整套成熟的分布式计算框架——包括分布式应用核心框架,分布式数据化运营,大型应用全生命周期管理等,以应用为中心,集成到企业级分布式应用服务平台上,帮助企业级客户轻松构建并托管分布式应用服务体系。
企业级分布式应用服务与传统IOE架构的区别
传统IOE架构
传统IOE架构
随着时间推移,在出现新业务时,开发人员有两种应对办法。
- 在原应用上增加新业务,将原本较小的应用慢慢扩充成很大的应用;
- 另起炉灶,重新创建针对新业务的新应用。
第一种只适用于业务较少的情况,而在新业务不断增加的情况下,增加新应用也就成了必须。而在这种传统架构中,新增的应用需要一一与原有的底层数据库相连,导致每个应用都需要连接多个数据库。
此外,在传统IOE架构中:
- 每个应用彼此没有太大关系,按烟囱式排列,唯一的共通点在于都与底层的数据库相连;
- 所能处理的应用个数通常比较少,从几个到几十个不等。
总结:在传统IOE架构中,每个应用都比较庞大,同时需要连接多个数据库;架构中的应用数量较少,应用与应用之间的关系简单。
大型分布式应用
大型分布式应用
- 应用彼此间存在复杂的调用关系;
- 架构中可管理的应用多,可能达到成百上千个应用。
其优点在于:这种架构具有良好的可扩展性;而缺点在于管理与运维比较困难,另外由于应用数量多,随着业务增长,应用服务器从十台增加到上百台上千台,这时业务系统故障与机器故障就一定会成为常态。
传统“中心化”系统与阿里的“去中心化”系统架构的区别
传统“中心化”(ESB)系统架构
传统中心化系统架构
- 服务调用者与服务提供者通过企业服务总线相连接;
- ESB成为瓶颈:无论在性能上还是成本消耗上,ESB都会导致瓶颈出现。
阿里“去中心化”系统架构
阿里“去中心化”系统架构
开发这个架构的初衷是为了支撑分布式应用,为了让整个业务系统的扩展没有瓶颈,只需按照业务发展需要进行扩展;上图是最早的雏形。后面为了完善该架构,又做了很多工作,下面将详细说明。
EDAS服务调用
服务接口可视化:让分布式应用不再是黑盒
在最初的架构中,由于看不到任何的数据或者发布了什么服务,开发人员也并不明确每个应用具体包含什么服务,这就像一个黑盒子,所有内容都是一团迷雾。
EDAS在线平台
将服务接口可视化之后,在应用启动时将自动完成服务注册,所发布和消费的服务可以在企业级分布式应用服务平台在线查看,所有内容一目了然。
EDAS服务调用的安全性
EDAS服务调用结构
普通框架是没有安全性可言的,任何人只要知道地址就可以通过服务接口随意进行调用。为此我们针对三种维度的安全性做出了控制:在发布、订阅和调用服务时必须使用合法的安全令牌(access key/secret key)。
- 服务提供者在服务注册中心发布,需要权限AK;
- 服务调用者获得服务提供者的IP,需要授权;
- 服务调用者知道IP,需要调用时,需要正确的AK。
此外,授权数据会下发到服务机器中,避免造成性能瓶颈。
EDAS应用发布
传统集中式模式:
传统的应用包下载模式
l 应用包通过中间文件服务器下载,需受限于其网络带宽;
l 能够发布的机器数量较少
P2P流式应用包分发模式:
P2P应用包分发模式
- 通过EDAS发布控制中心下载;
- 类似P2P下载模式,可快速提供任何一个下载点;
- 支持大规模应用集群发布。
效率对比
随着所发布的应用实例增多,两种发布方式的效率对比如下:
两种发布方式的效率对比
传统集中式(黄色):随着发布集群规模扩大,耗时急剧增长;P2P流式:采用EDAS燎原发布系统,随着应用实例的增加,发布的时间几乎保持不变。
EDAS扩容
EDAS提供简单方便高效的应用扩容服务。在传统模式中,扩容需运维或开发人员手动布置环境、安装GDP等等;而在P2P流式中,一键即可扩容,只要机器资源足够,在EDAS平台点击“应用扩容”即可完成。
一键扩容界面
EDAS数据化运营
立体监控服务
立体监控服务
EDAS监控服务三个层面的监控数据:资源、容器和应用。
- 系统资源:负载、CPU、内存、 磁盘、网络
- 容器:堆内存、类加载情况、线程池、连接器
- 应用:响应时间、吞吐率、关键链路分析
其中:
系统资源监控
系统资源监控界面
以应用/单机的视角来对基础资源消耗进行监控:
- 可以看到应用下所有节点的平均负载
- 通过技术监控,及时发现问题
- 可以配置报警规则,有异常时快速报警
容器监控
容器监控界面
实时采集容器运行的监控指标,为应用运行环境问题诊断提供依据:
- 堆内存与非堆内存使用情况
- 类加载情况
- 线程运行情况
- 连接器情况
应用实时监控
应用监控界面
监控服务接口的调用量,分布式系统服务的承载能力等,并将其数据化:
- 监控所有服务接口、方法的实时调用情况,调用链的实时查询
- 快速感知系统流量变化,找出系统瓶颈
- 执行实时链路分析
服务综合治理
分布式应用的难点在于集成分布式应用一体化监控、数据化运营以及高效的服务治理。其中,服务有两种角色,服务提供者以及链路负责人。
服务提供者关心:
谁调用了我的服务? 在什么链路下调用,调用是否合理?调用趋势怎样?产生的瞬间峰值有多少?我的系统是否能支撑,是否需要扩容。
所能采取的应对措施:分组、限流、鉴权、压测。
链路负责人关心:
我依赖了哪些应用、哪些服务? 整个链路的依赖路径是怎样的? 哪些容易出错,哪些是链路的处理瓶颈? 这些依赖如果出错,会有什么影响?
所能采取的应对措施:捕获异常;降级:对于不稳定的服务,是否需要降级;开关:系统压力很大的话,需要关闭不必要的操作;优化:利用服务治理,对瓶颈进行优化。
鹰眼监控
鹰眼监控界面
阿里鹰眼监控平台能够提供应用的响应时间和吞吐量信息,并提供全链路分析功能,从而找出系统热点和瓶颈:
- 完整记录所有故障
- 准确定位故障源
所解决的问题:在开发者参差不齐的情况下,快速完成上层业务目标,完成开发任务;提供透明化的观察方式:快速找出对依赖的压力、易故障点与瓶颈点。
快速找出对依赖的压力、易故障点与瓶颈点
容量压测
容量压测界面
自动计算前端的关键请求与后端机器数量的对应关系,针对机器是否需要加减进行预测:
- 在真实线上的环境基础上,通过调整服务器权重,真实模拟压测情况,评估单机的最大服务能力,从而提供吞吐能力数据以供性能优化参考;
- 用自动化平台,相对科学的精确手段将服务能力数据化;
限流降级
容量是任何一个系统天然存在的上限。客观上讲,不管性能如何,都有可能在业务上超出预期容量。
限流是服务接口提供方对消费方的设置,降级则是服务消费方对服务提供方的设置。通过降级设置,对服务消费方进行保护,一旦超过某个时间,便允许强行断开。通过现有的能量对服务提供方进行保护,在出现超过流量最大能力的时候断开,避免将系统整个拖垮。
弹性伸缩
扩容界面
应用扩容规则和缩容规则一站式设置:根据CPU、LOAD、RT三个指标设置应用的自动扩容或缩容。
EDAS配置推送
大型分布式系统应用配置推送
- 对大型分布式应用配置进行集中管理:修改更容易,通知更及时,配置变更也更安全;
- 对应用配置变更进行历史记录:让应用配置可以轻松回退到前一版本;
- 追踪应用配置推送轨迹:让配置推送所到达机器变得可视化;
- 应用集群推送的规模更大、效率更高。
EDAS灰度系统
EDAS灰度系统
能够允许一部分用户使用新功能,一部分用户使用原有功能,再通过实际测试作出最正确的决定。在业务系统层面,让现有的系统可以平滑升级。
EDAS——世界级优秀PAAS平台
应用客户案例
- 适用于各行各业;
- 高性能、高弹性、高容错;
- 打造以应用为中心的平台服务,让开发人员专注于业务逻辑;
- 构建360度的应用运维服务平台,集成各种运维管控工具。
2.返回顶部 |
3.返回顶部 |
4.返回顶部 |
5.返回顶部 |
6.返回顶部 |
![]() |
作者:ylbtech 出处:http://ylbtech.cnblogs.com/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 |
杂项-分布式-EDAS:深度解析阿里云EDAS服务的更多相关文章
- 【New Feature】阿里云快照服务技术解析
一.背景 目前上云已经成为行业发展趋势,越来越多的企业级客户将业务系统和数据库迁移到云上.而传统的备份一体机/备份软件方式,并不适合云上ECS.RDS等产品的备份与容灾服务.阿里云块存储服务提供云 ...
- 阿里云EDAS功能简介
尊敬的 EDAS 用户: 您好!为了给您带来更好的服务和使用体验,EDAS 产品团队将对 EDAS 标准版(含按量付费和包年包月)进行一轮调整,包括按量付费标准版价格和免费额度的更新,以及标准版套餐的 ...
- 深度解析双十一背后的阿里云 Redis 服务
摘要: Redis是一个使用范围很广的NOSQL数据库,阿里云Redis同时在公有云和阿里集团内部进行服务,本文介绍了阿里云Redis双11的一些业务场景:微淘社区之亿级关系链存储.天猫直播之评论商品 ...
- 15分钟在阿里云Kubernetes服务上快速建立Jenkins X Platform并运用GitOps管理应用发布
本文主要介绍如何在阿里云容器服务Kubernetes上快速安装部署Jenkins X Platform并结合demo实践演示GitOps的操作流程. 注意:本文中使用的jx工具.cloud-envir ...
- 品尝阿里云容器服务:初步尝试ASP.NET Core Web API站点的Docker自动化部署
部署场景是这样的,我们基于 ASP.NET Core 2.0 Preview 1 开发了一个用于管理缓存的 Web API ,想通过阿里云容器服务基于 Docker 部署为内网服务. 在这篇博文中分享 ...
- 品尝阿里云容器服务:用nginx镜像创建容器,体验基于域名的路由机制
在前一篇博文中我们了解了阿里云容器服务的路由机制: 请求 -> 负载均衡80端口 -> 容器主机9080端口 -> acsrouting路由容器80端口 --基于域名--> W ...
- Knative 应用在阿里云容器服务上的最佳实践
作者|元毅 阿里云智能事业群高级开发工程师 相信通过前面几个章节的内容,大家对 Knative 有了初步的体感,那么在云原生时代如何在云上玩转 Knative?本篇内容就给你带来了 Knative 应 ...
- 比传统事务快10倍?一张图读懂阿里云全局事务服务GTS
近日,阿里云全局事务服务GTS正式上线,为微服务架构中的分布式事务提供一站式解决方案.GTS的原理是将分布式事务与具体业务分离,在平台层面开发通用的事务中间件GTS,由事务中间件协调各服务的调用一致性 ...
- 利用阿里云容器服务打通TensorFlow持续训练链路
本系列将利用Docker和阿里云容器服务,帮助您上手TensorFlow的机器学习方案 第一篇:打造TensorFlow的实验环境 第二篇:轻松搭建TensorFlow Serving集群 第三篇:打 ...
随机推荐
- Java——文件过滤器
body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2p ...
- CentOS 7 Crontab
Crontab默认每分钟读取 /etc/crontab 文件./etc/cron.d/目录和/var/spool/cron/目录一次,3者对应任务的建立格式是一致的,只是/var/spool/cron ...
- 全球DEM数据GMT绘制
http://gmt-china.org/download/
- 获取exe所在目录路径,速度
// test.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <Windows.h> #include &l ...
- 玩转TypeScript(1) --定义简单的类
相对于JavaScript来说,TypeScript增强了强制类型,同时添加了一系列的面向对象的特性,包含:静态类型(Static typing).类(Classes).接口(Interfaces). ...
- 【linux基础】区块选择VisualBlock
前言 有时候使用linux需要选择某一块区域进行处理,比如对某些列的某些行,类似于Ultraedit的列模式,其实vim中就有相关的功能,此时可以使用vim的区块选择进行处理. 区块选择 1.在一般模 ...
- 【分形】【洛谷P1498】
https://www.luogu.org/problemnew/show/P1498 题目描述 自从到了南蛮之地,孔明不仅把孟获收拾的服服帖帖,而且还发现了不少少数民族的智慧,他发现少数民族的图腾往 ...
- apache flink kubernetes 运行试用
类似docker-compose 运行模式,使用的是deploy 的模式 deploy yaml 文件 deploy-k8s-yaml apiVersion: extensions/v1beta1 k ...
- pipelinedb Continuous transforms 操作
Continuous transforms 可以进行数据的转换,数据是不进行存储,主要是可以加入到其他的stream pipeline 中,或者写到其他外部 存储中,和存储过程结合使用,当前默认内置一 ...
- Oracle中的三种Join 方式
基本概念 Nested loop join: Outer table中的每一行与inner table中的相应记录join,类似一个嵌套的循环. Sort merge join: 将两个表排序,然后再 ...