离开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描述性弹性域及键弹性域总结
一.描述性弹性域 前言介绍: 描述性弹性域的实质就是系统预留自定字段,系统可以使用说明性弹性域来获取业务所特有的重要附加信息.系统可能自定义说明性弹性域,以显示存储更多信息的字段,提供一套完整的“自定 ...
随机推荐
- IntelliJ IDEA 2017 反向代理工具新方法激活
来源:http://blog.lanyus.com/archives/317.html 反向代理工具, 可用于激活JRebel (win64) 1.点击进入 https://github.com/i ...
- magento导入数据的方法
导入演示数据 分两种情况处理. 如果你是用composer方式安装的 非常简单,二行命令搞定:在项目根目录下执行.我们的是在/var/www/magento2/下面. 安装演示数据 php bin/m ...
- python中optparse模块用法
optparse模块主要用来为脚本传递命令参数,采用预先定义好的选项来解析命令行参数. 首先需要引入optparser模块,然后执行初始化,实例化一个OptionParser对象(可以带参,也可以不带 ...
- 跨平台实现zip压缩加密功能
使用zlib将文件夹压缩成zip文件时,需要自己读取文件然后写入zip文件.利用官方下载的zlib包中包含的contrib/minizip/zip.h和zip.c代码提供的函数,可以很容易实现这个功能 ...
- I.MX6 Parallel RGB LCD Datasheet描述
/******************************************************************** * I.MX6 Parallel RGB LCD Datas ...
- codeforces round 421 div2 补题 CF 820 A-E
A Mister B and Book Reading O(n)暴力即可 #include<bits/stdc++.h> using namespace std; typedef lon ...
- linux部署web项目到tomcat下(图文详解)
大家好,相信不少初学者不知道如何将windows eclipse下开发的web项目部署到linux系统的tomcat下,今天我将图文并茂教大家 首先呢,比如我新建一个web项目,打开eclipse编辑 ...
- cocos2d-x 坐标系解惑
1.CCTouch* touch->getLocation() ---- 返回当前触摸点在openGL坐标系中的位置 openGL坐标系,原点在左下角,x向右为正,y向上为正. 2.CCTouc ...
- iOS后台模式BackgroundMode
概述 iOS平台提供给应用特殊的后台服务,应用在后台时仍被允许能执行一会. 后台模式 UIBackgroundModes Xcode Modes 1. audio -> Audio.Airpla ...
- poj2229【完全背包-规律Orz...】
挑战DP 题意: 被组合数只能是2的整数幂,然后给出一个数问有多少种组合(mod1e10): 思路: 完全背包做啊-还是蛮简单的-(这里取膜要改成加法,省时间-) dp[i]代表对于j的方案数 贴一发 ...