Finops成本优化企业实践-可规划篇

news2024/12/23 9:48:53

引言:本篇假设我们要在云上新增一个应用,讨论其在单体、failover、DR、集群模式下的成本规划。

假设该应用base on Linux,硬件要求是8cores、64G mem的云主机,并搭配500g内存,至少部署在一台云主机上。我们有开发、测试、生产三套环境都需要部署。应用的license费用为$cost_l,我们选用红帽企业版,其license费用为$cost_r,一台满足硬件要求的云主机跑满24小时的月度费用为$cost_e, RPO为$time_r,RTO可以根据架构模型或者实际恢复时间得出(笔者尽量假设贴近于真实的企业环境与硬件要求,如果读者更复杂的环境和要求,可以留言,我们讨论下怎么调整模型)。

一、单点部署+failover机制

相较于单点部署,failover机制是利用快照来及时恢复应用。架构图类似如下:

请求从route53进来,先到gateway做负载均衡,再通过dns解析访问到单点应用single node。当发生故障不可用时,通过快照在另个AZ创建DR node,再修改DNS,让请求转发到DR node上来。整个过程可用脚本执行,笔者自己实测需要15-20min左右,但不包含应用本身启动时间。

用快照恢复的优点是不需要花费额外的云主机,也不用花费redhat的license,但应用的license保险起见还是需要备一个,以防云主机关机后无法取出应用的license,当然有的应用支持一个license放到多台ec2上,那么可以忽略这个问题。快照恢复的缺点是通过AMI创建的快照恢复出实例来到应用能对外提供访问的时间较长,且如果对RPO要求较高,则定期打快照的频率就会较高。假设RPO要求时2 hours,RTO为30min-60min左右(snapshot恢复时间再加上应用启动时间),那么打快照的频率就必须在1 ~1.5 hour之间。

那么它的总费用为:$cost_e * 3(开发、测试、生产三套环境) + 500g EBS * 3 + 500g snapshot * 3 + $cost_l * 3 + $cost_r *3, 云厂商会提供价格计算器来估算价格,因不同云厂商对云主机定价不一样,且不同机型、不同区域,价格都不一样,在这就不举例了。

DR solution

Cost(USD)

RTO

Snapshot schedule

HA

Single node with snapshot

$cost_e *3 +

$cost_l *3 +

$cost_r *3;

30~60 min

RPO - RTO

Null

二、单点部署+DR node standby

第二种方式是提前建好一个standby,日常定期做数据同步,主节点故障时切换过去。架构图如下:

请求从route53进来,前端在gateway做负载,然后转发到单点应用。DR node通过snapshot创建好,并定期同步数据,当故障发生时通过修改route53 的A记录切换。切换时间在分钟级。但注意,后续如果对稳定性的预期没有那么高,愿意牺牲一点恢复时间换取成本,可以在日常对standby保持关机状态,数据同步通过snapshot做,开机时挂载新的卷就行。这样成本可以节省近一半,恢复时间取决于应用启动时间,但也快过第一个方案。

这样的架构优点是恢复时间短,缺点是要多花费一台云主机的费用。它的费用预估如下:

DR solution

Cost(USD)

RTO

Snapshot schedule

HA

Single node with DR node standby

$cost_e *6 +

$cost_l *6 +

$cost_r *6;

分钟级        

RPO 

Null

三、双节点集群模式

双节点集群模式由两个节点组成,同时对外提供服务,具备负责均衡能力。备节点和主节点共用一个数据库,具备1/2的高可用能力:当备节点挂了还能继续提供服务,但是主节点挂了就不行,只能通过重建主节点恢复,重建方式也是有多种,可以通过快照恢复,也可以通过创建一个standby节点候命,建议考虑通过快照恢复,这样能节省成本,因为本身它就提供了一部分高可用,且如果起多一台云主机做standby,还不如用三节点集群模式呢。架构如下:

这种架构下,cost是两个node的费用,RTO跟第一个架构一样,快照频率也要求高一些,优点是提供了部分高可用。费用预估如下:

DR solution

Cost(USD)

RTO

Snapshot schedule

HA

2-node cluster

$cost_e * 6 +

$cost_l *6 +

$cost_r *6;

30~60 min        

RPO - RTO

medium

四。三节点集群模式

三节点集群模式中,由1个master和2个slave节点组成。数据库有主备,当主节点挂了后,数据库可自动切换到备节点,所以主节点挂了之后依旧可用。架构如下:

该架构优势在于提供了很好的高可用行,node部署在三个AZ上,整个集群挂掉的概率几乎不可能(除非云厂商的整个region都挂了),RPO/RTO可不用考虑。缺点是费用最高。

DR solution

Cost(USD)

RTO

Snapshot schedule

HA

3-node cluster

$cost_e * 9 +

$cost_l *9 +

$cost_r *9;

NA       

NA

high

五、成本优化

对于架构一,在开发和测试环境可以采取非工作时间定时关机的策略,理想情况下,可节省约云主机2/3的费用。

对于架构二,开发和测试环境可以采取非工作时间定时关机的策略,且standy节点可以保持关机,但生产环境的话standy节点依然保持开机状态,这样不会影响恢复时间。

对于架构三,开发环境可以采用单节点,因为只需要提供功能开发就行;测试环境和生产保持一致。同样也采用定时关机策略。

对于架构四,同样开发环境采用单节点,满足功能开发就行,测试环境和生产保持一致。

DR solution

Cost optimize

Cost(USD)

RTO

Snapshot schedule

HA

Single node with snapshot

auto shutdown;

$cost_e * 5/3 

$cost_l *3 +

$cost_r *3;

30~60 min

RPO - RTO

Null

Single node with DR node standby

auto shutdown;

standby shutdown

$cost_e * 8/3 +

$cost_l *6 +

$cost_r *6;

分钟级        

RPO 

Null

2-node cluster

auto shutdown;

single node in dev

$cost_e * 3 +

$cost_l *6 +

$cost_r *6;

30~60 min        

RPO - RTO

medium

3-node cluster

auto shutdown;

single node in dev

$cost_e * 13/3 +

$cost_l *9 +

$cost_r *9;

NA       

NA

high

我们在规划应用时需要考虑优先级,稳定性、成本、或者RTO/RPO硬指标等。架构四的费用大幅高于其他三个,但提供的高可用性也是最好的;架构二明显具备更高性价比,恢复时间、快照频率都比较好,且费用比架构三还便宜。综上,大家可参加本篇的思路去做架构规划。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2216701.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java项目: 基于SpringBoot+mysql+maven+vue林业产品推荐系统(含源码+数据库+毕业论文)

一、项目简介 本项目是一套基于SpringBootmybatismavenvue林业产品推荐系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观、操…

【Linux】解锁软硬链接奥秘,高效动静态库管理的实战技巧

软硬连接和动静态库 1. 软链接1.1. 概念1.2. 特点1.3. 应用场景 2. 硬链接2.1. 概念2.2. 硬链计数2.3. 特点2.4. 应用场景 3. 动静态库3.1 库存在的原因3.2. 静态库制作与使用3.2.1 打包3.2.2. 使用 3.3. 动态库制作与使用3.3.1. 打包3.3.2. 使用 4. 解决动态库查不到的4种方法…

GStreamer 简明教程(七):实现管道的动态数据流

系列文章目录 GStreamer 简明教程(一):环境搭建,运行 Basic Tutorial 1 Hello world! GStreamer 简明教程(二):基本概念介绍,Element 和 Pipeline GStreamer 简明教程(三…

多场景多任务建模(三): M2M(Multi-Scenario Multi-Task Meta Learning)

多场景建模: STAR(Star Topology Adaptive Recommender) 多场景建模(二): SAR-Net(Scenario-Aware Ranking Network) 前面两篇文章,讲述了关于多场景的建模方案,其中可以看到很多关于多任务学习的影子&…

OGG错误:ORA-28000:the account is locked

问题描述 问题分析 从错误看,应该是ogg的角色锁定了,需要解锁 解决方案 解锁用户 SQL> alter user GGR_OGSREPO account unlock;

【Spring】Spring实现加法计算器和用户登录

加法计算器 准备工作 创建 SpringBoot 项目&#xff1a;引入 Spring Web 依赖&#xff0c;把前端的页面放入项目中 **<!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport"…

Linux介绍及常用命令

Linux 系统简介 1969 年&#xff0c;AT&T 公司的⻉尔实验室P MIT 合作开发的 Unix&#xff0c;在于创建⼀个⽤于⼤型、并⾏、多⽤户的操作系统Unix 的推⼴&#xff1a;从学校⾛进企业Unix 的版本要两个&#xff1a; AT&T System V ——就是俗称的 系统 5Berkley Soft…

Linux中文件的理解

✨前言✨ &#x1f4d8; 博客主页&#xff1a;to Keep博客主页 &#x1f646;欢迎关注&#xff0c;&#x1f44d;点赞&#xff0c;&#x1f4dd;留言评论 ⏳首发时间&#xff1a;2024年10月16日 &#x1f4e8; 博主码云地址&#xff1a;渣渣C &#x1f4d5;参考书籍&#xff1a…

如何使用Nessus软件

Nessus&#xff08;Win2022虚拟机已安装&#xff09; [ root root ] 访问https://127.0.0.1:8834 如果出现以下问题 解决方法&#xff1a; 1.在地址栏输入&#xff1a;about:config 2.在搜索框 输入&#xff1a;security.enterprise_roots.enabled 将值切换为true即可。…

Java算法竞赛之getOrDefault()--哈希表最常用API!

解释: for (char ch : magazine.toCharArray()) { charCount.put(ch, charCount.getOrDefault(ch, 0) 1); } 在Java中&#xff0c;HashMap 是一个用于存储键值对的数据结构&#xff0c;其中每个键都是唯一的。put 方法用于将指定的键与值放入 Has…

AI控制工业机器人入门教程

简介 AI控制的工业机器人正在改变现代制造业的面貌。与传统的编程控制不同&#xff0c;AI使机器人能够通过感知环境、自主决策和学习不断优化自身的操作。这篇教程将介绍实现AI控制工业机器人的必要知识和技能&#xff0c;帮助读者从基础开始构建起AI控制机器人的理解和能力。…

TypeScript新手学习教程--接口

TypeScript 也支持接口&#xff0c;跟Java类似&#xff0c;这对于学习过java&#xff0c;c#&#xff0c;php语言的人更容易上手&#xff0c;虽然类似&#xff0c;但是也有不同&#xff0c;下面开始学习。 1、 接口声明 TypeScript的核心原则之一是对值所具有的结构进行类型检…

anaconda(jupyter)安装教程

目录 一、下载anaconda安装包 二、安装程序 三、怎么使用 四、把jupyter界面语言修改成中文 一、下载anaconda安装包 anaconda官网&#xff1a;下载 Anaconda Distribution |蟒蛇 清华大学开源软件镜像站官网&#xff1a;清华大学开源软件镜像站 | Tsinghua Open Source M…

Linux服务部署,遇到的各种问题之一(测试篇)

最近服务器需要搬迁&#xff0c;所有的服务都需要迁移&#xff0c;从初始化数据盘&#xff0c;到服务部署的各种细节&#xff0c;下面我们一一来说 初始化数据盘就不用说了&#xff0c;大概率&#xff0c;作为测试接触不到。 今天来说是ubuntu显示的中文文件乱码问题如何解决…

SpringBoot集成Mongodb实现增删改查操作

目录 一、Mongodb概念 二、SpingBoot集成Mongodb 三、实现增删改查操作 一、Mongodb概念 MongoDB是一个开源的文档型数据库&#xff0c;属于NoSQL数据库中的一种。它使用BSON&#xff08;类似于JSON&#xff09;格式存储数据&#xff0c;具有高性能、高可用性和易于扩展的特…

QT--文本框 QLineEdit、qtextedit

在Qt中&#xff0c;文本框&#xff08;QLineEdit 或 QTextEdit&#xff09;和标签&#xff08;QLabel&#xff09;是两种不同的部件&#xff08;widget&#xff09;&#xff0c;它们的主要区别在于用途和功能&#xff1a; QLabel&#xff08;标签&#xff09; 用途&#xff1…

JVM(HotSpot):直接内存及其使用建议

文章目录 一、什么是直接内存&#xff1f;二、特点三、使用案例四、直接内存的管理 一、什么是直接内存&#xff1f; Direct Memory&#xff1a;系统内存 普通IO&#xff0c;运行原理图 磁盘到系统内存&#xff0c;系统内存到jvm内存。 NIO&#xff0c;运行原理图 划分了一块…

『Mysql集群』Mysql高可用集群之主从复制 (一)

Mysql主从复制模式 主从复制有一主一从、主主复制、一主多从、多主一从等多种模式. 我们可以根据它们的优缺点选择适合自身企业情况的主从复制模式进行搭建 . 一主一从 主主复制 (互为主从模式): 实现Mysql多活部署 一主多从: 提高整个集群的读能力 多主一从: 提高整个集群的…

等级保护测评师练习卷31

等级保护初级测评师试题31 姓名&#xff1a; 成绩&#xff1a; 一、判断题&#xff08;10110分&#xff09; 1.等级测评采用基本方法是访谈、测试、验证&#xff08;&#xff09;访谈、核查、测试 2.等级保护对象是由…

HarmonyOS 应用级状态管理(LocalStorage、AppStorage、PersistentStorage)

HarmonyOS 应用级状态管理 1. LocalStorage&#xff1a;页面级UI状态存储 1.1 概念 LocalStorage是页面级的UI状态存储&#xff0c;通过Entry装饰器接收的参数可以在页面内共享同一个LocalStorage实例。LocalStorage也可以在UIAbility内&#xff0c;页面间共享状态。 应用程…