当前位置: 首页 > news >正文

云原生最佳实践系列 4:基于 MSE 和 SAE 的微服务部署与压测

方案概述

云原生应用平台为基于 Spring Cloud / Dubbo 开发的微服务应用提供了完善的能力支撑,例如服务注册发现、Serverless 无服务部署、实例弹性伸缩、微服务链路跟踪、全链路压力测试等,应用能够方便快捷的部署在阿里云上。

阿里云原生产品完全兼容 Spring Cloud 框架的主流版本,监控能力通过探针方式采集运行时数据,对业务代码无侵入。

应用场景

借助云原生产品 MSE、SAE、ARMS、PTS,提供一个经典微服务场景上云的步骤,体现云原生相关产品在微服务应用上云过程中,解决无服务化部署、微服务注册、微服务监控、微服务测试的能力。本实践中使用的 Spring Cloud 微服务 A、B、C,之间的调用关系为 A 调用 B,B 调用 C。此调用关系在 2.8 章节、4.2 章节可以查看。

主要步骤:

  1. CADT 一键完成微服务应用环境创建

  2. 配置使用独立 MSE 注册配置中心

  3. SAE 无服务化部署

  4. 展示 ARMS 基础监控能力

  5. 通过 PTS 压测,展示 SAE 弹性能力

部署架构

图片

架构说明

  • 1 个 MSE 注册配置中心
  • 3 个 SAE 应用
  • 1 个 EIP
  • 1 个 SLB
  • ARMS 资源开通
  • PTS 基础资源包

产品介绍

专有网络 VPC(Virtual Private Cloud) 是用户基于阿里云创建的自定义私有网络, 不同的专有网络之间二层逻辑隔离,用户可以在自己创建的专有网络内创建和管理云产品实例,比如 ECS、负载均衡、RDS 等。

弹性公网 IP: 弹性公网 IP 是独立的公网 IP 资源,可与阿里云专有网络 VPC 类型的云服务器 ECS、NAT 网关、ENI 网卡、私网负载均衡 SLB 绑定,并可以动态解绑满足灵活管理的要求。弹性公网 IP 可为您在云上部署的网站提供 Internet 访问服务。

微服务引擎 MSE: 微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka)、云原生网关(原生支持 Higress/Nginx/Envoy,遵循 Ingress 标准)、微服务治理和分布式任务调度能力(兼容开源 XXL-JOB/ElasticJob/K8s Job/Spring Schedule)。

Serverless 应用引擎 SAE(Serverless App Engine): 零代码改造、极简易用、自适应弹性的应用全托管平台。SAE 让您免运维 IaaS 和 K8s,秒级完成从源代码/代码包/ Docker 镜像部署任何语言的在线应用(如 Web/微服务/Job 任务)到 SAE,并自动伸缩实例按使用量计费,开箱即用日志、监控、负载均衡等配套能力。

ARMS 应用监控: 是一款应用性能管理(Application Performance Management,简称 APM)产品。您无需修改代码,只需为应用安装一个探针,ARMS 就能够对应用进行全方位监控,帮助您全面掌控应用运行状态,快速定位出错接口和慢接口,洞察性能瓶颈,重现调用参数,从而大幅提升线上问题诊断的效率。

性能测试服务 PTS: 作为性能测试工具,性能测试 PTS 支持按需发起压测任务,可提供百万并发、千万 TPS 流量发起能力,100% 兼容 JMeter。提供的场景编排、API 调试、流量定制、流量录制等功能,可快速创建业务压测脚本,精准模拟不同量级用户访问业务系统,帮助业务快速提升系统性能和稳定性。

云速搭 CADT(Cloud Architect Design Tools): 是一款为上云应用提供自助式云架构管理的产品,显著地降低应用云上管理的难度和时间成本。本产品提供丰富的预制应用架构模板,同时也支持自助拖拽方式定义应用云上架构;支持较多阿里云服务的配置和管理。用户可以方便的对云上架构方案的成本、部署、运维、回收进行全生命周期的管理。

前置条件

在进行本文操作之前,您需要完成以下准备工作:

1)注册阿里云账号,并完成实名认证。您可以登录阿里云控制台,并前往实名认证页面 (https://account.console.aliyun.com/v2/#/authc/home) 查看是否完成实名认证。

2)购买按量付费资源,阿里云账户余额需要大于 100 元。考虑到部署后每小时会产生费用,建议账号内余额或者代金卷金额大于 200 元。您可以登录阿里云控制台,前往账户总览页面 (https://usercenter2.aliyun.com/home) 查看账户余额。

操作步骤

本实践可通过 CADT 官方模板快速拉起演示环境。

  1. 基础环境搭建

  2. 微服务注册到 MSE

2.1. 获取 mse 实例地址

2.2. 修改 A 应用注册

2.3. 修改 B 应用注册

2.4. 修改 C 应用注册

2.5. 开启应用监控

2.6. 挂载 CLB

2.7. 查看 eip 地址

2.8. 访问应用

  1. 通过压测展示 SAE 弹性

3.1. 创建 A 应用弹性规则

3.2. 创建 PTS 压测场景

3.3. 执行压测

3.4. 查看 A 应用扩容状态

3.5. 查看 A 应用缩容状态

3.6. 查看 A 应用指标

  1. 应用监控验证

4.1. 查看 A 应用监控大盘

4.2. 查看应用调用链

  1. 一键释放资源

最佳实践全部内容,请点击此处查看。对方案和产品感兴趣的朋友,可以加入钉钉群交流(群号:31852400)。

往期文章:

云原生最佳实践系列 1:借助云速搭 CADT 如何实现 Kafka 的性能压测?

云原生最佳实践系列2:基于 MSE 云原生网关同城多活

云原生最佳实践系列 3:基于 SpringCloud 应用玩转 MSE

相关文章:

  • 你的 Python 代码需要解释一下了!
  • ideaSSM 人才引进管理系统bootstrap开发mysql数据库web结构java编程计算机网页源码maven项目
  • 医院同步时钟系统的耐用性与可靠性
  • 【数据分享】1929-2023年全球站点的逐日平均海平面压力(Shp\Excel\免费获取)
  • git提交和回退
  • 【前端】Layui的表格常用功能,表单提交事件,表格下拉按钮点击事件,表格外的按钮点击事件
  • dfs (蓝桥备赛)
  • 01.ArcEngine中IField的属性详细描述
  • 程序员也写歌啦
  • 什么是数据湖
  • what is apache?
  • 判断互逆字符串
  • 分享多种mfc100u.dll丢失的解决方法(一键修复DLL丢失的方法)
  • LangChain核心模块 Model I/O——Prompts
  • 深度学习:基于PyTorch的模型解释工具Captum
  • [iOS]Core Data浅析一 -- 启用Core Data
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • 【知识碎片】第三方登录弹窗效果
  • Android单元测试 - 几个重要问题
  • ES6系列(二)变量的解构赋值
  • input的行数自动增减
  • SpiderData 2019年2月16日 DApp数据排行榜
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • Swoft 源码剖析 - 代码自动更新机制
  • webpack4 一点通
  • 观察者模式实现非直接耦合
  • 简单数学运算程序(不定期更新)
  • 判断客户端类型,Android,iOS,PC
  • 双管齐下,VMware的容器新战略
  • 算法-插入排序
  • 问题之ssh中Host key verification failed的解决
  • 优秀架构师必须掌握的架构思维
  • 怎么将电脑中的声音录制成WAV格式
  • mysql面试题分组并合并列
  • 带你开发类似Pokemon Go的AR游戏
  • !!Dom4j 学习笔记
  • ###项目技术发展史
  • #QT(一种朴素的计算器实现方法)
  • (3)选择元素——(17)练习(Exercises)
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测
  • (poj1.3.2)1791(构造法模拟)
  • (二)c52学习之旅-简单了解单片机
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (黑马C++)L06 重载与继承
  • (三)终结任务
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (十一)手动添加用户和文件的特殊权限
  • (已解决)什么是vue导航守卫
  • .bashrc在哪里,alias妙用
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .net framework profiles /.net framework 配置
  • .net 程序 换成 java,NET程序员如何转行为J2EE之java基础上(9)
  • .net 打包工具_pyinstaller打包的exe太大?你需要站在巨人的肩膀上-VC++才是王道
  • .NET/C# 项目如何优雅地设置条件编译符号?