企业级分布式应用服务EDAS
产品概述
EDAS是阿里巴巴中间件团队研发的PaaS平台,为企业提供高可用和分布式的互联网架构解决方案.基于阿里云的资源管理和服务管理系统,并提供了分布式服务框架,服务治理,统一配置管理,分布式链路跟踪,高可用及数据化运行等.
全面兼容Apache Tomcat容器
在EDAS上.可以一站式完成应用生命周期管理,包括发布,启动,停止,扩容,缩容和删除等
全局事务服务(Global Transaction Service,简称 GTS)是一款高性能、高可靠、接入简单的分布式事务中间件,用于解决分布式环境下的事务一致性问题。该产品支持 DRDS、RDS、Oracle、MySQL、PostgreSQL、H2 等多种数据源,并可以配合使用 EDAS、Dubbo 及多种私有 RPC 框架,同时还兼容 MQ 消息队列等中间件产品,能够轻松实现分布式数据库事务、多库事务、消息事务、服务链路级事务及其各种组合,策略丰富,易用性和性能兼顾。
应用场景
在云环境中,应用发布与管理会变得十分复杂.本地开发完成的应用需要到每一台服务器进行发布和部署,以及应用的重启,扩容等.服务器的不断增加对运维人员是一个极大的挑战.
针对这个场景,EDAS 提供了一个可视化的控制台,无论集群规模多大,都可以在控制台上轻松地进行应用生命周期管理。
名词解释
Ali-Tomcat:Ali-Tomcat 是 EDAS 中的服务运行时必须依赖的一个容器,主要集成了服务的发布、订阅、调用链追踪等一系列的核心功能,无论是开发环境还是运行时,均必须将应用程序发布在该容器中。
Dubbo:Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,是阿里巴巴 SOA 服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。
EDAS:企业级分布式应用服务(Enterprise Distributed Application Service)。以阿里巴巴中间件团队多款久经沙场的分布式产品作为核心基础组件,面向企业级云计算市场提供高可用分布式解决方案,是阿里巴巴企业级互联网架构解决方案的核心产品。EDAS 充分利用阿里云的资源管理和服务体系,引入阿里巴巴中间件整套成熟的分布式产品,帮助企业级客户轻松构建大型分布式应用服务系统。
EDAS Agent:EDAS Agent 是 EDAS 中安装在您的 ECS 上,主要用于 EDAS 服务集群与部署在相应的 ECS 上的应用程序之间进行通信的 Daemon 程序,在运行的过程中主要承担应用管理、状态回报、信息获取等功能;同时也是 EDAS 控制台与您的应用程序之间信息沟通的主要桥梁。
EDAS RPC 服务:EDAS RPC 服务提供对 Dubbo 框架的支持。一个使用 Dubbo 框架开发的,并以 WAR 为部署方式的应用,可以无缝在 EDAS 平台进行应用的发布和管理,并使用所有 EDAS 所提供的服务治理和数据化运营功能。
EDAS 应用生命周期:应用是 EDAS 管理的基本单位,一个应用下面通常包含了多台机器。EDAS 提供了完整的应用生命周期管理机制,可以完成应用从发布到运行过程的全面管理,包括应用创建、部署、启动、回滚,扩容缩容和停止删除等操作。
EDAS 鹰眼监控系统/分布式链路跟踪:EDAS 鹰眼监控系统用于分析分布式系统的系统调用、消息发送和数据库访问,从而精准发现系统的瓶颈和隐患。
EDAS 应用实例数限额:表示主账号及其名下的子账号所拥有的所有应用下面的实例数上限。付费账号在给主账号分配此限额的时候,其下的所有主账号的限额之和不能大于付费账号的总应用实例数限额。
IaaS 基础监控:EDAS 的监控功能之一,能够针对应用的运行状态,对机器的 CPU、内存、负载、网络和磁盘等基础指标进行详细的监控。
服务调用监控:EDAS 的监控功能之一,能够针对应用的服务调用情况,对服务的 QPS、响应时间和出错率进行全方面的监控
分布式配置管理:EDAS 提供的功能,将分布式系统的配置信息在 EDAS 控制台上进行集中管理,可以实时增加、修改、删除配置,并将配置更新在全局范围或者应用内部进行推送
分布式任务调度:任务调度服务允许您配置任意周期性调度的单机或者分布式任务,并能对任务运行周期进行管理,同时提供对任务的历史执行记录进行查询。适用于诸如每天凌晨2点定时迁移历史数据,每隔5分钟进行任务触发,每个月的第一天发送系统月报等任务调度场景。
服务鉴权:HSF 服务框架致力于保证您每一次分布式调用的稳定与安全。在服务注册、服务订阅以及服务调用等每一个环节,都进行严格的服务鉴权。
服务限流:EDAS 可以对每一个应用提供的众多服务配置限流规则,以实现对服务的流控,确保服务能够稳定运行。限流规则可以从 QPS 和线程两个维度进行配置,帮助您在应对流量高峰时,确保系统能以最大的支撑能力平稳运行。
服务降级:与服务限流相反,每一个应用会调用许多外部服务,对于这些服务配置降级规则可以实现对劣质服务的精准屏蔽,确保应用自身能够稳定运行,防止劣质的服务依赖影响应用自身的服务能力。EDAS 从响应时间维度对降级规则进行配置,帮助您在应对流量高峰时合理地屏蔽劣质依赖。
自动化压测:独创的自动化压测工具模型,能够帮助客户将性能压测融入到日常生活中。值得一提的是,所有自动化压测的流量,全是生产环境真实流量,通过对服务权重的控制,在保证稳定的前提下,真正意义上做到线上压测。
安装EDAS Agent
在EDAS部署应用之前,需要先在ECS上安装EDAS Agent.EDAS Agent是EDAS服务器集群与部署在相应的ECS之间进行通信的Daemin程序
注意:EDAS Agent 中默认安装 JDK 8。如果您需要使用 JDK7,可以通过使用命令脚本手动安装 Agent,并在末尾加上 -force -java 7。
比如华北2(北京 Region)安装 JDK 7 的命令如下:
''wget -q -O /root/install.sh http://${selectedregion url}/install.sh && sh /root/install.sh -force -java 7 ''
使用命令脚本手动安装Agent
在购买ECS时通过EDAS基础镜像自动安装Agent
通过导入ECS自动安装Agent
注意:确认导入 ECS 后,系统会把 ECS 上的所有数据清除,使用 EDAS 的官方镜像重装操作系统。请记住新密码。
发布应用
发布应用包括创建应用、部署应用和配置负载均衡 3 步。
创建应用
说明:
部署应用
EDAS 提供同时部署多台 ECS 实例的功能。本文以一台 ECS 实例为例,所以在分批发布次数下拉列表选择默认的 1 次就可以。
配置负载均衡
如果配置选项中没有SLB清闲创建并配置SLB
(如果需要进行 SLB 端口监听)勾选 SLB 端口监听右侧的开启选项,设置 SLB 前端端口,然后单击配置负载均衡。
用户指南
EDAS 中的资源主要是指云服务器 ECS (Elastic Compute Service)、负载均衡 SLB(Server Load Balancer)、专有网 络 VPC(Virtual Private Cloud)这三类。
ECS
VPC
在 VPC 网络内,ECS 实例与 EDAS 服务器隔离。所以需要安装日志采集器来收集 ECS 的信息。单击实例列表操作列中的安装日志采集器进行安装。安装日志采集器的具体步骤,请参考安装日志采集器。
日志采集器
在 EDAS 提供的一系列服务中,很多数据都是从本地机器拉取的,这就要求服务器可以连接到对应的机器上。
阿里云的网络环境分为经典网络和 VPC 网络两种。
日志采集器分为 Server 端和 Client 端。SProxy 则是安装在您机器上的日志采集器 Client。
必须在 VPC 内部选取一台机器(假设为机器 A)来安装日志采集器。即SProxy,然后机器A会收集VPC内的其他机器信息,来与EDAS集群(Server端)记性通信
资源组
资源组是EDAS对资源的一种划分,资源组只能绑定ECS或者SLB,不能绑定VPC.当您使用主账号负责购买资源,子账号负责应用运维时,可以使用资源组对账号的权限进行控制。
集群
支持ECS集群,Swarm集群,kubernetes集群.网络类型包括经典网络和VPC网络,其中K8S只支持VPC网络
命名空间
您在使用 EDAS 的过程中,通常需要进行资源(ECS)隔离。EDAS 支持按不同账号分配资源,利用账号实现资源隔离。同时,也可以利用 VPC 的网络隔离特性实现资源隔离。但这两种方式会在操作难度(账号切换)和实现成本(需要购买多个 VPC)两方面给您造成不必要的负担,而且不能兼顾资源隔离和统一管理。在经典网络中也无法实现资源的网络隔离。
为了解决这个问题,EDAS 实现了一个新功能:命名空间。在某个地域(Region)的经典网络或 VPC 中,一个命名空间对应一个环境(包含一个或多个集群),不同命名空间之间逻辑上天然隔离。同时,一个账号可以创建多个命名空间。命名空间帮助您将多个环境间的资源完全隔离,并可以使用一个账号进行统一管理。
应用管理
应用简介
EDAS支持三种累心应用的发布:
以下转载自:http://www.cnblogs.com/ealenxie/p/8967012.html
EDAS支持语言Java,C++,PHP。EDAS支持Idea,Eclipse;Eclipse插件安装等编译工具。EDAS初级版仅支持应用的部署管理,不支持HSF功能。EDAS基础版不支持RPC框架。
EDAS提供高性能的RPC框架,能构建高可用的分布式系统,考虑各个应用之间的分布式服务发现、服务路由、服务调用以及服务安全等细节。EDAS能单独部署到公司内网。
EDAS HSF服务框架保证用户每次分布式调用的稳定与安全。在服务注册、服务订阅以及服务调用等环节都进行严格的服务鉴权。
HSF设置超时时间 : 通过HSF标签methodSpecials和clientTimeout进行配置,优先级由高到低是 : 客户端methodSpecials>客户端clientTimeout>服务端methodSpecials>服务端clientTimeout
EDAS控制台域名 : https://edas.console.aliyun.com
EDAS控制台提供日志浏览功能,可查看服务器上所部署的应用运行日志。收敛日志用于将单个应用中类似格式的日志合并和排序。收敛日志配置后需要等待大概5分钟才能生效。
EDAS安装轻量配置中心 : 启动配置中心将会占用此台机器的8080和9600端口,需要在hosts中添加 {轻量配置中心公网 ip} jmenv.tbsite.net。如果此台机器是多网卡的,可启动脚本startup.bat或startup.sh中添加启动参数: -Daddress.server.ip={指定的 IP 地址};通过 -Dhsf.server.ip参数指定要注册服务的IP。
EDAS 服务限流的限流规则(限流规则仅适用于服务调用者)能够从QPS和线程两个维度进行配置。可进行HSF限流和HTTP限流。
EDAS 提供了从响应时间维度对降级规则(降级规则仅仅适合服务提供者)的配置。
EDAS 鹰眼监控系统能够分析分布式系统的每一次系统调用、消息发送和数据库访问。主要包括应用拓扑(可查看调用拓扑和流量QPS),调用链查询(可查看慢业务和出错业务),调用链详情(基于TraceId查询)。
EDAS 提供报警功能,但目前只有短信与邮件通知的方式。
EDAS 的应用主要分为两种类型:中间件服务化应用(JAR/WAR包类型的普通应用和Docker应用)和 Kubernetes 应用。Kubernetes应用只支持VPC网络。
EDAS 的应用部署类型有两种 : ECS独占实例(在一台独立的ECS机器上,仅允许部署单独一个应用),Docker实例(单个应用在同一ECS上只能部署一个实例)
EDAS 能够针对应用的服务调用情况,对服务的QPS、响应时间(RT)和出错率进行全方面的监控。
EDAS 能够针对应用的运行状态,对机器的CPU、内存、负载(Load)、网络和磁盘等基础指标进行详细的监控。EDAS还提供容器监控功能(应用诊断)。基础监控(可提供以应用为维度的数据)面向的是机器,容器监控面向是应用所在的容器。基础监控存在时延,容器监控基本是实时的。
EDAS 提供弹性伸缩功能来根据集群内服务器的CPU、RT和Load三个指标实现自动的扩容或者缩容。
EDAS 对应用的生命周期管理,包括创建、部署、启动/停止和删除(应用删除不可恢复)。可设置JVM参数,Tomcat参数,可对应用的实例分组(可按分组部署应用,添加实例到分组),可配置负载均衡。可配置健康检测URL。
EDAS 包含两种集群:Swarm(部署普通应用和Docker应用)和Kubernetes集群(部署Kubernetes应用)。
EDAS 的配置推送分为全局配置推送和应用内部的配置推送。全局配置推送能操作该用户的所有配置信息,应用内的配置推送只能操作该应用所属的配置信息。一个配置信息由三元组(group、DataId、Content)组成。
EDAS 提供主子账号体系,付费账号都是主账号(拥有EDAS所有资源,所有权限),但不是所有的主账号都是付费账号。1个付费账号最多能绑定5个主账号。RAM子账号由主账号在RAM系统中创建,子账号名要在主账号内唯一。RAM账号有两种授权方式 : RAM授权,EDAS授权(两种方式互斥,有了RAM授权,那么就不能在EDAS中授权),主账号可以对绑定的子账号(用户)进行权限分配、资源分配等。应用的授权只能是主账号对子账号进行授权。
EDAS 的资源主要是指云服务器ECS(Elastic Compute Service)、负载均衡SLB(Server Load Balancer)、专有网络VPC(Virtual Private Cloud)这三类。
VPC环境调用链和监控数据需要有访问请求流量才会产生,如果无客户访问网站,则不会有曲线。确定机器的8182端口打开。执行 netstat -antp|grep 8182查看是否端口开放。
EDAS Agent是EDAS中安装在用户ECS上,主要用于EDAS服务集群与部署在相应的ECS上的应用程序之间进行通信的Daemon程序,在运行的过程中主要承担应用管理、状态回报、信息获取等功能,Edas Agent在每个区的安装脚本都是不一样的。如果安装Agent的过程中发现卸载Java,说明指定的JDK版本与安装版本不一致;如果EDAS Agent心跳停止了, ECS的实时状态会变成Agent异常 ,此时,任何对该ECS的部署、启动、停止等命令均无效。重启服务器后EDAS Agent会自动重启,但是Tomcat不会。如果配置JVM参数(在EDAS Agent2.8.0 版本及以上才有效),参数会被写到容器目录下的bin/setenv.sh文件中,需要重启Tomcat和应用才可以生效。
EDAS 容器由AliTomcat,Pandora和定制的Pandora插件组成。EDAS容器发布不会对已部署的应用产生任何影响。
Ali-Tomcat是EDAS中的服务运行时必须依赖的容器,主要集成服务的发布、订阅、调用链追踪等一系列的核心功能,无论是开发环境还是运行时,均必须将应用程序发布在该容器中。
Pandora是轻量级的隔离容器,也就是taobao-hsf.sar,用来隔离Web App和中间件的依赖,隔离中间件之间的依赖,让其相互之间互不影响。
定制的Pandora插件中集成了实现服务发现的插件、实现配置推送的插件、实现调用链跟踪的插件等各种中间件产品插件。对EDAS应用进行服务监控、治理、跟踪、分析等全方位运维管理。
EDAS高级版的流量管理规则有两种模式 : 参数取模和名单分流。通常用于灰度发布,蓝绿部署,A/B 测试,营销需求(新产品发布)。
EDAS提供Open API,可以提供资源查询,应用生命周期管理和账号管理功能。
EDAS日志采集器(鹊桥) : 仅支持CentOS 6.5/7.0/7.2 64位和Ali-Linux 15.1 64位,可在多台机器上安装,推荐在安装了EDAS Agent的机器上安装(并不是必须的)。安装完成后手动检测端口(8000)是否建立成功。
Dubbo是第一代RPC框架。