实现IT服务弹性伸缩的利器
随着互联网业务快速持续增长,IT资源使用量按需变化成为常态,这就要求信息部门能快速响应资源使用的变化要求,对运维提出不小挑战。比如电商、在线教育等企业经常推出一些秒杀、抢红包活动,在特定时间段对资源的利用处于高峰期,之后基本处于空闲。
几年前,我们从申请采购到应用部署上线都只能人工操作,需要提前几个月开始规划。如今通过云平台能很好实现资源按需动态管理,运维人员可在云平台上根据实际业务需求申请或释放资源。但申请到虚拟机之后,还是需要按照传统方式从人工部署应用系统,根据工作规范一步步操作,这种方式还是很难应对服务变化快速响应的需求,给运维人员也带来不少的工作量。

所以我们需要从创建虚机到部署应用整个完整链条的自动化能力,当业务量上升时,能自动增加应用服务来满足上升的业务访问量;当业务量下降时,能自动缩减应用服务。以此达到让应用服务具有弹性伸缩的能力,保证应用稳定性和高可用性,同时也起到提升数据中心资源利用率的作用。
Automation具有云基础架构到业务应用的全栈自动化交付能力,可以便携的实现应用服务自动扩缩容,下面我们以优云官网自动扩缩容为例给大家介绍。
一、业务需求分析
优云官网的业务应用架构(如下图)包括负载层、应用层、存储层,目前部署在阿里云上,其中应用层使用微服务化以及无状态设计,支持水平扩展能力。

假如双十二要举办一个互动活动,为了保障业务稳定运行,需要对业务应用层的主机进行监控,当CPU利用率持续大于60%后,自动往集群里增加1台机器,并能自动部署好应用服务上线接入运行。当CPU利用持续小于20%的时候,缩减1台机器。
二、内置操作复用
Automation内置了满足各种运维场景的自动化操作,如云环境管理、数据库中间件管理、应用部署、日常运维等。云环境管理方面提供了阿里云、VMware、OpenStack的支持,优云官网部署在阿里云,所以我们主要使用阿里云管理相关的操作。内置阿里云操作可实现ECS实例的创建、修改、销毁、启停和查询等全生命周期管理,也可以通过平台灵活定义私有操作满足各种运维场景。
扩容场景需使用到阿里云ECS创建、启动、查询操作,实例启动后需自动安装操作Agent,之后安装、启动Tomcat服务、部署应用包以及负载均衡配置和重载生效。

上图为创建“阿里云ECS实例”的操作信息:
1)输入参数:integration_info、vm_conf;
a)integration_info为系统集成配置参数,可通过集成界面配置阿里云服务器地址、AccessKey、SecretKey等信息;
b)vm_conf为实例配置参数,支持区域、网络、安全组、实例类型、镜像等配置,接受JSON格式,如下:

2)输出参数instance_id:指创建后的ECS实例ID,后续操作需使用该ID。
三、场景编排实现
有了操作之后,我们可以将操作串接起来形成满足自动扩容的编排流程。Automation提供可视化的流程编辑器,可按扩容处理步骤一步步添加操作,前一个操作输出参数值可被之后的操作引用,实现数据传递。
以下是自动扩容编排流程,自动缩容更加容易实现。

整个编排执行过程如下:
1)创建阿里云ECS实例:根据系统集成、实例配置信息在阿里云上创建实例并输出实例ID;
2)启动阿里云ECS实例:通过系统集成配置、引用第一步输出实例ID参数信息来启动云上的实例;
3)实例IP查询:通过系统集成配置、引用第一步输出实例ID参数信息来查询云上的实例信息并输出IP地址;
4)安装Agent:根据前面任务的输出信息,在目标虚拟机上安装优云Automation Agent;
5)安装Tomcat:自动下载Tomcat安装包并进行安装,参数信息以及执行主机引用第三步输出IP地址;
6)部署应用包:配置业务应用包、部署目录等参数信息以及执行主机引用第三步输出IP地址来部署应用包到Tomcat服务下;
7)启动Tomcat:根据前面任务的输出参数信息来启动Tomcat服务;
8)负载均衡配置:在前置负载均衡上配置新增转发实例IP地址;
9)负载均衡配置重载:重载负载均衡器以让其生效。
四、自动触发执行
系统支持手工、定时、API三种方式执行编排,其中API支持RESTFul协议,调用时可传递编排参数值。为实现动态自动扩缩容,我们采用优云Monitor进行主机负载监控,当监控到应用服务器CPU负载持续高于60%时,自动调用Automation API的编排执行接口来完成自动扩容,如下图:

调用后作业执行详情如下:

我们可以查看每个任务的执行详情,比如创建阿里云ECS实例:

阿里云上看到的实例信息如下,扩容已经自动完成:

实现IT服务弹性伸缩的利器的更多相关文章
- Windows Azure功能更新:弹性伸缩(autoscale)、监控报警、移动服务及网站服务商用、新的虚拟机镜像
Windows Azure功能又更新了.此次更新包括1项重要更新和两个功能更新: 重要更新:云服务.网站支持按策略进行弹性伸缩 功能更新:两个预览版的服务(网站和移动)进入商用,虚拟机服务支持SQL ...
- 如何实现Docker应用的自定义弹性伸缩
简介 现在有很多客户很关心应用的自动弹性伸缩,有些客户也有自己的监控框架,并希望能跟阿里云容器服务进行集成.阿里云容器服务提供了服务弹性伸缩触发器,并能够跟监控框架集成来实现自定义的服务自动弹性伸缩. ...
- 【Docker】Docker概述、理解docker的集装箱、标准化、隔离的思想、 docker出现解决了什么问题
整理一下 慕课网 第一个docker化的java应用 Docker环境下的前后端分离项目部署与运维 课程时所做的笔记 Docker概述 docker - https://www.docker.com/ ...
- kubernetes 降本增效标准指南|理解弹性,应用弹性
弹性伸缩在云计算领域的简述 弹性伸缩又称自动伸缩,是云计算场景下一种常见的方法,弹性伸缩可以根据服务器上的负载.按一定的规则.进行弹性的扩缩容服务器. 弹性伸缩在不同场景下的含义: 对于服务运行在自建 ...
- 《The Tail At Scale》论文详解
简介 用户体验与软件的流畅程度是呈正相关的,所以对于软件服务提供方来说,保持服务耗时在用户能接受的范围内就是一件必要的事情.但是在大型分布式系统上保持一个稳定的耗时又是一个很大的挑战,这篇文章解析的是 ...
- 上云利器,K8S应用编排设计器之快到极致
前言在前面的文章中,我们已经提到,华为云有一个上云利器:应用编排设计器.作为华为云应用编排服务与用户沟通的桥梁,设计器坚持用户体验至上的理念,以图形化方式,在鼠标点击之间,助力企业快速上云.优质的交互 ...
- Helm, 在Kubernetes中部署应用的利器
一.背景 Kubernetes(k8s)是一个基于容器技术的分布式架构领先方案.它在Docker技术的基础上,为容器化的应用提供部署运行.资源调度.服务发现和动态伸缩等一系列完整功能,提高了大规模容器 ...
- 作为Coder的利器记载
工作近三年,使用PC快六年,拥抱Mac整一年,投具器石榴裙三年.14年第一次被同事推荐Everything,开启了JeffJade对工具的折腾之旅,并乐此不疲.时去两年,这必然是消耗了一些时间,但对效 ...
- CSS3伸缩盒Flexible Box
这是一种全新的布局,在移动端非常实用,IE对此布局的相关的兼容不是很好,Firefox.Chrome.Safrai等需要加浏览器前缀. 先说说这种布局的特点: 1)移动端由于屏幕宽度都不一样,在布局的 ...
随机推荐
- JUC回顾之-线程池的原理和使用
Java并发编程:线程池的使用 Java并发编程:线程池的使用 在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程 ...
- 10046事件sql_trace跟踪
查看 sql 执行计划的方法有许多种, 10046 事件就是其中的一种. 与其他查看 sql 执行计划不同, 当我们遇到比较复杂的 sql 语句, 我们可以通过 10046 跟踪 sql 得到执行计划 ...
- liunx下误删除/var目录下的empty文件,导致ssh连接不上
清理Liunx上不用的文件,导致误删 /var/下的empty文件,因为用的是ftp删的,所以可能有隐藏文件没有看到,导致其他同事都登录不上去 解决方法: 1.在/var文件夹下,重新建立empty文 ...
- plsql developer中,清除登录历史
需求描述: 在使用plsql developer的时候,发现登录的时候,有太多的历史,想要把这些登录历史清除掉, 在此记录下. 操作过程: 1.登录plsql developer(或者在登录时取消也会 ...
- 什么是mysql的元数据呢?
需求描述: 什么是mysql的元数据?metadata? 概念解释: 简单来说:任何描述数据库的数据就是数据库的元数据库(与数据库中存在的内容相对) 比如,用于描述一个冰箱是如何构成,怎么使用的就是冰 ...
- c#接口作为参数传递、返回
接口做为参数传递,传递的是实现了接口的对象: 接口作为类型返回,返回的是实现了接口的对象. 接口的传递与返回就是围绕着上面的两句话展开的.
- 第四章 Spring.Net 如何管理您的类___IObjectPostProcessor接口
官方取名叫 对象后处理器 (object post-processor) , 听起来很高级的样子啊!实际上就是所有实现了这个接口的类,增加了两个方法. Spring.Objects.Factory.C ...
- JBPM4.4_核心概念与相关API
1. 核心概念与相关API(Service API) 1.1. 概念:Process definition, process instance , execution 1.1.1. Process ...
- MySQL<数据库的高级操作>
数据库的高级操作 MySQL提供了一个mysqldump命令,它可以实现数据的备份 数据的备份 1.备份单个数据库 mysqldump -uusername -ppassword dbname [tb ...
- 超全面的JavaWeb笔记day02<CSS&JavaScript>
1.CSS的简介 2.CSS概述和与HTML的结合方式(四种)(*******) 3.CSS的基本选择器(******) 4.CSS的扩展选择器(了解) 5.CSS的盒子模型(了解) 6.CSS的布局 ...