云计算概念
云计算主要是提供计算服务,例如服务、存储、网络等;对于云服务(SAAS),通常只需使用多少支付多少,从而帮助降低运营成本,是基础设施更有效的运行,并能根据业务需求的变化调整对服务的使用。
云计算类型
公有云
多租户面向个人或者企业,由第三方云服务商托管或者运营
私有云
专供一个业务或组织使用的云计算资源,也可以是公司的数据中心,一般是自建或者云供应商的定制化版本。
混合云
对公有云和私有云进行整合混用,通过一些云之间的专线进行共享数据,一般常见于金融行业
云资源的管理
对于云资源的管理,我们更多的使用云厂商的控制台,来进行资源的创建、修改、删除、删除等操作,
当前存在的一些可以优化的方式?
当我们有批量创建多套资源环境的需求,比如发版测试环境的快速搭建,那我们除了控制台资源是否还是有更快捷部署方式?
基础设置即代码(Infrastructure as Code)
通过以代码的方式来管理(定义、部署、更新和销毁)基础设施
借此问题,我们引入了一个概念,基础设置即代码(Lac),因为云厂商的平台开始提供更复杂的基础设置资产,传统系统管理角色的复杂性也在增加,快速配置和管理复杂的云基础设施的需求就成了 Lac 的诞生前提。
Lac 可以将基础设施的资源编码为文本文件,然后通过 DevOps 的如眼见开发的最佳应用实践应用于云基础设置资源的管理,包括的资源为了虚拟机、网络、负载均衡、数据库等其他应用程序。
云基础设施托管平台(尤其是IaaS平台)的兴起使Infrastructure as Code成为可能。IaaS允许通过远程API按需供应和申请云资源,这些API为提交到基础设施配置文件的属性设置模板。IaC的自动化功能可以获取配置文件并针对远程IaaS API运行它们。
一旦团队将基础设施配置纳入到版本控制中,他们就可以在CI/CD中实现基础设施更改。基础设施更新可以遵循DevOps工作流程。如果团队成员修改了一个基础设施配置文件,则可以使用pull request和代码审查工作流来审核和验证修改的正确性。此外,支持DevOps的基础设施即代码系统可以自动完成基础设施部署和回滚。
IaC是一种高效的配置管理形式,专注于自动化云IT基础设施管理。一旦IaC就位,CI/CD就能达到自动实现更改项目基础设施的级别。IaC为围绕基础设施变化的沟通和透明提供了许多有益的手段。IaC需要一些前提依赖,例如云平台和自动化工具,主流云厂商都可以提供这些功能。
引用文章 :基础设施即代码
Lac 实践:Terraform
Terraform 官网
Terraform 是一个开源基础设施即代码工具,它提供一致的 CLI工具流 来管理数百个云服务。Terraform 通过编写声明式配置文件来操作 API 接口。
HashiCorp Terraform 是一种基础架构即代码工具,可在可读的配置文件中定义云和本地资源,可以对其进行版本控制、重用和共享。还可以使用一致的工作流程在整个生命周期内配置和管理所有的基础架构。Terraform 可以管理负载均衡以及 DNS条目 和 SaaS 功能等高级组件。计算、存储和网络资源等低级组件。
Terraform 工作原理
Terraform 通过其应用程序变成接口(API)在云平台和其他服务上创建和管理资源。Provider 使 Terraform 能够通过可访问的 API 与几乎任何平台或服务一起工作。
Terraform 强大的社区
Terraform Registry
HashiCorp 和 Terraform 社区已经编写了 1900 多个提供程序来管理数千种不通类型的资源和服务
Terraform 安装
下载地址
Terraform 本身就是一个命令,所以可以直接安装
配置好以后,通过 Terraform version 查看部署是否成功