概述
随着业务不断创新,大型的单个应用和服务会被拆分为数个甚至数十个微服务,微服务架构已经被广泛应用。微服务的好处在于快速迭代,迭代过程保障线上流量不受损。依赖开源产品缺少专业运维工具,常常需要投入较大的运维人力和成本。
本实践基于云原生应用产品提供微服务注册配置中心、微服务治理和云原生网关等一系列高性能和高可用的企业级云服务能力。
场景描述
针对已经启用微服务架构或者准备改造为微服务架构的用户,通过实践熟悉云上基于云原生产品的微服务架构实践,熟悉服务注册和网关路由配置、全链路灰度发布、无损上下线、限流降级能力验证等。
方案架构
方案优势
本实践通过云速搭 CADT,一键完成基础环境的搭建和部署,提供可视化部署方案和 step by step 实操指导:
- 高可靠: 支持多可用区容灾,具备完善的流量防护、健康检测、自动恢复等能力,优化大量可用性痛点,保证引擎持久稳定运行。
- 低成本: 节省用户自建网关、注册配置中心、微服务治理体系的人力成本,高性能及高集成度可进一步降低资源成本。
- 易用性: 100% 兼容开源社区产品 Nacos、ZooKeeper 和 Eureka;应用代码、配置、镜像无须修改即可接入微服务治理,体验 MSE 服务治理能力。
- 高度集成: 与阿里云产品体系无缝对接。例如容器服务、日志服务、应用监控、Web 应用防火墙等,为您提供一站式的微服务解决方案。
产品介绍
专有网络(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.2. 网关选型 -
实践架构设计
2.1. 架构图2.2. 核心模块2.3. 基础资源环境规划
- 基础环境搭建
3.1. 基于模版新建环境
- 云产品访问验证
4.1. 确认资源运行情况4.2. 基础环境访问验证
- 验证服务注册与网关路由
5.1. ACK 集群部署应用5.2. 查看服务注册情况5.3. mseprovider 验证5.4. 验证网关流量转发5.4.1. 创建服务5.4.2. 创建路由5.4.3. 验证路由效果
- 全链路灰度能力验证
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.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.1. 升级到企业版8.2. 设置流控规则8.3. 脚本请求和降级效果8.4. 新增熔断规则和接口8.5. 调整慢调用生效8.6. 熔断效果展示9. 一键释放云资源
最佳实践全部内容,请点击此处查看。对方案和产品感兴趣的朋友,可以加入钉钉群交流(群号:31852400)。
往期文章:
云原生最佳实践系列 1:借助云速搭 CADT 如何实现 Kafka 的性能压测?
云原生最佳实践系列2:基于 MSE 云原生网关同城多活