首页 > 其他分享 >阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计

时间:2023-04-22 17:36:34浏览次数:44  
标签:架构设计 负载 伸缩 运维 弹性 点击 实例 ECS 均衡

实验概述

本实验会自动创建2台部署了云监控插件的ECS实例。首先,配置负载均衡实例的监听配置,创建ECS实例的自定义镜像。然后,在创建弹性伸缩服务,配置报警任务,将已创建的ECS实例加入伸缩组和负载均衡实例后端。最后,增加ECS的CPU使用率达到100%,通过弹性伸缩服务,自动新建ECS实例并添加到负载均衡实例后端。

 

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_云监控

实验目标

完成此实验后,可以掌握的能力有:

1. 创建弹性伸缩组;

2. 创建报警任务;在CPU达到指定范围时,自动弹出ECS实例;

3. 弹性伸缩服务与负载均衡服务和云监控的结合应用。

视频公司,游戏公司,电商公司,经常会遇到如下的场景:

  • 节假日热门节目,播放点击率很高;
  • 在商品特卖,或者促销活动中,大量客户访问量,无法预估业务负载情况;
  • 游戏公测期间,无法预估客户访问量;

面对如上的场景,需要一个可以根据用户的业务需求,自动调整其弹性资源的管理服务。在业务需求高峰期增长时,无需停止服务,无缝的增加计算资源。在业务量下降时,可以自动减少计算资源,从而节约成本。

阿里云提供弹性伸缩服务,该产品可以对根据客户的业务需求,对ECS实例进行增减。用户无需提前预估业务高峰期,或者突增的业务访问量,就可以自动的分配资源。

关于阿里云的弹性伸缩服务,其涉及的术语如下:

  • 伸缩组:具有相同应用场景的ECS实例的集合。伸缩组定义了组内ECS实例数的最大值,最小值及其相关的SLB和RDS实例等属性;
  • 伸缩配置:定义了弹性伸缩的ECS实例的配置信息;
  • 伸缩规则:定义了具体的扩展或收缩操作,例如:移入或移出N个ECS实例;
  •  伸缩活动:伸缩规则成功出发后,就会产生一条伸缩活动。伸缩活动主要描述伸缩组内ECS实例的变化情况;
  • 伸缩触发任务:用于触发伸缩规则的任务,如定时任务,云监控的报警任务;
  • 冷却时间:在同一伸缩组内,一个伸缩活动执行完成后的一段锁定时间。在这段锁定时间,该伸缩组不执行其他的伸缩活动。

实验实施

2.1 实验资源

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_管理控制_02

2.2 配置负载均衡服务

1.     正式生产环境中,一般会在使用负载均衡实例后端挂载两台或多台ECS实例。用户通过负载均衡的轮询功能,将请求分发到后端不同的ECS实例中。但是当负载均衡实例后端的ECS实例负载过大的时候,可以结合弹性伸缩服务,自动在负载均衡实例后端添加ECS实例数目。 

输入资源提供的“子用户名称”和“子用户密码”登录。

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_管理控制_03

2.登录到界面

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_云监控_04

3.     进入阿里云管理控制台,点击页面左上角的“产品与服务”,弹出下拉列表。依次选择“云计算基础服务”,“弹性计算”,“负载均衡”。进入负载均衡访问页面。

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_负载均衡_05

4.     在负载均衡的实例管理页面,顶层“地域”栏中,选择沙箱提供的“负载均衡”实例的所在的“地域”。在主界面,可以查看到一台通过平台创建的负载均衡实例。点击负载均衡实例右侧“操作”栏中的“管理”,进入此负载均衡实例的管理页面。

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_负载均衡_06

5.     首先,配置负载均衡实例的监听规则。点击左侧栏中的“监听”,当前没有任何监听配置。点击右上角的“添加监听”,为实例创建一个新的监听配置。

说明:若负载均衡实例没有添加监听配置,则此弹性伸缩服务将无法与该负载均衡实例一起使用。

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_管理控制_07

6.    在弹出添加监听配置的对话框中,配置如下内容:

1) 后端协议[端口]:“HTTP”;80

2) 开启监听带宽限速:输入 1 M

其余为默认选项,完成点击“下一步”。

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_管理控制_08

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_负载均衡_09

后端服务器中选择默认服务器组,点击继续添加,选择平台创建好的ECS实例,配置端口:80   权重:50,完成监听配置。

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_管理控制_10

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_负载均衡_11

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_负载均衡_12

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_管理控制_13

健康检查的状态设为“开启”,其余保持默认值就可以。完成后,点击“下一步”。

说明:如果在弹性伸缩服务的伸缩组中,指定负载均衡服务,伸缩组会自动将伸缩组的ECS实例添加到指定的负载均衡实例当中。指定的负载均衡实例必须开启健康检查,否则会导致创建失败,同时加入负载均衡的ECS实例的权重默认设置为50。

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_负载均衡_14

7.     提示“创建成功”,点击“确认”,关闭对话框。

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_管理控制_15

当前监听配置的页面,新建一条状态为“运行中”的监听规则。

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_管理控制_16

8.     至此,已完成负载均衡实例的基本配置。

2.3 配置弹性伸缩服务

1.     本实验使用阿里云提供的“整体方案创建管理”的功能,该功能通过向导模式,创建整体伸缩方案。创建完整的弹性伸缩方案,需要通过如下4步完成:创建伸缩组;创建伸缩配置;添加已有ECS实例;创建报警任务。

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_负载均衡_17

2.     点击页面顶部的“产品与服务”,在弹出的服务列表中,依次选择“弹性计算”,“弹性伸缩”服务。进入弹性伸缩服务管理控制台。

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_云监控_18

3.     若弹性伸缩服务ESS管理控制台显示“尚未开通”,则点击“开通弹性伸缩”。若已开通,则忽略此步骤,直接进行实验下一步。

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_云监控_19

    弹出开通页面,点击“立即开通”。

 

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_云监控_20

提示开通成功后,点击“管理控制台”,返回弹性伸缩服务ESS管理控制台。

4.     在弹性伸缩管理控制台中,点击左侧栏的“整体方案创建管理”。首先,创建伸缩组。配置伸缩组的基本信息如下:

地域:选择ECS实例所在“地域”;

伸缩组名称:lab012-group;若已存在此伸缩组,请用户自定义一个伸缩组

伸缩最大实例数(台):2;
伸缩最小实例数(台):0;

默认冷却时间(秒):0;

网络类型:专有网络,专有网络和虚拟交换机选择提供的选项
负载均衡:选择本实验提供的负载均衡实例。

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_管理控制_21

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_云监控_22

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_负载均衡_23

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_管理控制_24

完成以上配置,点击提交。

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_负载均衡_25


  1. 回到伸缩组页面,点击伸缩组id,点击左侧栏中的组内实例配置信息来源,可以查看到已经创建好的伸缩配置。

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_云监控_26

点击ECS实例列表,选择手动创建,点击“添加已有实例”,选择实例后然后点击“>”。ECS实例移动到“已选择的ECS实例”列表中,完成后,点击“确定”。

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_负载均衡_27

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_管理控制_28

此时,返回伸缩组页面看到总实例数为1。下面点击创建伸缩规则。

在弹出的对话框中,“规则名称”为“lab012-rule”,“规则”调整到“2”台。完成后,点击“创建伸缩规则”

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_负载均衡_29

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_管理控制_30

创建完成后,可以在伸缩规则列表查看创建完成的伸缩规则。

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_管理控制_31

7.     在添加自动触发任务时,选择“报警任务”,然后点击“创建报警任务”。

任务名称:lab012-warning;

统计办法:平均值,>=,80%;

重复几次后报警:1次;

报警触发规则:lab012-rule;

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_云监控_32

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_云监控_33

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_管理控制_34

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_管理控制_35

注意:若弹性伸缩服务使用报警任务,则伸缩组中的ECS实例必须安装云监控旧版的插件。否则,报警任务不可用,本实验中使用的ECS实例系统均已安装云监控旧版插件。

8.     查看当前伸缩组中的总实例数为1。证明已添加沙箱平台创建的ECS实例到该伸缩组。

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_负载均衡_36

        至此,已完成弹性伸缩服务的所有配置。下一小节中,开始增加ECS实例的CPU使用率,并验证当CPU的使用率超过80%的时候,弹性伸缩服务会自动添加一台相同配置的ECS实例到负载均衡实例的后端。

2.4 基于CPU利用率自动调整弹性计算资源

1.     通过stress压测的方式,增加ECS实例的CPU使用率,达到100%,模拟真实工作中,ECS实例的负载增大的情况。

2.     安装云监控 Agent。使用本实验提供的ECS服务器的“弹性IP” ,“用户”和“密码”,远程登录到ECS服务器。然后执行以下命令,在 ECS 的镜像里安装新版本的云监控 Agent 。参考下面表格按 实验资源 提供的 地域 相对应地修改 xxxxx 处的值。

注意:在使用报警任务之前,需要在 ECS 的镜像里安装新版本的云监控 Agent 。

进行安装:

sudo bash -c "wget -e 'http_proxy=xxxxxx.aliyun.com:3128' -O /tmp/cloudmonitor.tar.gz 'http://cms-download.aliyun.com/release/1.1.24/linux64/agent-linux64-1.1.24-package.tar.gz' && \
mkdir /usr/local/cloudmonitor && \
tar -xf  /tmp/cloudmonitor.tar.gz -C /usr/local/cloudmonitor && \
/usr/local/cloudmonitor/wrapper/bin/cloudmonitor.sh install && \
/usr/local/cloudmonitor/wrapper/bin/cloudmonitor.sh start"

 xxxxx

 地域

 bjcmsproxy

 华北2(北京)

 hzcmsproxy

 华东1(杭州)

 qdcmsproxy

 华北1(青岛)   

 szcmsproxy

 华南1(深圳)

 shcmsproxy

 华东2(上海)


阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_管理控制_37

4.     返回浏览器的弹性伸缩管理页面,点击左侧栏的“自动触发任务管理”,在下拉表中,点击“报警任务”。等待1-2分钟后,可以看到报警任务的状态从“正常”变为“报警”。点击右侧操作栏中的“查看详情”。进入报警任务的管理页面。

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_负载均衡_38

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_管理控制_39

查看ECS实例,在大约有3分钟左右的时间CPU使用率超过“80%”。

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_云监控_40

5.     点击左侧栏中的“伸缩组管理”,当前伸缩组的“总实例数目”变为“2”个。证明已添加一台新的ECS实例到伸缩组。点击“管理”,进入伸缩组的管理页面。

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_云监控_41

    在伸缩组的管理页面中,点击左侧栏的“伸缩活动”,查看到当前有两条伸缩活动:点击第一条伸缩活动右侧的“查看详情”,查看到伸缩活动的详细信息,通过报警任务添加一台ECS实例到伸缩组。

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_云监控_42

6.     现在,查看新添加到伸缩组的ECS实例自动加入负载均衡实例后端。点击页面顶部的“产品与服务”,在弹出下拉菜单中,点击“网络”下的“负载均衡”。进入负载均衡控制管理页面。

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_管理控制_43

点击负载均衡实例右侧的“管理”,进入实例管理页面。

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_管理控制_44

点击“默认服务器组”,查看当前实例负载均衡实例后端,有2台ECS实例,其中用“ESS-”命名的实例为通过弹性伸缩服务添加的ECS实例。

阿里云1+X云计算开发与运维实战——使用云监控和弹性伸缩实现弹性架构设计_负载均衡_45

7.     至此,已成功使用云监控对ECS实例的CPU进行监控,当CPU使用率过高的时候,通过弹性伸缩服务自动添加一台ECS实例,并添加到SLB后端,无需人工操作。

标签:架构设计,负载,伸缩,运维,弹性,点击,实例,ECS,均衡
From: https://blog.51cto.com/lyx888/6215407

相关文章

  • SRE接手新业务首要工作:运维准入测试
    如果接手的是一坨随时可能散架的破车,就算SRE有通天之能,也很难通过运维手段给变成布加迪威龙。接手的时候一定要做好准入测试!很多公司会有运维准入规范,但是通常缺少运维准入测试,导致了后续诸多背锅问题。前言你可能会遇到下面的问题:告诉研发做架构设计的时候要叫上运维做review,研发......
  • 阿里云1+X云计算开发与运维实战—— 使用负载均衡实现https与http的混合访问
    实验概述    互联网巨头雅虎官方对外发布消息,承认在2014年的一次黑客袭击中,至少5亿用户的数据信息遭窃。此次事件让我们再次意识到网站安全的重要性,网站加密防护的必要性。我们可以使用HTTPS协议对网站进行全站加密,但是,大部分用户已经习惯直接输入域名(即使用 HTTP 协议)访问网......
  • 阿里云1+X云计算开发与运维实战——负载均衡使用初体验
    本实验通过使用阿里云负载均衡SLB以及对负载均衡SLB后端服务器ECS的权重进行修改,可以快速解决上述的问题。实验目标 完成此实验后,可以掌握的能力有:配置负载均衡SLB的监听规则,并将ECS实例部署到SLB后端;通过设置负载均衡SLB后端服务器ECS的权重值,分配用户访问后端ECS实例的比例。背景......
  • K8s 日志高效查看神器,提升运维效率10倍!
    通常情况下,在部署了 K8S 服务之后,为了更好地监控服务的运行情况,都会接入对应的日志系统来进行检测和分析,比如常见的 Filebeat+ElasticSearch+Kibana 这一套组合来完成。虽然该组合可以满足我们对于服务监控的要求,但是如果只是部署一个内部单服务用的话,未免显得大材小用,而且......
  • 一文搞定接口幂等性架构设计方案
    幂等性介绍现如今很多系统都会基于分布式或微服务思想完成对系统的架构设计。那么在这一个系统中,就会存在若干个微服务,而且服务间也会产生相互通信调用。那么既然产生了服务调用,就必然会存在服务调用延迟或失败的问题。当出现这种问题,服务端会进行重试等操作或客户端有可能会进行......
  • 19 18 | 架构设计,专业分工和协作精神的体现
    你好,我是乔新亮。今天,我想和你聊聊,关于架构设计的一些认知和体会。作为技术人,最常接触的概念,恐怕就是架构设计了。即便是初出茅庐的新手程序员,可能也听说过6大设计原则与23种设计模式。因为,要成为管理者或技术专家,架构设计绝对是你绕不开的槛。因此,关于架构设计的书和课程非......
  • 从小米小爱业务中来到其他业务中去——AiFault运维中台设计实践
    “ AiFault是我们AIoTSRE团队研发的插件化智能应用运维中台,从0到1孵化自小爱一线运维实战,旨在用DevOps思想和工具化思维,系统全面的解决应用运维的各种问题,目标是能够承载一套完整的运维体系,最终实现一站式智能运维。”生产力决定生产关系,到某个阶段,生产力要继续提升,就必须改变......
  • SRE从CMDB到SMDB的自动化探索演进——面向服务的运维
    SRE和系统运维的最大区别,我认为SRE得在系统运维的基础上研究业务,研究系统架构、产品架构,SRE面向的是用户稳定性。大型互联网系统,模块多、依赖关系和运行环境复杂,如果不了解系统架构,在出现问题时基本就是抓瞎的,不知道服务的功能,不知道到故障后对用户的影响,不知道出了问题后查哪些......
  • 一种面向后端的微服务低代码平台架构设计
    作者:京东科技 常姜洲一、背景近期参加公司组织的极客中餐厅训练营,我们所在的小组接到的课题是微服务的低代码平台架构设计。目标是:结合京东业务研发实际情况,针对后端研发人员,设计一个微服务低代码平台,助力更高效低交付业务需求。现已结业,将我在本次项目中沉淀设计出的设计文档整理......
  • Puppeteer+RabbitMQ:Node.js 批量加工pdf服务架构设计与落地
    全文约8500字,阅读时长约10分钟。智慧作业最近上线「个性化手册」(简称个册)功能,一份完整的个性化手册分为三部分:•学情分析:根据学生阶段性的学习和考试情况进行学情分析、归纳、总结,汇总学情数据;•精准推荐:推荐算法基于学情数据结合知识图谱进行精准练习题推荐;•错题回顾:错题的......