离线计算成本节省的神兵利器

news/2024/7/8 1:49:41

摘要: 对于创业成长型的企业来说,离线计算已经必不可少了,通过离线计算我们可以生成复杂的业务报表,通过离线计算我们也能精确的算出用户画像。离线计算已经当今的企业中成为了不可或缺的存在。那么使用弹性计算能够对离线计算领域带来什么好处呢?本文将介绍如何使用弹性计算节省企业离线计算成本。

背景

对于目前创业成长型的企业来说,离线计算已经必不可少了,通过离线计算我们可以生成复杂的业务报表,通过离线计算我们也能精确的算出用户画像。离线计算已经当今的企业中成为了不可或缺的存在。那么使用弹性计算能够对离线计算领域带来什么好处呢?小编告诉你好处肯定是有的,且听小编娓娓道来。

常见离线计算架构

图片描述

从上图中我们用最常见的离线计算开源产品Hadoop作为例子,如上图所示大家会把存储服务跟计算符合放在一台ECS上。但是随着业务的扩张,我们对计算的需求越来越大,我们需要用数据做各种运算,为了增强离线集群的计算能力,我们会想到直接通过添加计算节点的方式来获得。但是随着计算节点的添加我们会遇到另一个问题,那就是资源利用率不够的问题。虽然计算通过扩容能够提升计算能力,但是数据可不会像计算那样突然猛增,所以对于存储来说扩容操作会暂时导致资源利用率的下降。再加上离线计算每天的计算时间只有一段时间,扩容之后的ECS在每天离线计算完成之后将大量空闲,这段时间将是对成本极大的浪费!那么很多客户会想是否有一种方法能够将计算存储分开进行扩容,并且在离线计算的时候对计算节点扩容,在计算完成之后将扩容的计算节点释放掉,从而达到节省成本的目的。这个架构肯定是有的,不过为了让大家更好的理解接下来的架构,小编先要给大家介绍一下竞价实例和弹性伸缩。

竞价实例简单介绍

图片描述

从上面的图中大家可以发现竞价实例是一种按照供需关系变化价格波动的一种后付费类型实例,相对于按量付费实例价格有较低的折扣。不过同时竞价实例是有可能随时被阿里云释放的,这点请大家务必注意。简而言之就是竞价实例便宜,但是可能随时被释放。

弹性伸缩简单介绍

弹性伸缩总共有如下三个优点:

提升容错能力

弹性伸缩会定时检查ECS健康状态,如果发现ECS不健康,那么ECS将会创建一台新的ECS去替换它并且将不健康的ECS释放掉。

增强可用性

弹性伸缩能够通过定时、自动伸缩保证应用程序始终有合适的容量去满足当前的请求流量。

优化成本

弹性计算通过自动动态的方式按需增减实例,在需要的时候添加实例,不需要的时候释放实例,从而节约IT成本。

存储计算分离之后的离线计算架构

经过上面对竞价实例以及弹性伸缩简单的介绍,现在小编可以大声的告诉大家,存在一种基于弹性计算的架构能够不仅能够满足用户对于海量数据的计算能力需求,而且还能降低大家的计算成本。

图片描述

  • 将Hadoop的存储计算节点分离
  • 使用弹性伸缩来按时、按需创建、释放计算计算节点
  • 计算节点的付费类型采用竞价方式

这里相信大家肯定又有疑问了,竞价实例不是会被阿里云释放吗,这里使用竞价实例合适吗?答案是绝对合适的。第一竞价实例的价格变量付费便宜很多,第二就算竞价实例被阿里云释放了,影响的也紧紧只是我们离线计算的速度。在上面的架构图上小编也留了一台ECS没有加入伸缩组,这一台ECS我们可以采用预付费的方式为我们计算资源提供“保底”的计算能力,当然我们也可以根据自身的需要来设置“保底”ECS的数量。

使用竞价实例+弹性伸缩搭建离线计算架构Tips

Spot Instance出价策略

通过阿里云ECS的售卖页面查看竞价实例多可用区的历史价格,从而选择一个合理的出价。

AutoScaling伸缩组配置

  • 不要在整点触发定时扩容任务,整点扩容的客户比较多,大家可以选择整点过后5-10分钟进行扩容,这样价格相对会低一些
  • 通过监测计算节点的CPU/MEM指标来触发报警任务
  • 通过在伸缩组选择多可用区来增加成功购买竞价实例的概率
  • 在伸缩组内配置最大ECS数目防止弹性伸缩创建ECS数量超过预期
  • 创建一条伸缩任务进行手动扩容以备不时之需

使用Spot Instance + AutoScaling成本

图片描述

图片描述

原文链接

干货好文,请关注扫描以下二维码:

图片描述


http://www.niftyadmin.cn/n/2608622.html

相关文章

浏览器工作原理学习(十三)

消息队列和事件循环系统 消息队列 消息队列是一种数据结构,可以存放要执行的任务。它符合队列先进先出的特点。IO线程中的产生的新任务会添加进消息队列尾部。渲染主线程会循环地从消息队列头部中读取任务,执行任务。由于多个线程操作同一个消息队列&am…

浏览器工作原理学习(十四)

WebAPI:setTimeout 浏览器中的setTimeout 执行一段异步任务,需要先将任务添加到消息队列中。为了保证回调函数能在指定时间内执行,定时任务的回调函数不能直接添加到消息队列。延迟队列:维护消息队列中需要延迟执行的任务列表。如果当前任务…

(牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)

假定一种编码的编码范围是a ~ y的25个字母,从1位到4位的编码,如果我们把该编码按字典序排序,形成一个数组如下: a, aa, aaa,aaaa, aaab, aaac, … …, b, ba, baa, baaa, baab, baac … …, yyyw, yyyx,yyyy 其中a的Index为0&…

浏览器工作原理学习(十五)

微任务与宏任务 宏任务 为了协调任务在主线程上执行,页面进程引入消息队列和事件循环机制,渲染进程内部会维护多个消息队列,主线程从这些任务队列中取出任务执行,这写消息队列种的任务称为宏任务。 微任务 第一种:把…

django markdown

1. 编辑器 css 1 <link rel"stylesheet" href"{% static plugin/editor.md/css/editormd.css %}"> div 1 <div id"editormd" class"col-md-10 text-left"> 2 <textarea name&…

浏览器工作原理学习(十六)

请求陷入排队的几种情况 页面中的资源是有优先级的&#xff0c;比如CSS、HTML、JS等哦都是页面中的核心文件&#xff0c;所以优先级最高。而图片、视频、音频这类资源就不是核心资源&#xff0c;优先级就比较低&#xff0c;通常当后者遇到前者时&#xff0c;就需要让路&#x…

tidb 架构 ~Tidb学习系列(1)

一 简介:今天来研究Tidb 二 安装测试: 0 下载Tidb wget http://download.pingcap.org/tidb-latest-linux-amd64.tar.gz 按如下步骤依次启动PD, TiKV, TiDB 1 启动pd 这里如果无法启动,大概率是2379端口被占用,极大可能是redis服务 nohup ./bin/pd-server --data-dirpd --lo…

在CentOS-6.9里安装openvswitch-2.5.4

第一步&#xff1a;安装依赖yum install rpm-build openssl-devel gcc wgetyum install python-devel kernel-devel kernel-debug-devel libtool第二步&#xff1a;下载包wget -O /root/rpmbuild/SOURCES/openvswitch-2.5.4.tar.gz http://openvswitch.org/releases/openvswitc…