离开APM的弹性云还是真弹性吗
准确来说应该叫脱离业务的弹性云或者容器都是伪弹性。之所以标题中有APM一是因为它近来热门,二是因为它在我将要说的这个事情上起到关键性的作用。
不管是亚马逊的弹性云、容器方案或者国内众多云厂商在自动伸缩的时候所依据的关键指标基本都是硬件资源的利用率,当某一硬件资源利用率达到设定的阀值时会自动进行节点的水平扩展,从而达到所谓的业务服务持续可用。这样看上似乎没有什么问题,比以前的运维方式有很大的改进,从而深受众多运维人员的喜爱。
但这样的自动伸缩来保证服务其实隐含两个前置条件:
1.程序部署到这些云上之前经过充分的性能测试,保证没有软件bottleneck
2.workload基本固定,不会有过多的动态改变导致消耗resource的pattern完全不同
想象下,比如有一个应用没有经过充分的性能测试,退一万步说即使经过很多的测试,仍然有可能在线上出现软件性能问题,那么此时很可能硬件资源的resource并不会达到预定阀值,弹性云不会自动创建更多的节点来保持业务的持续性,但此时终端用户的体验已经很差了,比如响应时间长了。
又比如,在进行测试时,通常会提取先前的业务日志来构建workload模型,这样测试下来可能会做出某个决策说该应用是CPU intensive或者其他啥的。 但很多互联网业务总是在进行调整,有时甚至是营销策划活动都有可能完全改变用户的访问路径,造成workload跟预先测试的完全不一样,消耗resouce的pattern也不一样了。这还不用说很多国内test guys会follow dev们所谓的压力测试,完全就没有量化应用的性能,根据应用性能特征所设定的阀值也就是无稽之谈了。
在随着软件复杂性越来越高,软件所覆盖的场景越来越多的今天,还能满足上面这两个前置条件的应用恐怕不占多数。那么怎么样才能做到真正的弹性伸缩,也就是即使不满足这两个前置条件也能正确的自动伸缩。
前几年团购兴起的时候,经常有报道说某饭店进行团购,结果遇到集中消费,短时间内饭店的营业额是上去了,但是在人满为患的餐厅吃饭的体验想必去过的人都不想再去了,因为人多服务能力有限服务的水准自然就下降了。排队没人理,上一个菜要等半小时才上第二道,说不定因为忙菜里面还额外赠送了高蛋白食物。在服务行业领域,有很多跟服务级别水平相关的,比如酒店,从三星到七星;比如去银行办事,办完了还要给柜台服务人员打星评价。这些都是量化服务的,因为只有去量化服务才能知道服务的水平,才知道以后要不要改善服务。
在软件工程中,我们可以借助于APM来量化我们所要提供出去的服务,实时知道当前的服务水平。我很欣赏SAAS的概念,大部分软件跟普通商品和服务并没有本质上的区别,它们都是为人服务的,我们最应该考虑的是进行服务时,我们的服务水平到底怎么样,低于预期的话能不能马上更正过来。所以在能借助自动水平扩展保证服务的应用中,我们应该根据APM中的定义的SLA来进行自动伸缩,使得终端客户感知到的软件服务水平是一致的。
离开APM的弹性云还是真弹性吗的更多相关文章
- #化鲲为鹏,我有话说# 鲲鹏弹性云服务器配置 Tomcat
在鲲鹏弹性云服务器上配置 Tomcat 1 下载 Tomcat 地址 :http://tomcat.apache.org/ 根据需要选择版本,这里使用 Tomcat 9,下载压缩包 2 将文件发送到服 ...
- 阿里云专有网络与弹性公网IP
阿里云服务器经典网络和专有网络究竟有什么区别? 在用户提交订单购买阿里云ECS云服务器时,会面临怎样选择网络类型的烦恼,阿里云服务器定制购买时,网络类型里的经典网络和专有网络(VPC)是什么含义,该怎 ...
- 【小技巧解决大问题】使用 frp 突破阿里云主机无弹性公网 IP 不能用作 Web 服务器的限制
背景 今年 8 月份左右,打折价买了一个阿里云主机,比平常便宜了 2000 多块.买了之后,本想作为一个博客网站的,毕竟国内的服务器访问肯定快一些.满心欢喜的下单之后,却发现 http 服务,外网怎么 ...
- 云技术:弹性计算ECS
云计算(Cloud Computing)被业界看作继大型计算机.个人计算机.互联网之后的第四次IT产业革命,正日益成为未来互联网与移动技术相结合的一种新兴计算模式.云计算提供了IT基础设施和平台服务的 ...
- 云原生的弹性 AI 训练系列之一:基于 AllReduce 的弹性分布式训练实践
引言 随着模型规模和数据量的不断增大,分布式训练已经成为了工业界主流的 AI 模型训练方式.基于 Kubernetes 的 Kubeflow 项目,能够很好地承载分布式训练的工作负载,业已成为了云原生 ...
- 云原生的弹性 AI 训练系列之二:PyTorch 1.9.0 弹性分布式训练的设计与实现
背景 机器学习工作负载与传统的工作负载相比,一个比较显著的特点是对 GPU 的需求旺盛.在之前的文章中介绍过(https://mp.weixin.qq.com/s/Nasm-cXLtJObjLwLQH ...
- 云原生的弹性 AI 训练系列之三:借助弹性伸缩的 Jupyter Notebook,大幅提高 GPU 利用率
Jupyter Notebooks 在 Kubernetes 上部署往往需要绑定一张 GPU,而大多数时候 GPU 并没有被使用,因此利用率低下.为了解决这一问题,我们开源了 elastic-jupy ...
- CSS3总结五:弹性盒子(flex)、弹性盒子布局
弹性盒子容器的属性与应用 display:flex/inline-flex flex-direction flex-wrap justify-content align-items align-con ...
- EBS描述性弹性域及键弹性域总结
一.描述性弹性域 前言介绍: 描述性弹性域的实质就是系统预留自定字段,系统可以使用说明性弹性域来获取业务所特有的重要附加信息.系统可能自定义说明性弹性域,以显示存储更多信息的字段,提供一套完整的“自定 ...
随机推荐
- linux初级学习笔记九:linux I/O管理,重定向及管道!(视频序号:04_3)
本节学习的命令:tr,tee,wc 本节学习的技能: 计算机的组成 I/O管理及重定向 管道的使用 知识点九:管理及IO重定向(4_3) 计算机组成: 运算器.控制器: CPU 存储器:RAM ...
- open调用过程
1. 首先传到vfs的do_sys_open,在open.c中. long do_sys_open(int dfd, const char __user *filename, int flags, u ...
- fuse的write过程到底是怎么样的,128KB的buffer怎么用?
1. 在fuse/lib/fuse_kern_chan.c中有一个buffer设置 #define MIN_BUFSIZE 0x21000 //十进制132×1024 //为何不是128? 下面有一 ...
- 利用PyCharm的Profile工具进行Python性能分析
Profile:PyCharm提供了性能分析工具Run->Profile,如下图所示.利用Profile工具可以对代码进行性能分析,找出瓶颈所在. 测试:下面以一段测试代码来说明如何使用pych ...
- http基础知识摘录
HTTP是一个基于请求/响应模式的,无状态的协议 (只有客户端发送请求服务器才会响应,否则服务器不会主动发送信息的,无状态指客户端发过来一个请求服务端给你发回一个响应,接着你再去发送一个请求,服务器根 ...
- codeforces round 422 div2 补题 CF 822 A-F
A I'm bored with life 水题 #include<bits/stdc++.h> using namespace std; typedef long long int LL ...
- bzoj4773
矩阵乘法 ...爆零了... 想到Floyd,却不知道怎么限制点数... 其实我们只要给Floyd加一维,dp[i][j][k]表示当前走过了i个点,从j到k的最短距离,然后这样可以倍增,最后看是否有 ...
- qq截图原理
屏幕截图实现的大体思想是:发起截图时,将当前窗口的图像保存到内存中,然后弹出一个置顶的全屏窗口,将保存的桌面图片绘制到这个全屏窗口上:初始时绘制的是灰化的桌面图像,选择截图区域后,则将选中的区域绘制成 ...
- Spring boot 启动报错:com.mongodb.MongoSocketOpenException: Exception opening socket
详细错误信息: com.mongodb.MongoSocketOpenException: Exception opening socket at com.mongodb.connection.Soc ...
- hihocoder 1584 Bounce(找规律)
传送门 题意 略 分析 我们观察几张图 发现菱形的边长为n-1和m-1的公约数 将图简化一下 接下来我们计算只经过一次的点,分成两类 1.与边相交 num1=x+y 2.未与边相交,在菱形内 num2 ...