背景
最初, 是因为对 Serverless 这一概念感兴趣, 所以开始试用阿里云函数计算,使用过程中感受到了函数计算快速、按需付费和弹性伸缩等方面的优势,随后我在天气预报、发送短信等场景下开始了更深的体验,并开始接触 EDAS Serverless。
初次尝鲜
- 看文档
文档地址:https://help.aliyun.com/document_detail/97792.html?spm=a2c4g.11186623.6.550.6a0a1548fJcLZG - 安装,填写服务基本信息,选择规格,支持集群扩容
- 支持镜像、War包和Jar包三类部署方式
- 提供了启动命令、环境变量、Hosts绑定和应用健康检查等实用的设置
- 支持实时日志和监控大盘
- 可添加私网SLB访问,这点很强大
上手实战
配置完后,我开始把博客迁移过来,EDAS Serverless 中支持Dubbo和原生Spring Cloud之后,我弄了一个简单的架构图:
项目目录图如下,核心框架是 SpringBoot+MyBatis+Dubbo
操作步骤如下:
- 创建了三个命名空间分别为开发、UAT和生产环境
- 创建对应 VPC 网络空间
- 创建应用
- 可以看到我发布的服务和消费的服务
- 为了让项目能够给到大家使用,我设置了应用访问, 就是负载均衡SLB
为了快速的访问一个web-api直接使用公网SLB访问, 但是降低个人使用成本,我选择了私有SLB地址,那么这时候我的服务该怎么访问呢, 这里选取了阿里云API网关,极速和这个弄到一块,这是我的API:
- 在定义API的时候
- VPC_NAME是环境变量
数据这块因为成本原因,我使用的阿里云的容器服务 ,自建的MySQL、Redis和Nacos。
总结
经过实践,我发现EDAS还有自己的轻量级注册中心特性,连注册中心都省掉了,曾经的手动扩容的时代终结了。当然,我觉得EDAS Serverless 还可以更强大,以下是我的建议:
1、应用的版本管理,应用可以支持应用全生命周期管理包含(失败版本自动回滚, 灰度发布等);
2、和云效的整合,自动化到云端,因为这几天因为频繁上传Jar包耗费了很多时间;
3、应用的链路追踪,应用的配置管理、限流等微服务需要有的功能加进来。
以上 3 条建议已被 EDAS 产品和研发团队采纳。