基于EDAS企业级分布式应用服务的Web研发部署

基于EDAS企业级分布式应用服务的Web研发部署

(东方电子股份有限公司技术中心山东省烟台市264000)

摘要:在软件开发过程中,经常处于新业务不断增加的情况下,增加新应用也就成了必须。而在传统架构中,新增的应用需要一一与原有的底层数据库相连,导致业务复杂;企业级分布式应用服务(EDAS)是一个以阿里中间件作为核心基础,组建的企业云计算解决方案。

关键词:分布式应用;Web开发;EDAS

引言

企业级分布式应用服务(EDAS)是一个以阿里中间件组件产品作为核心基础,所组建的企业云计算解决方案。利用阿里云现有的资源管理和服务体系,引入中间件整套成熟的分布式计算框架,包括分布式应用核心框架,分布式数据化运营,大型应用全生命周期管理等,以应用为中心,集成到企业级分布式应用服务平台上,松构建并托管分布式应用服务体系。支持Dubbo和SpringCloud开发模式,可以通过WAR包、JAR包和镜像等多种方式发布应用,无需管理和维护服务器与集群以及运行应用程序的基础设施。

1、传统IOE架构

在日常开发过程中出现新业务时,开发人员有两种应对办法。一种是在原应用上增加新业务,将原本较小的应用慢慢扩充成很大的应用;另一种是另起炉灶,重新创建针对新业务的新应用。第一种只适用于业务较少的情况,而在新业务不断增加的情况下,增加新应用也就成了必然的。而在这种传统架构中,新增的应用需要一一与原有的底层数据库相连,导致每个应用都需要连接多个数据库。在传统IOE架构中,每个应用彼此没有太大关系,按烟囱式排列,唯一的共通点在于都与底层的数据库相连;所能处理的应用个数通常比较少,从几个到几十个不等。在传统IOE架构中,每个应用都比较庞大,同时需要连接多个数据库;架构中的应用数量较少,应用与应用之间的关系简单,如图1所示。

图1传统IOE架构

2、分布式应用

大型分布式应用,应用彼此间存在复杂的调用关系;架构中可管理的应用多,甚至可能达到成百上千个应用。这种架构具有良好的可扩展性;但是管理与运维比较困难,后期应用数量多,业务不断增长,应用服务器从几十台增加到成百上千台,这时业务系统故障与机器故障就一定会成为常态,运维难度较高。

3、传统“中心化”(ESB)系统架构与“去中心化”系统架构

传统中心化系统架构,服务调用者与服务提供者通过企业服务总线相连接;在业务不断扩展的过程中,随着复杂度增加,ESB必然会成为瓶颈,无论在性能上还是成本消耗上,ESB都极大的限制了系统的能力。在一个分布有众多节点的系统中,节点之间彼此可以自由连接,形成新的连接单元。任何一个节点都可能成为阶段性的中心,但不具备强制性的中心控制功能。节点与节点之间的影响,会通过网络而形成非线性因果关系,这就是“去中心化”系统架构,这个架构是为了支撑分布式应用,为了让整个业务系统的扩展没有瓶颈,只需按照业务发展需要进行扩展,如图2所示。

4、EDAS应用发布

传统集中式模式发布,应用包通过中间文件服务器下载,需受限于其网络带宽,而且能够发布的机器数量较少,文件服务器压力比较大;流式应用包分发模式,通过EDAS发布控制中心下载,类似P2P下载模式,可快速提供任何一个下载点,支持大规模应用集群发布,效率与可靠性上有极大幅度的提升。传统集中式发布,随着发布集群规模扩大,效率下降耗时增长;而P2P流式发布,采用EDAS燎原发布系统,随着应用实例的增加,发布的时间几乎可以保持不变。

图2“去中心化”系统架构

5、EDAS数据化运营

EDAS提供立体监控服务,从三个层面的监控数据:资源、容器和应用。系统资源包括负载、CPU、内存、磁盘、网络;容器包括堆内存、类加载情况、线程池、连接器;应用包括响应时间、吞吐率、关键链路分析。对基础资源消耗进行监控,可以看到应用下所有节点的平均负载,可以配置报警规则及时发现问题;实时采集容器运行的监控指标,堆内存与非堆内存使用情况,线程运行情况,连接器情况等;监控服务接口的调用量,分布式系统服务的承载能力等,并将其数据化,快速感知系统流量变化,找出系统瓶颈,执行实时链路分析。快速完成上层业务目标,完成开发任务;提供透明化的观察方式:快速找出对依赖的压力、易故障点与瓶颈点。此外EDAS还提供HSF服务的调用QPS和消费HSF、DRDS、ONS分钟级的服务能力的监控指标。

5、弹性伸缩

弹性伸缩是根据用户的业务需求和策略,经济地自动调整弹性计算资源的管理服务。弹性伸缩不仅适合业务量不断波动的应用程序,同时也适合业务量稳定的应用程序。设置好应用扩容规则和缩容规则后,EDAS会根据CPU、LOAD、RT三个指标设置应用的自动扩容或缩容。EDAS提供了手动和自动两种模式的弹性伸缩。

6、EDAS灰度发布

灰度发布是指在应用的新、旧版本间平滑过渡的一种发布方式。能够允许一部分用户使用新功能,一部分用户使用原有功能,再通过实际测试做出最正确的决定。在业务系统层面,让现有的系统可以平滑升级。在应用发布与产品迭代中,通常会采用灰度发布来控制上线风险。在发布前先进行小规模的生产环境验证,让新版本的应用实例来承接、处理限定规模或范围的业务流量。灰度发布在实现上就是对流量按指定的规则进行识别,并引导到下游应用对应的实例分组,如图3所示。

图3灰度发布

3、结语

整体而言,EDAS是个以应用为中心的PAAS平台,提供监控,服务部署,持续集成到测试。对于大规模分布式系统,比如科学有效率的管理百个以上的应用,EDAS具有得天独厚的优势。EDAS集成了弹性伸缩、限流降级、流量监控、应用体检等管控组件,可高效应对突发的流量洪峰和服务依赖所引发的雪崩问题。对于服务调用的权限控制,对于应用的实时监控,以及全链路监控,分布式应用的配置推送,灰度发布能力等方面提供了立体化监控、数据化运营能力。企业级分布式应用对于Web研发部署提供了非常优质的解决方案。

标签:;  ;  ;  

基于EDAS企业级分布式应用服务的Web研发部署
下载Doc文档

猜你喜欢