自动化AutoTalk第十二期-使用Terraform高效实现云自动化

简介: 《自动化AutoTalk第十二期》聚焦使用Terraform高效实现云自动化。内容涵盖IaC(基础设施即代码)概述、Terraform简介与核心组件、实现云自动化步骤及最佳实践。通过Terraform的统一编排语言HCL和对资源生命周期管理,结合CI/CD流程,实现云资源的自服务管理。强调了Terraform在环境准备、业务集成、生产配置及持续监控中的应用,并分享了结合GitLab/GitHub进行代码托管和流程标准化的最佳实践。

自动化AutoTalk第十二期-使用Terraform高效实现云自动化


内容介绍:

一、IaC概述

二、Terraform 简介

三、Terraform核心组件

四、Terraform实现云上自动化的步骤

Terraform最佳实践

 

一、IaC概述

本期课题是使用Terraform高效实现云自动化,首先了解Iac的概念,I是infrastructure是云上的资源,code是代码,基础设施及代码是通过易读的配置文件或者代码来定义和管理基础架构,首先资源的定义,资源不仅包括云服务器、实例、对象存储空间等Iaas的资源,也包括PasS层的,比如K8S的Namespace

SaaS层的DNS条目的抽象的资源,IaC方法分成两类,一种命令式,一种声名式,命令式主要关注基础设施创建的过程具体操作,通过代码来描述执行的具体命令,另外一类声明式关注基础设施创建的最终状态和目标主要通过代码去描述期望的状态,IaC的工具是任何基于编程方法以声明式或者命令式执行、变更或者配置基础架构的框架或者工具,阿里云有一方的工具三方的工具,比如一方有Ros,是资源编排三方支持被广泛使用的开源工具Terraform。

1736909418795.jpg


二、Terraform 简介

TerraformHashiCorp公司推出的开源编排工具,阿里云是官方四大MajorProvide之一,Terraform有如下特点,首先在编排方面提供统一的编排语言,就是HCL也支持Json以代码的方式定义资源,底层对资源的增删改查由云厂商实现。

第二点在管理方面对代码模板的编写,是对资源的定义,对模板的管理是对资源的管理Terraform本身会解析执行代码,管理资源的状态信息。第三是在标准方面,以Terraform的资源模型来管理资源、安全审计等能力,和模型对齐,以代码化方式定义。最后是流程,Terraform和vVC以及ITSMCI/CD等流程做集成,实现云资源的自服务管理,基于流程让整个系统和业务自动化和标准化。

1736909436805.jpg


三、Terraform核心组件

下面介绍Terraform核心组件,首先阿里云是hash cop公司的四大major provider之一,provider本质上是云服务商或者Terraform的提供商。实现CRUD接口,并且完成相关API的编排,客户在模板中需指定所使用的provide目前Terraform支持的provider3000+,另外一个概念resource,一个具体的资源或者服务都定义为资源,可以是IaaS层的资源(ECS实例VPC网络)。可以是SaaS层的资源(如DNS路由条目),每个资源都具备完整的CORD的生命周期,在Terraform中,一个资源和另一个资源的关系通常被定义为资源,如磁盘和ECS实例的挂载

Data Source专门提供对资源的动态查询能力,比如获取存量ECS、可用区实例规格、实例镜像State模板中定义的资源完成操作之后,将资源属性及其资源管理保存文件中,这个文件称之为状态文件StateState有Local和Remote之分。如OSS、AKSS3。module一个资源管理涉及若干个资源封装为一个开箱即用的Package。写java代码封装一些sdk这种方式提升通用性、复用性和分享的能力。

Package是Module,下面介绍Terraform主要操作首先init操作Terraform的初始化,加载模板依赖的Provider Provisioner、Module Remote State等,是其他所有命令的前提第二个是plan命令预览模板中定义的资源,执行plan时Terraform创建或者修资源apply 是真正的执行创建和变更的操作,destroy 是把模板里面的所有资源销毁掉import是把没有用Terraform管理的资源导入到State文件里面。同时补充Terraform模板,通过Terraform实现后续资源的持续管理。

1736909480360.jpg


四、Terraform实现云上自动化的步骤

下面介绍实现云上自动化的步骤,首先环境准备,比如下载安装Provide和Modul配置云上厂商的账号和环境,最后下载IDE的插件,帮助方便写Terraform的代码,这个过程参考一些文档或者示例,可以在PlayGround环境里面做一些试运行,比如阿里云Cloud Shell里面集成Terraform,在里面做尝试,调试完做真正的业务的集成,把存量的资源导入到State文件,同时补充模板的信息。这个过程要考虑做代码的组织通过Modele的方式实现代码的复用。

业务集成的阶段通过测试的手段保证模板最后执行下来的结果是符合预期的,结合开源安全合规的一些组件,实现静态代码的检查。生产环境的配置,比如状态的文件管理Local管理和Remote管理,Remote管理需要开通OSS资源,对状态文件进行配置,把整个Terraform的执行集成到CI/CD的流程。比如阿里云在真正的做资源的创建的时候,有开通权限的操作可以前置的封装出来具体的模板,前置去执行,最后持续运行和监控阶段主要关注,

第一点是运营有报错,比如云厂商提供的错误诊断的手段排查问题。

第二点是要针对Terraform的云情况做监控报警。

最后一点是配置漂移,比如Terraform管理资源,同时其他的团队通过控制台做资源的修改或者资源的新建,这一部分资源就不在Terraform的管控范围之内,就叫配置漂移,配置漂移把Terraform模板云上的资源状态做对齐,否则可能再次执行Terraform有diff信息。如果没有特别关注,比如控制台的通道改动的状态会覆盖掉。

1736909531109.jpg

 

五、Terraform最佳实践

最后关于Terraform使用的最佳实践,主要两点,第一点是推荐用Terraform的时候,结合到具体的代码仓库的管理系统,比如GitLab或者GitHubTerraform代码用工具托管,做深基础设施对代码的管理。同时可以把整个Pipeline的流程封装成一个服务,集成到自服务的户。比如基础设施团队提供的能力,可以让研发通过服务的方式申请和管理资源,基础平台的团队只需要做代码的Review或者流程的审批,就实现研发团队的资源管控和生产的目标。这种方式主要特点,第一个特点是自服务的能力,让研发团队通过自助的方式做申请和管理,有助于提高资源的管控的效率,如果没有自服务的门户,让研发团队代码商库里面做提交PR和做代码的审核合并,最后执行,通过Pipeline的方式去执行Terraform的命令。

第二个特点是把整个的流程,比如Terraform代码的提交,Terraform的plan的触发器以及apply的具体执行,通过Pipeline的方式编排,实现整个流程标准化,以及整个Terraform能力平台化。第三个特点是通过IaC的管理架构云平台对接简单不需要编排大量的API,有效避免资源供给的效率瓶颈。

1736909554609.jpg

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
相关文章
自动化AutoTalk第十一期-应知必会的自动化工具之阿里云配额中心
本次分享主题为“应知必会的自动化工具之阿里云配额中心”,课程围绕三个方面展开:1) 认识配额及其作用;2) 配额管理的意义与方法;3) 阿里云配额中心的功能和使用场景。通过学习,了解如何有效管理和监控配额,避免资源限制影响业务,并实现自动化集成,提升运维效率。
31 10
自动化AutoTalk第十五期:自动化场景-多账号自动化场景下的AK管理方案
自动化AutoTalk第十五期探讨了多账号自动化场景下的AK管理方案。主要介绍了通过阿里云的实例角色和STS Token减少AK暴露风险,避免硬编码AK带来的安全隐患。最佳实践包括定期轮转AK、使用临时Token、分环境管理凭据,以及利用ECS实例角色实现安全的跨账号资源操作,确保在多账号架构中提升自动化程序的安全性和管理效率。
自动化AutoTalk第十期:应知必会的自动化工具-阿里云SDK
本期《自动化AutoTalk》第十期聚焦应知必会的自动化工具——阿里云SDK。主要内容分为三部分:1. 阿里云SDK概述,介绍其支持的300多款云产品和8种主流编程语言;2. 快速生成SDK示例,以Java语言为例展示如何通过OpenAPI门户快速生成并下载SDK工程;3. 进阶特性介绍,涵盖签名算法、Endpoint配置、代理设置、HTTPS请求配置、超时机制及异常处理等重要功能。通过这些内容,帮助开发者更高效、安全地使用阿里云SDK。
自动化运维:Ansible与Terraform的比较
【8月更文挑战第16天】Ansible和Terraform都是自动化运维领域的重要工具,它们各自以其独特的功能和优势在市场中占据了一席之地。在选择使用哪个工具时,用户应根据自己的实际需求和应用场景进行综合考虑。如果主要关注系统配置管理和应用程序部署,那么Ansible可能是一个更好的选择;如果主要关注基础设施的自动化部署和管理,那么Terraform可能更适合您的需求。
构建高效自动化运维体系:Ansible与Terraform的协同策略
【4月更文挑战第24天】 在现代IT基础设施管理中,自动化已成为提升效率、确保一致性和降低人为错误的关键。本文将探讨如何通过结合Ansible和Terraform这两大自动化工具,构建一个强大且灵活的自动化运维体系。Ansible以其强大的配置管理能力被广泛认可,而Terraform则以编排各类云资源见长。文章将深入分析两者的功能特点,并提出一种整合策略,以实现从代码部署到资源管理的全流程自动化,旨在为运维团队提供一套可落地的自动化解决方案。
自动化AutoTalk的优势
自动化AutoTalk的优势
自动化AutoTalk第二期-为什么要做云上自动化?
本期精彩内容:用自动化管理改变“手工作坊”,自动化应用场景大图,自动化流水线作业一览, 经典客户自动化案例解析,云基础设施自动化优势
基础设施自动化实践——用Terraform自动化构建云上环境
前言在我们平时的开发工作中,经常会遇到需要搭建各式各样的云上环境,比如项目开发环境、测试环境、部署环境、客户展示环境等。而有时这些搭建过程并不轻松,如可能涉及很多台ECS,可能对镜像或配置有特殊要求,可能涉及较为复杂的网络配置等。而对于这些较为复杂多变的环境部署要求,传统的人工手动配置方法,不仅耗时费力,还有一个很大的问题就是难以追踪管理、难以复用。比如负责搭建环境的架构师如果休假了,团队其他人很
873 0
基础设施自动化实践——用Terraform自动化构建云上环境

热门文章

最新文章

推荐镜像

更多