阿里云ecs设置自动创建时间和重复日期对应避开业务高峰吗?

Chapter6-厦门大学-林子雨-大数据技术原理与应用-第

Chapter6-厦门大学-林子雨-大数据技术原理与应用-第六章-云数据库

[版权声明] 本站所有资料由用户提供并上传,若内容存在侵权,请联系邮箱。资料中的图片、字体、音乐等需版权方额外授权,请谨慎使用。网站中党政主题相关内容(国旗、国徽、党徽)仅限个人学习分享使用,禁止广告使用和商用。

还剩 46 页未读, 点击可继续阅读 >

过去,管理 IT 基础设施是一项艰巨的任务。系统管理员必须手动管理和配置应用程序运行所需的所有硬件和软件。

然而,近年来,情况发生了巨大变化。云计算等趋势彻底改变并改进了组织设计、开发和维护其 IT 基础设施的方式。

这一趋势的关键组成部分之一被称为 " 基础设施即代码 "(infrastructure as code,简称 IaC),也就是我们今天要讨论的内容。

基础设施即代码(IaC)定义

维基百科对基础设施即代码的定义为,

基础设施即代码是通过机器可读的定义文件,而不是物理硬件配置或交互式配置工具来管理和配置计算数据中心的过程。

简单来说,基础设施即代码意味着使用配置文件管理您的 IT 基础设施。

接下来,你可能会问 " 我们为什么要这样做?" 这就要看基础设施即代码能够解决哪些问题了?

管理 IT 基础设施的痛点

长期以来,管理 IT 基础设施都是一个手动过程。人们会将服务器实际位置就位并对其进行配置。只有在机器被配置为操作系统和应用程序所需的正确设置后,这些人才会部署应用程序。不出所料,这种手动过程通常会导致很多问题。

第一个大问题就是成本。从网络工程师到硬件维护技术人员,您必须聘请许多专业人员在流程的每一步执行必要的任务。显然,所有这些人都需要支付报酬,且需要得到管理,这又会导致更多的管理成本,同时增加组织内部沟通的复杂性。结果是,钱花了也未能构建和维护好自己的数据中心,白白增加了几个数量级的成本。

另一个大问题就是可扩展性和可用性。也可以将这些都归结为 " 速度 " 问题。由于手动配置太慢,应用程序经常会遇到访问高峰,而系统管理员会拼命尝试设置服务器来管理负载。这必然会影响可用性。如果组织没有备份服务器甚至数据中心,那么应用程序可能会长时间不可用。

第三个主要问题就是监控和性能可见性。既然已经拥有了所有基础设施,那么如何密切关注它以确保其正在以最佳方式运行呢?当遇到问题,又如何准确定位问题来自基础设施的哪个位置呢?是网络、服务器还是应用程序?Netreo 之类的工具可以让您全面了解整个 IT 基础设施的性能。借助 Netreo 的自动设备发现和配置,您可以确保自己的环境中没有任何盲点,而且平台的拓扑映射、事件关联和自动根本原因分析使您能够准确查明问题发生的位置。

最后一个问题是不一致性。如果多个人负责手动部署配置,不一致将成为不可避免的问题。

云计算帮助我们解决了上述的部分问题,它使你无需构建和维护数据中心以及与之相关的高成本。

不过,云计算远非灵丹妙药。虽然它允许您快速设置您的基础设施需求——从而解决高可用性和可扩展性等严重问题——但它对解决不一致问题没有任何帮助。当不止一个人执行配置时,差异必然存在。

而基础设施即代码正好能够弥补问题的缺失部分。

让我们回顾一下之前介绍过的基础设施即代码定义:基础设施即代码意味着使用配置文件管理您的 IT 基础设施。

该定义的关键要点是:在基础设施即代码之前,IT 人员必须手动更改配置以管理其基础设施。使用基础设施即代码,您的基础设施配置会采用代码文件的形式。由于它只是文本,因此您可以轻松编辑、复制和分发它。您可以(而且应该)将它置于源代码控制之下,就像任何其他源代码文件一样。

刚刚说到云计算只能解决其中一些问题,但不是全部。而基础设施即代码正是弥补问题最后缺失的那部分。

接下来,我们将深入探讨您的组织通过采用基础设施即服务解决方案可以获得的一些好处:

基础设施即代码提供的一个显著优势就是速度。它使您能够通过运行脚本快速设置完整的基础设施。您可以为每个环境执行此操作,从开发到生产、过渡、QA 等等。基础设施即代码可以使整个软件开发生命周期更加高效。

手动过程会导致错误,因为人的记忆会出错,人就会犯错。此外,沟通也是个问题,而且我们通常并不擅长。正如上所述,无论你多么努力,手动基础设施管理都会导致差异。基础设施即代码通过让配置文件本身成为唯一的事实来源来解决这个问题。这样,您就可以保证重复部署相同的配置,而不会出现差异。

这是一种快速简便的方法。由于您可以像任何源代码文件一样对基础设施即代码配置文件进行版本控制,因此您可以完全跟踪每个配置所经历的更改。一切都不再是关于 " 谁做了什么 " 以及 " 何时做了什么 " 的猜谜游戏。

通过使用基础设施即代码,您可以在多个阶段部署您的基础设施架构。这使得整个软件开发生命周期更加高效,将团队的生产力提升到新的水平。

您可以让程序员使用基础设施即代码创建和启动沙箱环境,让他们能够安全地进行隔离开发。对于 QA 专业人员来说也是如此,他们可以拥有生产环境的完美副本,并在其中运行测试。最后,到了部署阶段,您可以一步将基础设施和代码推送到生产环境。

毫无疑问,基础设施即代码的主要好处之一就是降低了基础设施管理的成本。通过将云计算与基础设施即代码结合使用,可以显着降低成本,这是因为您不必花钱购买硬件、雇用人员来操作它,也不必建造或租用物理空间来存储它。

更重要的是,基础设施即代码还以另一种更微妙的方式降低了您的成本,这就是我们所说的 " 机会成本 "。

要知道,把有用的人放置在适当的位置才能最大限度的发挥效用。如果只是让他们做一些可以自动化完成的任务,无疑是在浪费资源,他们应该把精力放在能够为企业组织带来更多价值的任务上。这就是自动化策略(基础设施即代码就包含其中)派上用场的地方。

基础设施即代码工作原理

基础设施即代码工具的工作方式各不相同,但我们通常可以将它们分为两种主要类型:遵循 " 命令式资源配置方法 " 的工具以及遵循 " 声明式资源配置方法 " 的工具。

其中,命令式资源配置方法指的是资源使用者没有正式编码所需的状态,并且由资源使用者来决定命令序列。

最值得注意的是,命令式方法是不可重复的,因此,也就无法自动执行,因为资源使用者必须为每个给定的当前状态确定导致所需状态的命令序列。

而声明式资源配置方法指的是,资源使用者正式编码所需的状态,并且由组件来决定命令序列。

最值得注意的是,声明式方法是可重复的,因此可以实现自动化,因为组件可以确定任何可能导致当前状态所需状态的命令序列。

下面我们为大家提供一个最佳实践列表,以帮助您充分利用基础设施即代码策略。

使代码成为您唯一的事实来源。您应该在配置文件中明确编码所有基础设施规范。您的配置文件应该是所有基础设施管理问题的唯一真实来源。

版本控制所有配置文件,将所有配置文件置于源代码控制之下。

为您的基础架构规范使用尽可能少的文档(或根本不使用)。这一点是第一点的逻辑结果。由于您的配置文件应该是您的唯一真实来源,因此不需要更多文档。外部文档很容易与实际配置不同步,但这不会发生在配置文件中。

测试和监控您的配置。基础设施即代码是代码,和所有代码一样,它可以被测试。所以你应该测试一下!通过为基础设施即代码使用测试和监控工具,您可以在将服务器部署到生产环境之前检查服务器中的错误和不一致情况。

基础设施即代码自动化配置与编排工具

目前,市场上存在很多基础设施即代码自动化部署工具,下面为大家重点介绍四款自动化配置与编排工具:

这是云原生编排工具,通过编写 JSON/YAML 格式的模板,在模板中定义所需的 ECS 实例、数据库实例等云服务资源以及资源依赖关系等,然后再根据模板在 ROS 中创建资源栈,ROS 服务端将根据模板自动完成所有资源的创建和配置,实现自动化部署及运维。而资源栈则管理着模板中定义的所有资源,并可通过新模板来更新资源栈,包括资源的新增、更新或删除等操作。

这也是云原生的编排工具,运维人员也是通过 JSON/YAML 格式的模板定义云服务资源,通过资源栈管理这些资源。

这是一个开源的自动化编排工具。以配置文件为驱动,可以在文件中定义所要管理的组件,即基础设施资源,以此生成一个可执行的计划,通过执行这个计划来完成所定义组件的创建,增量式的变更和持续的管理。如果不可执行,会提示报错。Terraform 不仅可以管理 IaaS 层的资源,如计算实例、网络实例和存储实例等,也可以管理更上层的服务,如 DNS 域名和解析记录、SaaS 应用的功能等。

与 Terraform 一样也是开源项目,但它与 Terraform 的重要区别在于:可以用熟悉的编程语言来编写声明式配置,而不需要额外学习云服务商特定的模板语言来写配置。

企业组织可以根据自身需求和业务部署模式选择适当的工具,更好地发挥基础设施即代码的作用。

基础设施即代码是 DevOps 运动的关键部分。如果您将云计算视为解决由人工 IT 管理引起的许多问题的第一步,那么可以说基础设施即代码是下一个合乎逻辑的步骤。它充分发挥了云计算的潜力,并将开发人员和其他专业人员从执行容易出错的手动任务中解放出来。此外,它还可以在软件开发生命周期的所有阶段降低成本并提高效率。

简介: 在刚刚结束的云栖大会上,阿里云容器服务演示了容器的自动弹性伸缩,能够从容应对互联网应用的峰值流量。阿里云容器服务不仅支持容器级别的自动弹性伸缩,也支持集群节点级别的自动弹性伸缩。从而真正做到从容应对高峰流量的场景,提高自动化运维水平及系统可用性。

在刚刚结束的云栖大会上,阿里云容器服务演示了容器的自动弹性伸缩,能够从容应对互联网应用的峰值流量。关于阿里云上容器的自动弹性伸缩,可以参考文章。
同时在流量变大的时候自动进行容器的弹性伸缩,要求容器集群有很好的容量规划,必须有多余的集群资源以支持弹性扩容。但问题是当流量变大,容器扩容导致集群资源不够的时候怎么办呢,是否需要手工进行容器集群的扩容?实际阿里云容器服务不仅支持容器级别的自动弹性伸缩,也支持集群节点级别的自动弹性伸缩。从而真正做到从容应对高峰流量的场景,提高自动化运维水平,降低响应时间,提高系统可用性。下面介绍怎样进行集群节点的自动弹性伸缩。

当监测指标值超过所设定的扩容条件,以用户设定的扩容步长增加节点数量。
当监测指标值低于所设定的缩容条件,以系统默认步长1减少节点数量。

  • 集群CPU平均使用量。

节点缩容只会对通过节点扩容创建出来的节点进行,用户手工创建或者添加的节点不受影响。如果想让这些手工添加的节点可以自动缩容,需要为这些节点加上标签:

节点缩容的时候,系统会删除集群里的ECS,用户需要提前做好数据备份。请不要调度有状态服务到可缩容节点上。可以参考Docker Compose的constraint。

  • 集群列表 页面,选择要设置的集群,点击 管理,进入集群管理页面。
  • 点击左侧导航栏中的 节点伸缩,点击 请新建自动伸缩规则
    • 扩容条件 的可选范围是 50%~100%,缩容条件 的可选范围是 0%~50%。
    • 扩容条件 和 缩容条件 的差值不能小于30%。
    • 扩容步长的可选范围是 1~5, 缩容步长目前默认是1,不支持配置。
    • 设置好集群最小节点数及集群最大节点数。缩容的时候当节点数<=集群最小节点数的时候,不会进行缩容操作;扩容的时候当节点数>=集群最大节点数的时候,不会进行扩容操作。

      • 最好不要设置复合伸缩策略
      • 请谨慎设置伸缩条件,在设置伸缩的时候,伸缩条件就满足且伸缩不能将伸缩条件变成不满足的情况下,监控会不断触发伸缩。
  • 点击 下一步,选择实例规格,配置扩容节点配置:

上面我们设置CPU>70进行集群扩容,当集群CPU超过这个设置的时候:

集群开始进行自动扩容:

在云监控报警规则上可以看到报警历史:

更多关于阿里云容器服务的信息,请访问:

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《》和《》。如果您发现本社区中有涉嫌抄袭的内容,填写进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

我要回帖

更多关于 阿里云ecs价格 的文章

 

随机推荐