带你读《云上自动化运维宝典》——ECS省钱指南来啦!万字长文教你如何选择与业务形态最匹配的付费方式(3)

简介: 带你读《云上自动化运维宝典》——ECS省钱指南来啦!万字长文教你如何选择与业务形态最匹配的付费方式(3)

更多精彩内容,欢迎观看:

带你读《云上自动化运维宝典》——ECS省钱指南来啦!万字长文教你如何选择与业务形态最匹配的付费方式(2):https://developer.aliyun.com/article/1405382


2.创建ECS的各种方式及使用场景

1) 高效创建 ECS

 

image.png

很多用户在日常购买ECS的时候,都是通过PC端这种页面可视化的方式购买。这种方式确实比较直观,但它的问题就是会比较耗时,因为各种配置得挨个选择。

 

此外,也有一些用户是通过OpenAPI的方式购买,这种方式肯定效率会更高,但在我们集成OpenAPI的时候,会遇到很多问题。比如在本地调试API的时候,它的参数需要我们去阿里云官网的文档上挨个去看,具体需要传什么值,我们可能还需要去调其他的API才能查到,这样步骤就会非常繁琐,针对这些场景,阿里云其实是有提供一些产品来解决的,后面我们会展开讲解。

 

还有些用户不只是创建ECS那么简单,他们想要交付一整套的基础设施,那么就可以使用我们的资源编排ROS的产品来解决。另外我们也提供了一些OpenAPI最佳实践的代码,让用户可以开箱即用。

 

如果用户在线下的IDC环境/其他的云上有自己的服务器想要迁移到阿里云的ECS上,可以通过阿里云的服务器迁移中心 SMC,这款产品可以很方便的把线下IDC的服务器或者其他云的服务器迁移到阿里云的ECS上。

 

image.png

接下来做一个实践的演示,前段时间阿里云推出了全新的免费试用,支持了137款产品,这次的力度比以前更加大,且使用的时间也更长,覆盖的产品也更加广,大家可以去试用一下。

 

接下来演示一下PC端的购买页和移动端的购买页。首先介绍一下PC端的购买页,详细大家已经很熟悉了。我重点演示一下OpenAPI最佳实践代码、保存为ROS模板、启动模板等功能。

 

image.png

 

我已经提前登录了账号,可以直接到最后一步。分别介绍一下三个功能。

 

∙        第一个功能是“保存为启动模板”,这个的意思是,将前面我们选择的配置保存为一个模板的ID,当你下次需要创建同类配置的ECS的时候,直接通过模板ID创建即可。

∙        第二个功能是“生成OpenAPI最佳实践脚本”,它也是开箱即用的。把代码直接copy下来,然后集成到自己的代码环境中即可。

∙        第三个功能是“保存为ROS的模板”,这个后面会做详细的讲解,这里就不展开介绍了。

 

下面介绍一下移动端的购买页。在用户外出没有带电脑的情况下,可以考虑使用这种方式做一些扩容等操作。

 

image.png

 

这是移动端的购买页,可以看到按量付费、包年包月、自定义镜像等等功能,包括密码也是支持的。但在移动端购买完之后并不能真正的解决业务的问题,比如在扩容的场景下,买完ECS还需要部署业务,然后做一些业务配置才能真正的提供服务。

 

image.png

下面演示一下在移动端如何做ECS的远程连接。首先找到阿里云的APP,然后选择下面的“运维”,再选择“云服务器ECS”,点击“…”,选择“Workbench远程连接”,就可以连接到我们的实例上,做一些业务配置、执行的命令、服务的启动等等操作了。

 

这样就可以形成了一个闭环,首先购买ECS,然后对ECS做一些配置提供服务,运维的操作也都是可以在移动端实现的。当然也不止新购买的ECS,存量的服务器也可以直接连接上来做配置。

 

另外,一些用户可能会遇到在本地集成OpenAPI的场景,如果不知道参数怎么填,可以使用阿里云的OpenAPI门户。下面演示一下:

 

image.png

 

这个工具不仅可以调用ECSOpenAPI,也可以调用很多其他产品的API。大家在上图左侧可以很方便的检索到自己想要集成的API

 

这里我提前设置好了这些参数,它自动就可以填进来了,可以直接在这里看到参数的名称以及对应的描述,相比本地直接集成,这里会更加的可视化,更加直观一点。而且安全组的ID、规格等等都是可以直接选的,不用挨个去拼接。此处需要提醒一下,我们在集成OpenAPI的时候,可以先在这里调试通过后再去集成,因为这样可以极大的提升开发效率。

 

除此之外,我们还提供Cloud Shell命令行的方式创建ECSCloud Shell会在远端起一台虚拟机,且这台虚拟机会事先配置好阿里云的命令行工具,不用自己再去安装了。相比本地安装这样的工具,可能会遇到很多环境的问题,这个的话在云端我们已经帮你安装好了,直接运行命令就可以了,而且有一个小时的免费使用期限。这个方式也是非常便捷的,喜欢命令行的同学可以直接在这里调试或者使用。

 

前面在演示PC页面的时候有一个功能叫“保存为启动模板”,即创建的时候指定一个模板ID就可以创建出来一个ECS。这里我们通过Cloud Shell的方式给大家演示一下:

 

image.png

 

可以看到已经创建出来一台阿里云ECS RunInstances,指定一个模板ID就可以了。如果我们觉得启动模板里,预先配置好的参数不满足我的需求,也可以去复写它。比如复写一下ECS RunInstances,随便填一个规格,然后它就报错了。因为规格是随便填的,这个规格并不存在,所以就报错了。这也是非常方便的一种创建ECS的方式,也能提升我们创建ECS的效率。

 

image.png

 

一些DevOps和运维的同学可能不只是想创建ECS这么简单,他想要交付整套的业务的架构。上图是我简化的业务架构,它部署了一个高可用的WordPress的博客,可以看到,它有两个不同的可用区来做高可用容灾。两台ECS连上一个数据库RDS。还有一个负载均衡分散流量到不同的后端服务器,前面通过公网EIP的方式去提供服务。如果ECS也有访问公网的需求,可以用NatGateway通过公网EIP访问。

 

那么如果整套架构我们都手动去创建,是非常耗时耗力的,而且创建到第三步的时候很可能就出问题了,我们需要重试或者把前面的回滚掉重新创建,反复操作会耗费很多人力,大概需要几个小时的时间才能完成。

 

我们有一个产品叫资源编排ROS,它是专门解决基础设施部署问题的。把这些资源和资源之间的依赖关系描述成一个JSON的模板的文件,然后把这个文件交给ROS,它就会自动化的帮我们创建整套架构。创建这样一套架大概只需要几分钟的时间就可以完成,所以它可以明显的提升部署的效率。

 

同时由于ROS支持回滚和删除,也就是说整个架构部署的时候,比如创建总共有五步,创建到第三步的时候失败了,它可以自动回滚到前面的几步,这样也提升了一些效率。此外,如果整套架构部署完成了,也测试完成了,我们不想用了,也可以使用ROS的删除功能,把整套架构全部删除掉。正是因为ROS有可回滚、可删除的特性,所以我们认为它可以节省成本,因为很显然自动化的删除可以提高资源删除的效率。

 

同时它还可以解决合规的问题,比如企业有多个业务部门,其中运维部门希望多个业务部门的架构是统一的,用的资源类型、安全组的端口等等都是比较标准的。但如果我们人为去要求这些业务部门他们不一定会遵守,所以我们通过ROS模板的方式把它规范起来,运维部门可以给业务部门统一的模版来统一进行管理。

 

下面重点介绍一下ROS的特点。

 

IaCInfrastructure as Code)理念,它作为一个工具类的产品本身是免费的,但创建出来的资源是收费的。前面也讲解了它支持回滚和删除,那么它是怎么支持回滚的呢,这就讲到了ROS对于资源编排的定义。这个资源的定义是广义的,只要有创建、删除、查询的接口,我们就认为它可以是一个资源,再比如挂载网卡、卸载网卡,也可以定义为一个资源。

 

所以抽象的来看,我们只要有一个操作是支持逆向的,比如创建支持删除,挂载支持卸载,都可以认为是一个资源。正是因为ROS对资源的定义是支持逆向的,所以它自然而然就支持回滚和删除的能力。

 资源编排,刚讲了资源接下来讲一下编排,编排是某一个资源依赖另一个资源。比如我们创建ECS其实是依赖VPC的,那么在ROS模板里就要声明一下,ECS这个资源是depends on VPC资源的。在ROS创建的时候,就会先去创建VPC再创建ECS。在回滚的时候也会先回滚ECS再去回滚VPC,或者在删除的时候先删除ECS再删除VPC

 

ROS支持98个产品的474个资源,覆盖面是非常广的。它也不是一个新产品,2015年发布上线到现在已经发展很多年了,现在非常的成熟。

 

接下来演示一下用ROS模板的方式部署一套架构。模板具体的内容可以参考上图中最下面的链接,大家可以直接下载使用。

 

image.png

 

我已经事先把模板创建好了,下面就直接开始了。首先选择负载均衡的规格,已经默认选好了。然后选择两个可用区的配置,再给各个可用区的ECS选择一个规格。然后再选择数据库的规格,填写数据库的密码,最后点击创建,整个过程需要大概十分钟的时间。

2) 弹性创建 ECS

 

image.png

前面我为大家演示了,通过ECSOpenAPI RunInstances创建ECS,这个API只支持指定一个规格,但我们有一些用户的场景对规格不是很敏感,也就是说我可以随意的指定多个规格,这样可以让创建实例的成功率更高。因为单个规格可能会遇到库存不足,Quota不足等问题。在这种情况下,有多规格诉求的时候,就可以使用一个叫做弹性供应的产品。

 

弹性供应不仅支持多规格,还支持多个可用区,交付ECS,他不仅支持像RunInstances一样一次性创建,支持持续保持的能力,这是弹性供应解决的其中的一个问题。

 

前面的同事讲解了抢占式实例,抢占式实例确实非常便宜,也非常诱人,对于用户来说是非常希望使用它的。但使用的时候也会有一些成本,因为抢占式实例在持有一小时后会随时被系统回收。回收的时候系统会发送一个消息出来,我们如果想要真正的使用抢占式实例,就需要对接这个消息,当我收到实例被回收的消息的时候,再去创建一台新的出来。弹性供应自动化的帮大家解决了这个问题,即不用我们自己去对接了,它的系统内部已经帮我们对接好了。比如用弹性供应交付了10ECS,其中一台被系统回收了,它可以自动的创建一台新的抢占式实例出来。

 

这里就涉及到了弹性供应的供应策略,它在供应资源的时候有一些策略可以供我们选择。比如选择抢占式实例里释放率最低的规格,以免实例被频繁释放,再重新创建的问题,本质上就是算力集群比较稳定的一种策略。

 

此外,它还支持多可用区均衡容灾的策略,也支持成本最优的策略,比如我从抢占式实例里最便宜的开始创建依次选择,达到成本最优的一种供应策略,当然也支持自定义优先级的供应策略。

 

总结来看,弹性供应就是为了解决批量大规模交付ECS算力集群业务的场景,大家有这种诉求的时候就可以考虑使用弹性供应这个产品。

 

image.png

 

作为一个企业,它的一些业务变化可能是有规律的,比如这个企业每周五都会有一个活动,在活动开始的时候,我需要动态的增加ECS,在活动结束的时候,再把ECS减掉。但也有一些是没有规律的,CPU突然高了,这个时候我就需要根据CPU的使用率来增加ECS。这些场景都可以用阿里云的弹性伸缩很好的解决。

 

刚讲完弹性供应,那么弹性伸缩和弹性供应有什么区别呢?

 

弹性供应主要是交付一个算力集群,而弹性伸缩可以根据用户的业务来配合弹性的增加ECS,包括CPU利用率通过云监控的监控来集成,比如当CPU的使用率大于80%的时候增加ECS等等。

 

弹性伸缩不只可以支持定时的,它还支持动态预测模式。根据过去1-14CPU的使用率,以及内网出入流量等等,通过机器学习算法的方式,帮大家预测未来需要的资源的量,自动的扩容和缩容。

 

image.png

 

接下来演示一下,当服务的CPU大于80%的时候,弹性是否会增加一台ECS。可以看到刚才通过资源编排创建的一套架构已经交付好了。我们可以去ECS看一下它的资源,可以看到有两台新的ECS已经创建出来的,是高可用的那两台ECS。我们连接上去把这两台ECSCPU打到80%以上,看一下弹性伸缩是否会真正的弹性的增加一台服务器进来。

 

然后我们先远程连接,这里介绍一下有一个叫会话管理远程连接,它可以实现免密登录,是更加方便快捷的。我们复制一下事先准备好的命令,把这两台ECSCPU打高。然后去看一下弹性伸缩的报警情况,现在显示报警任务配置是CPU的平均使用率连续一次,大于80%的时候就会弹性增加ECS


image.png

 

然后我们再看一下监控的情况,平均值是47%不到,检测需要大于80%的时候才会去弹,所以还需要等待一点时间。现在可以看到已经报警了,CPU平均的使用率已经达到了90%,同时也能看到已经增加了一台ECS

 

但只增加ECS是不够的,因为扩容服务器一定需要做业务的配置、代码的部署、服务的启动等工作,这个问题在弹性伸缩上有一个叫“生命周期挂钩”的功能可以解决。这个的意思是我们在创建完ECS的时候,可以针对这台ECS做一些配置,这里挂钩其中一个动作我们使用了OOS的模板,在这个模板里又去执行了一些命令。这些命令是通过ECS的云助手下发下去的,这样就可以把业务的配置都执行一下,启动起来了。

3) 高确定性创建 ECS

 

image.png

 

我们假设有一个场景,比如我今天晚上9点想升级集群,或者我之前测试好的东西需要部署到线上,这种情况我需要在9点的时候买一批资源。但买这些资源我又担心会有库存或者Quota的问题买不出来。而系统升级是非常严肃的事情,如果创建不出来,对业务的影响是非常大的。

 

大家通常想到的解决方案是,9点上线的话,我8点的时候提前创建出一台ECS不就好了,这确实是一种解决方案,但这不是最经济的。

我们有一种更经济的解决方案叫做容量预定,也就是在8点的时候创建一个容量预定出来,容量预定只收取计算的费用,所以到9点把ECS创建出来的时候才开始收ECS的存储、网络等费用。在8-9点之间,只收取计算费用,当然9点以后也不会收取双份的费用。这样就达到了节省成本的目的,同时它还能满足在9点的时候100%成功创建ECS

 

为什么能100%成功呢?这是因为在8点买了容量预定的时候,你就把库存资源锁定了,当在9点创建ECS的时候指定容量预定,就可以100%成功。使用容量预定需要注意,预定的时间不要过长,因为预定的这段时间也是收取费用的,而这段时间又没有真实使用资源,时间过长就会存在浪费的情况。

 

此外,它也可以适用于混部的场景,比如白天跑的是在线业务,晚上跑的是离线业务,这种情况就可以买一个容量预定,确保离线和在线业务都使用相同的资源池来保证我的确定性。这样我就不用担心白天用完资源释放掉以后,晚上创建ECS的时候因为库存原因创建不出来,通过容量预定这个产品就可以很好的这个解决问题。

 

所以,当大家有一些确定性的保障的时候,比如资源轮转、升级,混步、集群部署等等,对确定性需求非常强的时候,我们就可以考虑使用容量预定这个产品。

 

image.png

 

最后简单对今天的分享做一个总结。

 

第一部分,高效创建ECS。首先分享了高效创建ECS的方式,包括PC端、移动端,移动端还可以远程连接ECS。其次分享了启动模板、OpenAPI门户、Cloud Shell等工具,方便大家在集成OpenAPI的时候,通过这些工具提升效率。最后演示了通过资源编排ROS的方式交付一整套的基础设施架构。

 

第二部分,弹性创建ECS。当我们有批量大规模交付 ECS 算力集群需求的时候,或者觉得抢占式实例的使用成本太高的时候,可以考虑使用阿里云的弹性供应。当我们有定时/动态弹性创建 ECS,或者需要根据报警的监控指标,比如CPU的使用率、内存使用率、带宽的使用率等等,去动态的增加ECS或减少ECS的时候,可以考虑使用阿里云的弹性伸缩。

 

第三部分,高确定性创建 ECS。当我们对ECS确定性有需求的时候,尤其是在资源轮转,升级稳步等业务场景的时候,可以考虑使用阿里云的容量预定来解决问题。

 

以上就是本节课程的全部内容,同时欢迎大家点击链接进入【CloudOps云上运维】课程官网,了解最新课程资讯!

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
10天前
|
运维 Linux Apache
【一键变身超人!】Puppet 自动化运维神器 —— 让你的服务器听话如婴儿,轻松管理资源不是梦!
【8月更文挑战第9天】随着云计算与容器化技术的发展,自动化运维已成为现代IT基础设施的核心部分。Puppet是一款强大的自动化工具,用于配置管理,确保系统保持预期状态。通过易于理解的配置文件定义资源及其依赖关系,Puppet实现了“基础设施即代码”的理念。本文简要介绍了Puppet的安装配置方法及示例,包括Puppet Agent与Master的安装、基本配置步骤和一个简单的Apache HTTP Server管理示例,展示了Puppet在实际应用中的强大功能与灵活性。
23 9
|
4天前
|
弹性计算 JSON 开发工具
"一键玩转阿里云ECS!Python大神揭秘:如何自动化创建镜像并跨地域复制,让你的云资源部署秒变高效达人!"
【8月更文挑战第14天】本文介绍如何使用Python与阿里云SDK自动化管理ECS镜像,包括创建镜像及跨地域复制,以优化云资源部署。首先安装`aliyun-python-sdk-ecs`并配置阿里云凭证。接着,通过Python脚本实现镜像创建与复制功能,简化日常运维工作并增强灾难恢复能力。注意权限及费用问题。
16 2
|
7天前
|
应用服务中间件 网络安全 nginx
运维专题.Docker+Nginx服务器的SSL证书安装
运维专题.Docker+Nginx服务器的SSL证书安装
19 3
|
7天前
|
运维 安全 网络安全
运维笔记:基于阿里云跨地域服务器通信
运维笔记:基于阿里云跨地域服务器通信
34 1
|
15天前
|
运维 应用服务中间件 持续交付
自动化运维之宝:Ansible在服务器管理中的应用
【8月更文挑战第4天】本文深入探讨了Ansible这一自动化运维工具的实际应用,通过具体案例展示了其在服务器配置、软件部署和系统管理中的强大功能。文章不仅介绍了Ansible的基本操作,还提供了代码示例和实践技巧,旨在帮助读者有效提升运维效率。
41 6
|
17天前
|
运维 监控 网络安全
自动化运维:使用Python脚本实现服务器批量管理
【8月更文挑战第2天】在现代IT运维领域,效率和准确性是衡量工作质量的关键指标。手动管理大量服务器不仅耗时且容易出错,因此自动化运维工具的开发变得至关重要。本文将介绍如何利用Python编写一个简单的自动化脚本,实现对多台服务器的批量管理,包括自动更新、配置同步以及日志收集等功能。通过实际案例展示,我们能够看到自动化运维如何提升工作效率并减少人为错误。
|
18天前
|
运维 Java 应用服务中间件
自动化运维:使用Ansible进行服务器配置管理深入理解PHP的垃圾回收机制
【7月更文挑战第31天】在现代IT环境中,自动化运维是提高效率、降低错误率的关键。本文将介绍如何使用Ansible——一种流行的开源自动化工具,来简化和自动化服务器的配置管理。我们将通过一个实际的代码示例,展示如何利用Ansible进行自动化部署和配置更新,确保你的服务器始终运行最新、最安全的软件版本。
10 1
|
18天前
|
运维 Ubuntu 网络安全
自动化运维:使用Ansible管理服务器
【7月更文挑战第31天】在本文中,我们将探讨如何使用Ansible来简化和自动化服务器管理任务。我们将介绍Ansible的基本概念,包括它的工作原理、主要组件以及如何安装和配置。然后,我们将通过一些实际的代码示例,展示如何使用Ansible来自动化常见的服务器管理任务,如部署应用程序、更新软件包和配置系统。最后,我们将讨论一些高级主题,如角色、模板和变量,以帮助您更有效地使用Ansible。无论您是新手还是有经验的运维人员,这篇文章都将为您提供一些实用的技巧和策略,以帮助您更好地利用Ansible来管理您的服务器。
17 1
|
18天前
|
运维 Ubuntu 应用服务中间件
自动化运维:使用Ansible管理服务器
【8月更文挑战第1天】在这篇文章中,我们将介绍如何使用Ansible来自动化管理服务器。Ansible是一种开源的自动化工具,可以用于配置管理、应用部署和任务执行等。我们将通过一个简单的示例来展示Ansible的基本用法,包括如何安装、配置和使用Ansible来自动化一些常见的服务器管理任务。
|
1天前
|
机器学习/深度学习 人工智能 运维
智能运维:未来趋势下的自动化与人工智能融合
【8月更文挑战第18天】 在数字化浪潮中,智能运维(AIOps)作为一股不可逆转的力量,正逐步改写传统运维的脚本。本文将探讨AIOps的核心要素、实施路径和面临的挑战,同时分享个人从新手到专家的心路历程,旨在启发读者思考如何在这一领域内持续成长并作出贡献。
11 6

相关产品

  • 云服务器 ECS