如何在云上高效地实践“自动化”和“弹性”-深圳网站优化推广公司

如何在云上高效地实践“自动化”和“弹性”

本文涉及的产品
云监控,每月短信1000条
资源编排,不限时长
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 阿里云开放平台「端到端解决方案」帮助客户解决在自动化和弹性流程中的痛点问题!

yfmdlhcq.jpg

本篇作者丨箫竹

前言


在云计算越来越普及的今天,企业对云的讨论焦点已经从几年前的「是否上云」转换为「如何快速上云」和上云之后「如何低成本用云」等问题。新的焦点问题对云提出了新的要求:容器化、自动部署、自动发布、弹性扩缩容、监控告警等云上业务生命周期的方方面面。除此之外,随着业务架构的不断复杂,高可用、多备份、异地多活等方案趋于常态化,由此对多账号、多 Region 部署的需求越来越强烈。


企业应用上云,通常都会根据自身的业务架构,首先选择相关云产品并完成授权,接着搭建网络基础环境、搭建业务架构、配置负载和弹性伸缩策略,最后实现应用上云。


1.png


整个过程即复杂又繁琐,但当想要借助编排服务(Terraform,ROS)来简化流程、实现自动化的时候,又遇到了阻碍自动化流程的各种障碍:


  1. 云产品没有提前开通,导致 OpenAPI 调用失败,编排服务无法工作;
  2. RAM 权限策略的编写过于复杂,编排模板涉及到哪些策略,无处可查,想要做到精细化的授权难度太大;
  3. Kubernetes 集群的搭建依赖多种云资源优先创建,但云资源之间存在的复杂的关联和依赖关系却无处可查;
  4. 每个云账号对大部分资源的使用都存在配额的限制,弹性伸缩的时候往往因为配额不足而失败,进而影响应用的快速扩容;
  5. ......


一、端到端解决方案


「如何做到自动化上云」成了应用上云路上的一道坎,基于这个现状,阿里云开放平台在通过过去一年的努力,提供了一系列的「端到端解决方案」,旨在消除客户在基于 OpenAPI 上云过程中影响“自动化”的主要障碍。


本文从一个实际场景出发,基于开源资源编排工具 Terraform、 Kubernetes 作业管理的开源项目 Argo 和阿里云的多种服务搭建一个自动化弹性样板间,并利用该样板间完成了 Kubernetes 应用的自动化部署和伸缩,在云上实践“自动化”和“弹性”的同时,切身感受下「端到端解决方案」所带来的重大成果和客户价值。


2.jpg


围绕自动化弹性样板间的具体内容,本文将介绍三种已经落地的方案:


  1. 云产品自动化开通

什么是自动化开通?为什么要自动化开通?如何做到自动化开通?


  1. 左手弹性,右手成本

弹性遇到的问题是什么?如何通过配额服务解决?弹性伸缩过程中如何控制成本?


  1. RAM 权限策略的自动化导出

如何对一个 Terraform 模板中涉及到的资源实现准确、完备和精细化的权限控制?


二、云产品自动化开通


所谓「云产品开通」,是指在注册了一个新的阿里云账号后,首次使用某个云产品服务时,需要阅读该云产品的服务等级协议,并通过点击“开通”按钮来完成该云产品的激活。激活之后才能正常地使用该云产品的控制台、OpenAPI以及资源编排(Terraform,ROS)等服务。


3.png


自动化弹性样板间总共涉及到 9 款服务,其中有 3 款服务需要手动开通,当需要支持多账号部署时,需要 3*N 次手动开通操作,费时又费力。同时,对于资源编排服务 Terraform 和 ROS 而言,无疑是致命的,直接阻碍了 Terraform 和 ROS 的成功运行。目前与 Terraform 和 ROS 集成的所有60多款云产品中,分别有 22 和 25 款云产品需要在首次使用前进行手动开通,体验非常差。


为了解决该问题,开放平台提供了自动化开通的方案。所谓「自动化开通」,是指对外提供开通动作的 OpenAPI,通过调用 OpenAPI 或者基于 API 的编排工具实现云服务的自动开通,省去手动开通的麻烦。目前,已经有超过 30 款云产品实现了自动化开通,Terraform 和 ROS 也实现了 100% 全自动化开通的目标,彻底解决了阻碍 Terraform 和 ROS 自动化之路的第一个障碍,也为自动化弹性样板间的成功提供了支持:


data "alicloud_ack_service" "open" {
  enable = var.enable_service
  type   = "propayasgo"
}
data "alicloud_log_service" "open" {
  enable = var.enable_service
}
data "alicloud_cms_service" "open" {
  enable = var.enable_service
}
Terraform 支持自动化开通阿里云产品


三、左手弹性,右手成本


在云上根据业务发展,按需建出资源是云上资源弹性的重要特征,相较于传统IDC机房的机器采购、上架、供应等漫长的周期和运维成本,云上资源的快速供应是客户对云的弹性的最大认可。


为了充分利用和发挥云平台的弹性和分布式特性,必须做到从基础设施到应用都是弹性可伸缩和运维全自动化,以云原生的最佳姿势使用云。自动化弹性样板间正是充分利用和发挥阿里云的弹性优势,实现了云资源和云应用的弹性:


  • 基础设施层弹性管理

借助 Terraform 自动创建托管版Kubernetes集群,并基于弹性伸缩服务 ESS 为其自动创建弹性伸缩节点池,当节点池中节点负载达到阈值时实现自动伸缩,从而达到基础设施层弹性管理。


  • 业务弹性管理

借助 Terraform 和 Argo 将业务应用自动部署到容器集群的 Pod,并通过配置由 Kubernetes 的 HPA 策略控制业务层的弹性管理。


4.png图片来自:https://help.aliyun.com/document_detail/86554.html


resource "alicloud_cs_managed_kubernetes" "this" {
  name                     = local.k8s_name
  pod_cidr                 = var.k8s_pod_cidr
  cluster_spec             = "ack.pro.small"
  worker_number            = var.worker_number
  ...
}
resource "alicloud_cs_kubernetes_node_pool" "autoscaling" {
  name                 = "autoscaling"
  cluster_id           = alicloud_cs_managed_kubernetes.this.id
  # automatic scaling node pool configuration.
  scaling_config {
    min_size                 = var.autoscaling_node_min_number
    max_size                 = var.autoscaling_node_max_number
    ...
  }
  ...
}
配额中心」是阿里云开放平台2020年推出的一款新的云产品,提供了实时查询配额、在线发起配额申请、资源配额级联申请、API 流控申请、配额告警等能力,有效地帮助客户根据业务的需要在线调整多种资源配额,解决资源不足带来的问题。


5-j.jpg


自动化弹性样板间涉及到 9 款云产品,涉及到可调整的配额包括如实例规格的需求量、可保有的EIP 数量、可保有的 SLB 数量、集群节点的数量等有 6 项之多,并且不同配额项之间还可能存在相互依赖、级联和地域之分,每一项配额都需要配置告警规则和配额申请,以便当配额不足而发起告警后可以自动发起配额申请。面对这些复杂的关系,弹性样板间借助配额中心和 Terraform 集成的能力,完成了对不同配额项申请和告警的自动编排,通过查询规则(如:特定 Region 特定 Zone 下的特定实例规格)动态获取当前配额值并配置自动告警规则(如:所剩配额不足一半时发起告警)和自动申请规则(如:所剩配额不足一半时发起当前总配额2倍的申请),以实现配额不足时发起自动申请。


3.2 预留实例券解决资源供应和成本问题


预留实例券(Reserved Instance,简称 RI)是弹性计算团队推出的一种具有特定属性的优惠券,可以自动匹配您账户下的按量付费实例(不含抢占式实例)。相比包年包月实例,预留实例券与按量付费实例这种组合模式可以兼顾灵活性和成本。

在阿里云不支持 RI 之前,客户通过包年包月、抢占式实例和按量付费的组合来实现成本节约,即通常会购买一定量的包年包月,然后在业务尖峰的时候购买按量付费资源进行弹性扩展。当 RI 诞生后,本质上在提供了包年包月的能力的同时还提供了基于弹性伸缩获得比包年包月成本更低的能力。


6.png


  • 包年包月+按量付费

按照平时业务购买包年包月,业务尖峰时购买按量付费资源进行弹性扩展;业务稳步上升后,需要新购包年包月资源进行扩展(不是弹性伸缩)。因此企业付出的成本等于包年包月的支出加上按量付费的支出。


  • 预留实例券

最理想的情况下,全部负载都可以使用RI覆盖,且没有超买,企业付出的成本等同于阴影部分的面积。


两种模式对比,阴影面积越小成本越低,显然RI更能将云计算的弹性发挥到极致,更省钱。自动化弹性样板间通过 Terraform 支持对 RI 按可用区和不同规格购买。结合实例规格配额的消耗情况,不断调整 RI 的购买数量,确保 RI 不过量采购或者 RI 不够用,最大化降低使用成本。


3.3 安装云监控插件解决弹性资源可监控问题


资源监控是 Kubernetes 中最常见的监控方式,通过资源监控可以快速查看负载的CPU、内存、网络等指标的使用率。在阿里云容器服务中,资源监控已经与云监控互通,弹性伸缩的节点池也已支持自动扩展出的 ECS 节点上自动安装云监控插件,借助该插件可实现容器节点的自发现,保障弹性资源纳入监控。当然,这一配置也可以通过 Terraform 来实现自动化:


  name                 = "autoscaling"
  cluster_id           = alicloud_cs_managed_kubernetes.this.id
  # 自动安装云监控插件
  install_cloud_monitor = true
  # automatic scaling node pool configuration.
  scaling_config {
    min_size                 = var.autoscaling_node_min_number
    max_size                 = var.autoscaling_node_max_number
    ...
  }
  ...
}
IaC Service」,这款服务可以识别任一 Terraform 模板中定义的资源,解析每个资源在 CURD 阶段使用到的 OpenAPI,最后根据解析后的结果自动导出 RAM Policy 的内容,提供给最终客户使用。


有了 RAM 权限策略自动化导出的能力,针对 Terrafrom 模板的鉴权,将会大大减少手动编写 RAM Policy 的工作,只需要将 Terraform 模板上传到 IaC Service 上,即可快速得到一个精准的、模板相关的 RAM Policy,也为整个弹性样板间的顺利执行提供了支持。


五、结果展示


借助自动化开通、配额中心的告警和 Quota 申请、预留实例券与 Terraform 的集成、容器服务与 Terraform 的集成和弹性伸缩的支持、RAM Policy 的自动化导出等多种能力,目前自动化弹性样板间已经全面落地,并且已经开源到 Terraform Registry: terraform-alicloud-modules/automation-elastic-landing.

自动化弹性样板间的运行方式有两种:


  1. Terraform 命令行

可以按照样板间仓库中的 README 的指引,依次执行 terraform apply  , source .bash_profileterraform apply  即可。


  1. IaC Service 在线运行

IaC Service 目前已经提供了可以在线运行 Terraform 的工作流,首先将弹性样板间 GitHub 仓库 Fork 一份到自己的账号下,然后登录 IaC Service 控制台,创建一个新的工作空间,选择 Fork 后的仓库,然后点击“发起新计划”即可执行样板间。

相比与 Terraform 命令行的方式,IaC Service 可以省去本地安装和运行 Terraform 的麻烦,同时借助 GitOps 的能力,可以实现修改应用文件后自动触发新的工作流、持续部署的能力。


自动化弹性样板间在运行成功之后,登录容器服务控制台,选择新建的集群,进入节点池,选择 autoscaling  节点池,即可看到当前集群下所有的伸缩活动:


8.png


登录 Agro UI 也可以如期地看到扩展出的应用正在部署和同步中:


9.png


应用的自动弹性扩展将会带动资源层面的弹性伸缩,当应用数的增加并且 Pod 负载超过阈值时,将自动扩展新节点;当应用下线后,随着 Pod 负载的降低将收回弹出的节点,完全做到的全自动化伸缩。

六、总结


总结一下,阿里云开放平台的「端到端解决方案」的价值和成果:


  • 与编排工具 Terraform 和 ROS 集成的云产品实现了 100% 自动化开通或者免开通,全面解决了客户在使用编排工具时的一大障碍;


  • 配额中心支持对 30+云产品配额项的管理,同时具备了配额告警、配额自动申请的能力;


  • 与 Terraform 集成的云产品从原来的 43 款提升到了 61 款,并且还在持续集成中;


  • IaC Service 不但提供了在线执行 Terraform 的能力,还支持对 Terraform 模板的自动解析和对应的 RAM Policy 的自动化导出,大大降低了客户使用 Terraform 的成本。


自动化弹性样板间的成功落地是对「端到端解决方案」价值和成果的直接体现,但并不是唯一受益方,解决客户在自动化和弹性流程中的痛点问题,解决云产品在对接横向产品中的痛点问题,做到真正的“降本提效”才是对该方案最大的反馈。后续我们也将继续在自动化、弹性等领域释放更多能量。

相关实践学习
基于云监控实现的监控系统
通过阿里云云监控功能给非阿里云主机安装监控插件,从而实现对非阿里云主机的各项指标进行监控和管理,在配置报警规则和报警人的情况下,能对特定的场景做出报警反应通知到报警人的手机上。
相关文章
|
26天前
|
弹性计算 运维 安全
云上DevOps自动化的最佳实践
本文介绍了云上DevOps自动化最佳实践,重点探讨了企业在上云过程中面临的成本管理、运维效率和弹性等问题。通过阿里云的产品和服务,企业可以实现自动化的资源管理、成本优化和高效运维。文章详细阐述了如何利用标签进行成本分析、选择合适的付费类型和实例规格、以及通过弹性伸缩降低成本。此外,还介绍了新功能发布,如统一的实例运维通道界面、AI辅助的运维工具等,帮助企业提升云上业务的管理和运营效率。
|
1月前
|
人工智能 JavaScript 前端开发
自动化测试框架的演进与实践###
本文深入探讨了自动化测试框架从诞生至今的发展历程,重点分析了当前主流框架的优势与局限性,并结合实际案例,阐述了如何根据项目需求选择合适的自动化测试策略。文章还展望了未来自动化测试领域的技术趋势,为读者提供了宝贵的实践经验和前瞻性思考。 ###
|
19天前
|
Kubernetes Java 持续交付
小团队 CI/CD 实践:无需运维,Java Web应用的自动化部署
本文介绍如何使用GitHub Actions和阿里云Kubernetes(ACK)实现Java Web应用的自动化部署。通过CI/CD流程,开发人员无需手动处理复杂的运维任务,从而提高效率并减少错误。文中详细讲解了Docker与Kubernetes的概念,并演示了从创建Kubernetes集群、配置容器镜像服务到设置GitHub仓库Secrets及编写GitHub Actions工作流的具体步骤。最终实现了代码提交后自动构建、推送镜像并部署到Kubernetes集群的功能。整个过程不仅简化了部署流程,还确保了应用在不同环境中的稳定运行。
51 9
|
1月前
|
运维 监控 持续交付
自动化运维在现代数据中心的应用与实践####
本文探讨了自动化运维技术在现代数据中心中的应用现状与实践案例,分析了其如何提升运维效率、降低成本并增强系统稳定性。通过具体实例,展示了自动化工具如Ansible、Puppet及Docker在环境配置、软件部署、故障恢复等方面的实际应用效果,为读者提供了一套可参考的实施框架。 ####
|
1月前
|
运维 监控 Devops
自动化运维实践:打造高效的DevOps流水线
在软件开发的快节奏中,自动化运维成为提升效率、确保质量的关键。本文将引导你理解自动化运维的价值,通过实际案例分享如何构建一个高效、可靠的DevOps流水线。我们将从持续集成(CI)开始,逐步深入到持续部署(CD),并展示代码示例来具体说明。准备好让你的运维工作飞跃式进步了吗?让我们开始吧!
|
1月前
|
jenkins 测试技术 持续交付
自动化测试框架的搭建与实践
在软件开发领域,自动化测试是提升开发效率、确保软件质量的关键手段。本文将引导读者理解自动化测试的重要性,并介绍如何搭建一个基本的自动化测试框架。通过具体示例和步骤,我们将探索如何有效实施自动化测试策略,以实现软件开发流程的优化。
94 7
|
2月前
|
机器学习/深度学习 数据采集 人工智能
智能化运维:从自动化到AIOps的演进与实践####
本文探讨了智能运维(AIOps)的崛起背景,深入分析了其核心概念、关键技术、应用场景及面临的挑战,并对比了传统IT运维模式,揭示了AIOps如何引领运维管理向更高效、智能的方向迈进。通过实际案例分析,展示了AIOps在不同行业中的应用成效,为读者提供了对未来智能运维趋势的洞察与思考。 ####
129 1
|
3月前
|
机器学习/深度学习 人工智能 运维
构建高效运维体系:从自动化到智能化的演进
本文探讨了如何通过自动化和智能化手段,提升IT运维效率与质量。首先介绍了自动化在简化操作、减少错误中的作用;然后阐述了智能化技术如AI在预测故障、优化资源中的应用;最后讨论了如何构建一个既自动化又智能的运维体系,以实现高效、稳定和安全的IT环境。
101 4
|
3月前
|
运维 Linux Apache
,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具
【10月更文挑战第7天】随着云计算和容器化技术的发展,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具,通过定义资源状态和关系,确保系统始终处于期望配置状态。本文介绍Puppet的基本概念、安装配置及使用示例,帮助读者快速掌握Puppet,实现高效自动化运维。
87 4
|
9天前
|
机器学习/深度学习 人工智能 运维
基于AI的自动化事件响应:智慧运维新时代
基于AI的自动化事件响应:智慧运维新时代
67 11

热门文章

最新文章

相关内容推荐

律师网站设计网站设计的背景烟台网站设计个人网站的设计与开发基于php技术的网站设计江北区商店设计网站表情设计网站中国包装设计网站吉林品牌网站设计服务电话好的网站设计培训机构票网站设计溧阳互联网网站设计开发报价行情贾汪区专业网站设计哪家公司好网站中的搜索页面设计琴行网站设计电影网站数据库设计设计师逛的网站平面设计网站都有哪些设计培训网站设计是网站设计网站的目的电影网站课程设计东阳网站设计全屋定制柜子设计网站设计一个网站的步骤网站设计要点摄影设计网站设计书籍的网站购物网站的设计与实现高端设计网站室内装修设计自学哪个网站好网站设计与维护价格高端网站设计价格西安高端网站设计山东青岛网站设计福田新房装修设计网站网站设计制作公司报价洛杉矶网站设计jk设计网站网站改版设计流程家具网站设计网站结构设计的内容肇庆购物网站制作设计师经常去的网站旅游网站的设计思路网站商城设计专业网站设计企业宁波招聘网站设计专题学习网站的教学设计茂名电气安全展示网站设计尺寸s网站设计网页设计与网站建设诚信臻动传媒国外著名的室内设计网站asp.net网站设计个人网站设计流程图艺术字体设计网站网站设计参考文献网站设计的心得体会设计师喜欢的网站免费办公室设计ppt网站企业门户网站设计与实现设计师网址导航网站清水河各大网站设计国外家装设计网站设计公司的网站网站首屏设计一般用什么字体先网站设计课程网站的设计与实现成都网站设计小企业网站设计规划网站 教学设计国外设计资讯网站室内设计素材网站推荐房地产网站设计流程图拉萨网站设计公司有关平面设计的网站合肥企业网站设计FLICKR网站制作冰淇淋设计网站川网站后台首页设计优秀展示设计案例网站外国软装设计师网站外国设计网站大全南京设计廊官方网站网站排版设计欣赏图标网站设计比较好的平面设计网站网站页面设计工具网站欢迎页设计电商网站ui设计网站建设与设计哪家不错logo设计网网站北京网站开发设计网站左侧导航设计网站的系统架构设计炫酷的网站设计营销型网站设计方案问答类网站设计的开题报告环境保护网站设计模板网站设计的思想平面设计外国网站设计师招聘网站网站设计最好设计师社交网站动漫原创设计图片网站太原超市logo设计网站什么网站可以免费提供装修设计图环保网站设计合肥网站设计培训网站设计描述中国优秀网站设计网站平台系统设计武汉装饰公司品牌设计网站东营网站设计公司新闻网站设计模板电商网站ui设计公司网站初稿设计宝山网站设计上海大隐设计网站菏泽网站设计设计师接单网站有哪些刘欢简历制作网站si设计网站网站设计开发环境一般网站设计多少钱3d设计的网站门户网站设计要求简约设计网站设计师找工作有必要有个人网站南京企业建设网站设计家具设计的网站手机端网站设计规格外国网站设计素材协会网站设计甜品网站设计如何提高网站设计技能意大利设计网站免费平面设计网站北京 高端网站设计网站布局设计分析特点民宿网站设计创意广告设计网站设计呜网站设计行业网站建设独立设计师网站网站图标在线设计湛江商务网站设计价格北京 高端网站设计网站背景设计电力线路设计相关网站河北网站设计毕业设计免费查重网站二层半农村房屋设计图网站网站设计模块品牌设计网站哪个网站可以找设计师武汉装饰公司品牌设计网站网站毕业设计设计说明企业logo设计网站实用的设计网站个人网站设计网站设计员唐山网站设计重庆大学毕业设计网站图纸设计 网站英文设计网站企业网站设计服务阳泉网站设计公司外国炫酷网站设计定位设计网站网站设计的步骤南宁网站设计上饶小型冷库设计网站上海公司网站设计优秀网站设计设计威客网站网站毕业设计要求深圳电力工程网站设计方案西安购物商城网站制作推荐莱芜网站设计字体设计教程网站台山网站建设设计订做农村私人别墅设计图网站设计师国内素材网站卡通动物设计网站培训网站设计长沙网站设计大概价格青岛公司网站设计卡通网站设计网站设计需求分析报告贴花设计网站banner设计欣赏网站展柜设计网站网站产品设计工具政府网站界面设计网站设计自学丽水组合式冷库设计网站篮球网站设计网站设计的费用长沙网站设计制作

合作伙伴

深圳网站优化推广公司

龙岗网络公司
深圳网站优化
龙岗网站建设
坪山网站建设
百度标王推广
天下网标王
SEO优化按天计费
SEO按天计费系统