随着业务不断创新,大型的单个应用和服务会被拆分为数个甚至数十个微服务,微服务架构已经被广泛应用。微服务的好处在于快速迭代,迭代过程保障线上流量不受损。依赖开源产品缺少专业运维工具,常常需要投入较大的运维人力和成本。
本实践基于云原生应用产品提供微服务注册配置中心、微服务治理和云原生网关等一系列高性能和高可用的企业级云服务能力。
针对已经启用微服务架构或者准备改造为微服务架构的用户,通过实践熟悉云上基于云原生产品的微服务架构实践,熟悉服务注册和网关路由配置、全链路灰度发布、无损上下线、限流降级能力验证等。
本实践通过云速搭 CADT,一键完成基础环境的搭建和部署,提供可视化部署方案和 step by step 实操指导:
专有网络(Virtual Private Cloud,简称 VPC)帮助您基于阿里云构建一个逻辑隔离的云上数据中心。专有网络由逻辑网络设备(如虚拟路由器,虚拟交换机)组成,可以通过专线/VPN 等连接方式与传统数据中心组成一个按需定制的网络环境,实现应用的平滑迁移上云。
微服务引擎 MSE(Microservice Engine)是面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka)、云原生网关(原生支持 Higress/Nginx/Envoy,遵循 Ingress 标准)、微服务治理和分布式任务调度能力(兼容开源 XXL-JOB/ElasticJob/K8sJob/Spring Schedule)。
容器服务 Kubernetes 版(简称 ACK)提供高性能且可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。在 2021 年,ACK 成为国内唯一连续三年入选 Gartner 公共云容器报告的产品,同时在 2022 年成为国内唯一进入 Forrester 领导者象限的产品。ACK 整合了阿里云的虚拟化、存储、网络和安全能力,助力企业高效运行云端 Kubernetes 容器化应用。
云消息队列 MQ(RocketMQ)是构建分布式互联网应用的基础设施,通过 MQ 实现的松耦合架构设计可以提高系统可用性以及可扩展性,是适用于现代应用的优秀设计方案。MQ 产品生态丰富,多个子产品线联合打造金融级高可用消息服务以及对物联网的原生支持,覆盖金融保险、(新)零售、物联网、移动互联网、教育、物流、能源、交通等行业。
弹性公网 IP 是独立的公网 IP 资源,可与阿里云专有网络 VPC 类型的云服务器 ECS、NAT 网关、ENI 网卡、私网负载均衡 SLB 绑定,并可以动态解绑满足灵活管理的要求。弹性公网 IP 可为您在云上部署的网站提供 Internet 访问服务。
NAT 网关(NAT Gateway)提供公网 NAT 和私网 NAT 两种功能。公网 NAT 网关通过自定义 SNAT、DNAT 规则可为云上服务器提供对外公网服务、及主动访问公网能力;私网 NAT 网关(也即 VPC NAT 网关)可使 VPC 内的 ECS 实例通过私网地址转换服务,实现 VPC 与 VPC 之间、及 VPC 与线下 IDC 互访能力。
云速搭 CADT ( Cloud Architect Design Tools)是一款为上云应用提供自助式云架构管理的产品,显著地降低应用云上管理的难度和时间成本。本产品提供丰富的预制应用架构模板,同时也支持自助拖拽方式定义应用云上架构,用户可以方便地对云上架构方案的成本、部署、运维、回收进行全生命周期的管理。
在进行本文操作之前,您需要完成以下准备工作:
1)注册阿里云账号,并完成实名认证。您可以登录阿里云控制台,并前往实名认证页面(https://account.console.aliyun.com/v2/#/authc/home)查看是否完成实名认证。
2)购买按量付费资源,阿里云账户余额需要大于 100 元。考虑到部署后每小时会产生费用,建议账号内余额或者代金卷金额大于 200 元。您可以登录阿里云控制台,前往账户总览页面(https://usercenter2.aliyun.com/home)查看账户余额。
1. 关键技术
1.1. 治理趋势
1.2. 网关选型
2. 实践架构设计
2.1. 架构图
2.2. 核心模块
2.3. 基础资源环境规划
3. 基础环境搭建
3.1. 基于模版新建环境
4. 云产品访问验证
4.1. 确认资源运行情况
4.2. 基础环境访问验证
5. 验证服务注册与网关路由
5.1. ACK 集群部署应用
5.2. 查看服务注册情况
5.3. mseprovider 验证
5.4. 验证网关流量转发
5.4.1. 创建服务
5.4.2. 创建路由
5.4.3. 验证路由效果
6. 全链路灰度能力验证
6.1. ACK 应用接入 MSE 治理中心
6.2. ACK 中应用添加灰度标
6.3. 实现同步调用全链路灰度
6.3.1. 设置服务版本
6.3.2. 核对基线版本路由
6.3.3. 创建全链路灰度泳道组
6.3.4. 创建分流泳道
6.3.5. 效果演示
6.4. 实现异步消息全链路灰度
6.4.1. 开启异步消息全链路灰度
6.4.2. 核对 MQ 的过滤条件
7. 无损上下线验证
7.1. 无损下线能力验证
7.1.1. 手动关闭无损下线
7.1.2. 通过脚本发起请求
7.1.3. 流量损失对比验证
7.2. 无损上线能力验证
7.2.1. 配置定时伸缩
7.2.2. 配置无损上线
7.2.3. 通过脚本发起请求
7.2.4. 观察预热曲线
8. 限流降级验证
8.1. 升级到企业版
8.2. 设置流控规则
8.3. 脚本请求和降级效果
8.4. 新增熔断规则和接口
8.5. 调整慢调用生效
8.6. 熔断效果展示
9. 一键释放云资源
最佳实践全部内容,请点击下方链接查看。对方案和产品感兴趣的朋友,可以加入钉钉群交流(群号:31852400)。
https://developer.aliyun.com/cloudnative/
往期文章:
云原生最佳实践系列 1:借助云速搭 CADT 如何实现 Kafka 的性能压测?
云原生最佳实践系列2:基于 MSE 云原生网关同城多活