微服务和 Serverless 架构-EDAS 整体架构

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 微服务和 Serverless 架构-EDAS 整体架构

开发者学习笔记【阿里云云原生助理工程师认证(ACA)课程微服务和 Serverless 架构-EDAS 整体架构】

课程地址:https://edu.aliyun.com/course/3112075/lesson/19026


微服务和 Serverless 架构-EDAS 整体架构

 

课程目录

一、阿里企业级分布式应用服务EDAS

二、EDAS中的微服务核心组件

三、EDAS应用托管

 

一、阿里企业级分布式应用服务 EDAS

image.png

阿里云的商用服务框架,EDAS的功能和操作,微服务架构的一个重要特点就是一个微服务的运行需要一个功能完善的微服务框架进行支撑,虽然通过互联网公司和开源社区的共同努力,已经有了很多的开源微服务核心组件可以选择,但是通过开源组件构建一套微服务治理框架实际上还需要消耗很多的开发人员和运维人员的精力,如果开发人员和运维人员相对于框架的内部实现机制没有深刻的理解,一旦出现问题也不容易排查,同时相对于开源的版本,大型商业公司内部使用的版本,虽然接口和开源的版本没有太大区别,但是在吞吐率、安全性、人性化操作界面等功能上,还是会有相当大的提高,在这种情况下,云计算时代企业及应用的开发者,使用开源版本微服务核心组件,搭建微服务治理框架有时候并不是一个很好的选择,为了让更多的云计算用户能够以简单高效的方式使用微服务治理框架。

2007年阿里云推出来自己的分布式服务应用EDAS,为用户提供商业的微服务治理框架,而EDAS也是采用了Pass微服务平台的治理方式提供服务。也就是意味着用户不用一次性投入大量成本,可以像租用基础设施一样,按时长租用的方式进行付费。

 

二、EDAS 中的微服务核心组件

image.png

首先看一下EDAS服务应用核心组件的知识情况,还是以五大核心组件进行说明。
首先微服务框架方面,EDAS的支持还是比较全面的,包括Spring Cloud Dubbo,HSF这常见的微服务框架组件,EDAS都是支持的。在核心组件这一块可以看到图中相对于开源组件商用组件有它自己的应用特点,一般来讲开源组件会把每个模块分的比较细,而且模块和模块之间都是具有可替换性的。比如以服务计算中心为例,可以回想之前列出的开源服务注册中心,还有阿里开源的Nacos几种服务注册中心可以由开发人员自由选择。

自由选择一方面带来了灵活的好处,但是也要求开发者对每一个组件的内部实践有一定的了解,才能做出合适的判断。但是在商用版本上,一般采用比较集成化的方法进行部署,也就是由一个功能大的组件实行大部分的功能,这样做的好处就是模块和模块之间设计思路一致,内部调用的效率也可以达到一个更高的水平。所以,在EDAS内服务注册中心、负载均衡和配置中心这三大部分功能都是由阿里开源Nacos的商用版本实现的,这一点和版本有很大的不同。

另一个组件就是微服务网关,这部分也是和开源的实践有所不同。首先EDAS产品内部包含了服务健全组件,可以实现微服务权限的调用管理,避免调用滥用,同时EDAS还结合阿里云自己的一个微服务网关产品CSB,它除了提供开源网关的同一入口,服务健全、动态陆游等功能,还包含了很多开源网关不具备的功能,比如协议转化、跨网络级联调用等,因此CSB产品的复杂性会比开源网关高很多,所以我们把它当一个单独的产品来进行处理。

最后一部分就是断路器组件,开发者可以使用阿里开源的Sentinel, 同时也兼容Hystrix,不过这里更加推荐使用Sentinel的商用版本(AHAS),从功能上来讲AHAS比又有了一个很大的扩展,它已经不再是一个简单的限流模块的概念。而是包含了整块的微服务高可用解决方案中会涉及到的一系列高可用功能,在后面课程会有详细讲解。

这五部分就是EDAS核心组件的情况,另外在实际开发的过程中我们在配置本地开发环境时可以搭建一个轻量级的EDAS本地活动中心,它实际上是一个EDAS的本地轻量级版本。这样我们在通过本地轻量级中心调试过的版本微服务代码,不需要再做修改就可以无缝地将微服务移到EDAS生产环境上,便于我们开发者进行应用的快速开发部署。

 

三、EDAS 应用托管

image.png

EDAS的另一个功能就是应用托管,通过传统的开源组件方式组件微服务核心框架时,应用的复制、升级、下限等工作并没有统一的解决方案,需要运维人员手动登录每一台服务器进行操作,虽然运维人员可以用脚本等方式进行初步的自动化,但是效率并不是很高,同时企业级应用的发布和升级过程是一个风险较高的操作,而运维人员在执行例如分批发布等高难度任务时无论是采用手动还是脚本的方式,其稳定性和可靠性都不能达到商用产品的标准。

同时和微服务密切的一些相关组件,如弹性自动扩容、应用监控、应用日志等,也需要开发人员手动的方式加以集成,因此除了作为应用技能服务核心组件,提供微服务框架支持,EDAS还提供了商业级的应用托管能力,是从阿里巴巴内部项目中演化而来,历经了多年双11的严格考验,其稳定性远远超过运维人员手动编写脚本或一些开源产品。
通过EDAS应用托管开发者在部署和升级应用时,不在需要每台应用服务器进行繁杂操作,只需要在控制台即可以完成应用的集群部署以及多种形式的应用、发布、升级和回滚。

另外从左侧图中可以看到EDAS还集成了多种微服务运行中必不可少的功能,主要可以分为应用监控、服务治理和智能运维三大类,为企业级微服务的安全运营提供了坚实的技术保障。

相关实践学习
使用DAS实现数据库自动SQL优化
本场景介绍如何使用DAS实现数据库自动SQL优化。
SpringMVC框架入门
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架,如Struts2等。 相关的阿里云产品企业级分布式应用服务 EDAS:企业级分布式应用服务 EDAS(Enterprise Distributed Application Service)是一个应用托管和微服务管理的 PaaS 平台,提供应用开发、部署、监控、运维等全栈式解决方案,同时支持 Spring Cloud、Apache Dubbo(以下简称 Dubbo )等微服务运行环境,助力您的各类应用轻松上云。产品详情: https://www.aliyun.com/product/edas 
相关文章
|
21天前
|
运维 安全 Serverless
Serverless架构在图像处理中的优势探讨
Serverless架构在图像处理中的优势探讨
16 1
|
13天前
|
弹性计算 安全 Serverless
图像处理场景下的Serverless架构
【4月更文挑战第15天】图像处理场景下的Serverless架构
|
15天前
|
人工智能 Serverless 数据处理
利用阿里云函数计算实现 Serverless 架构的应用
阿里云函数计算是事件驱动的Serverless服务,免服务器管理,自动扩展资源。它降低了基础设施成本,提高了开发效率,支持Web应用、数据处理、AI和定时任务等多种场景。通过实例展示了如何用Python实现图片压缩应用,通过OSS触发函数自动执行。阿里云函数计算在云计算时代助力企业实现快速迭代和高效运营。
48 0
|
5月前
|
运维 Serverless API
四大软件架构:掌握单体、分布式、微服务、Serverless 的精髓
如果一个软件开发人员,不了解软件架构的演进,会制约技术的选型和开发人员的生存、晋升空间。这里我列举了目前主要的四种软件架构以及他们的优缺点,希望能够帮助软件开发人员拓展知识面。
|
2月前
|
敏捷开发 jenkins Serverless
Serverless 应用架构转型
【2月更文挑战第29天】
|
2月前
|
机器学习/深度学习 人工智能 Serverless
20行代码,Serverless架构下用Python轻松搞定图像分类和预测
本文将AI项目与Serverless架构进行结合,在Serverless架构下用20行Python代码搞定图像分类和预测。
111840 127
|
4月前
|
Serverless 应用服务中间件 开发者
Serverless应用引擎问题之源码部署关掉如何解决
Serverless部署是指将应用程序部署到无服务器架构中,该架构允许开发者专注于代码而无需关心底层服务器的运行和维护;针对Serverless部署过程中可能遇到的挑战,本合集提供全面的指南和最佳实践,帮助开发者顺利实现应用的无服务器化部署。
48 2
|
4月前
|
机器学习/深度学习 弹性计算 Serverless
引领未来科技发展的无服务器架构(Serverless)
无服务器架构(Serverless)是一种革命性的云计算模式,它将开发者从传统服务器管理的繁琐中解放出来,提供了更高效、灵活和可扩展的应用开发和部署方式。本文将介绍无服务器架构的概念、原理及其在各个领域的应用,并展望其对未来科技发展的巨大影响。
|
4月前
|
存储 物联网 Serverless
无服务器架构(Serverless)的革命性应用
无服务器架构是一种全新的云计算模型,它将传统的基于服务器的架构转变为以事件驱动的、按需自动化的架构。本文将探讨无服务器架构的定义、特点以及在现代应用开发中的应用。
156 2
|
5月前
|
运维 Cloud Native Serverless
MSE Serverless 正式商用,构建低成本高弹性的微服务架构
MSE Serverless 正式商用,构建低成本高弹性的微服务架构
70483 77

相关产品

  • 企业级分布式应用服务
  • 函数计算