【Terraform实现云服务基础设施既代码(IaC)案例实战-1】:树苗科技公司的自动化转型之旅

天凯
  • 收获赞:3
  • 擅长领域:负责阿里云OpenAPI体系相关的产品,如:Terraform、IaC平台、配额平台、容量系统、网关、开发者门户及开发工具产品的管理工作。

背景

树苗科技公司业务上云2年有余,随着技术的不断发展。运维团队支持业务变更配置、开资源、删资源等过程加班到深夜一两点已是家常便饭。为了进一步提升工作效率,运维总监张三决定对当前业务交付路径进行统一梳理,借助IaC的理念和Terraform自动化工具逐步实施运维生产自动化,改善组内成员频繁加班的现状。

期望:

  1. 能够建设生产网和测试网络的业务交付自动化

  2. 能够有一个轻量级前段给业务团队自己申请

  3. 能够有权限管理和版本控制,防止一键删资源跑路的情况

  4. 能够使用容器技术,在短时间内交付可扩容的业务脚本

组织背景

image.png

树苗科技公司共有四个部门,运维部门,品种研发部门、企业财务部门和企业安全部门。

运维部门:主要负责云上资源的管理工作,支撑各部门的业务。

品种研发部门:主要负责新品种研发和产品发布上市过程。会与运维部门频繁交付。经常会申请开通测试环境,新业务建设和旧业务扩容等需求。

业务痛点

  1. 组织发展快,云上资源增速大于给运维团队的人员配比

  2. 重复劳动多,业务方需求天天变,运维成了苦力活

  3. 老板挑战多,天天开个资源这么慢,还经常出问题

  4. 业务价值难讲,基础设施运维都不需要了,哪还有那么多事?

  5. 全责不对等,运维团队没有对业务团队的约束力,只能被动响应。还要应付安全、合规、审计、财务等多方的挑战。

业务构思:

因此,张三安排运维主管李四来主导整个调研和落地工作。 李四经过初步设计后,给出一张简单的架构图,并开始选取技术和工具对试点项目落地。在未来,希望也能与dingding等移动办公软件集成,实现审批消息推送。

image.png

技术和工具

李四对市场上的技术进行了选型和调研,决定采用下面的技术和工具手段进行。

工具名称

用途

链接

备注

Terraform

用作基础设施生产交付的手段,能够适应多云环境,社区活跃度较好。

https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/instance

采用最新版,符合需求后不做频繁更新。

Gitlab

版本控制,权限管控,审批集成

https://about.gitlab.com/

从代码的私有性上来看,GitLab 是一个更好的选择。但是对于开源项目而言,GitHub 依然是代码托管的首选。

Webhook

托管运行代码,跟terraform的plan,apply指令集成。是gitlab的众多集成项目之一。

https://docs.gitlab.com/ee/user/project/integrations/webhooks.html

任意一种前端构建工具

基于python的轻量级前段,轻易可以搭建表单等业务。

不需要太复杂,越简单越好。主要是表单建设。

期望效果

  1. “森林公司”的基础设施选型逐步收敛,由运维团队制定主流的基础设施框架。

  2. 交付周期从5个工作日缩减为2小时内

  3. 对于到期项目,能够快速释放

  4. 运维人员从此躺着干活,更多精力投入到更有成长和价值的事情上。

相关材料

阿里云Terraform官网:

https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/instance

Gitlab官网:

https://docs.gitlab.com/ee/install/

Gitlab-runner:

https://docs.gitlab.com/runner/install/

Hashicorp/terraform docker镜像

https://hub.docker.com/r/hashicorp/terraform/tags

Docker安装:

https://docs.docker.com/desktop/mac/install/

阿里云镜像服务:

https://cr.console.aliyun.com/cn-shanghai/instances/mirrors