Day 01-引言:Terraform 是个好东西

引言:Terraform 是个好东西。

课程内容与代码会放在 Github 上: https://github.com/chechiachang/terraform-30-days

赛後文章会整理放到个人的部落格上 http://chechia.net/

追踪粉专可以收到文章的主动推播

https://ithelp.ithome.com.tw/upload/images/20210901/20120327NvpHVr2QC0.jpg


许多年前,我第一次学 Terraform 的时候,

我问主管要不要导入看看 Terraform?

主管说:Go for it!

写完後,我就直接 apply 下去。於是弹指之间,我就把 staging 的 database 删掉了。那天下午,测试团队就直接放假回家。

真实故事。

虽然现在团队各奔东西,但大家仍常保联络,我可以找到人证实这件事。

至於如何弹指之间用 Terraform 删掉 database 而毫不自觉,大约会在第 15 章左右介绍,敬请期待。

你可能想问:那後来 database 怎麽办?这不是本文重点,但为了避免大家担心,说明一下:当时的公有云资料库备份已经做得很好,我们成功的从备份 snapshot 复原资料库。

所以这家公司终究没有导入 Terraform:谁想导入一进来就把 DB 砍掉的工具?

看到这观众可能满头问号:『所以你想表达什麽?,叫大家不要用 Terraform 吗?』

这故事还没完,请继续听下去。


几年之後,我到了一家新公司。一天,团队的主管跑来找我讨论一个困扰,他说:

『公司内部的网路架构与防火墙特别复杂,时常需要去公有云的 web console 手动修改。
然而你也知道团队有资深跟资浅的同事,资深的没问题,就上去点一点解决问题,
但比较菜的上去给我乱点,一天到晚出事我电话接不停』他一脸气噗噗。

『有没有什麽好工具可以帮助这些同事?』

我问主管要不要导入看看 Terraform?

主管说:Go for it!

那时我已经很熟了,嘛,至少不会再发生惨剧。

於是後来几天,我把 Terraform .tf 兜一兜,把已经存在的网路环境跟防火墙拉下来(import)到 Terraform 中,交给团队使用。

资深工程师本来就很熟 web console,现在连 console 都不用进了,看了说:『屌,我要学』

然後他就学会了。之後他上班滑手机的时间变多了,达成躺着上班的人生梦想。


在教导其他比较资浅的同事时,为了避免别人发现惨剧,我有特别叮咛:

如果用 Terraform 的时候,看到萤幕上出现 delete 跟红色的字,就请双手离开键盘,大声呼救。

这个原则在团队刚导入的时候蛮好用的,诸位不妨一试(笑)

总之,资深的把事情搞定了,资浅的跟着有样学样,大部分事情也都顺利解决了。看起来大家都学得不错,可喜可贺,我也没有再继续推动 Terraform 的事情。

後来我离职要交接的那天,Terraform 的部分毕竟是我导入的,就仔细地做了一下交接:

一个比较资浅的同事就跟我说:『所以这边就照抄然後按 apply 就好了吧』

李组长(我)眉头一皱:这个不是用好几个月,我以为你们很熟了。

但毕竟我要走了,所以我就良心提点一下,啊你这个边上官网查一下(给 link),这边来官方文件查一下(给link)

同事就说:『啊怎麽都英文』 他抓抓头:『我只记得 apply ,跟看到红字不要点。』

恩,人会一直资浅是有原因的。

这不是在呛人,毕竟每个人教育背景不同,语言能力不同。Terraform 虽然官方文件整理的不错,但说实在中文的资源并不多。如果英文能力不好,学起来其实很辛苦。不能怪你。

教了你 Terraform,却没有教会你 Terraform,其实也算是我的罪过。阿密陀佛,所以我今天要来还愿了。

这系列文章,会把我当初没教的东西都补齐,并且连范例一起开源放在 Github https://github.com/chechiachang/terraform-30-days 上,希望当年那位孩子,如果还没学会 Terraform 的话,来看这篇,然後照我的范例写个十遍,一甲子功力都传给你了(笑)

真实故事。


又过了几年,我来到 Maicoin。

我发现里面的人写 Terraform 写的很凶。绝大多数的 infrastructure 都使用 Terraform 管理,许多非公有云的服务,也都用 Terraform 管理。只差没用 Terraform 叫达美乐 pizza 而已。恩,这也不是开玩笑,实际上 Terraform 真的可以定达美乐。许多的操作与变更,都不在透过 web console 去点击 UI 更改,而是在 infrastructure as code 里处理。

我很喜欢同事强的跟鬼一样。这代表,只要我屁股继续坐下去,我也会强的跟鬼一样。

想要一起当同事?我们有开许多职缺(趁乱徵才XD),有意愿请私密我聊聊。

这篇用到的许多 Terraform 的想法与观念,都是来自身边的同事。感谢 Maicoin 。我学到的经验也不藏私,都会一一在後面的文章分享。


光阴荏苒,岁月如梭,一年一度的铁人赛又来了。

这是我第三次参赛,之前是佳作(第十二届),更之前是特优(第十一届),都是关於 Kubernetes 维运的文章,有兴趣的请见

写了两年文章,觉得技术工具类的分享,还是工作坊的形式效果最好。然而工作坊的准备也是十分繁杂。认真来说,今年是我最认真的一年,题目内容也是我觉得,最能带给观众实质帮助的一系列。

关於公有云管理有问题,我一率建议 Terraform。


每年参赛都来劝世(推坑)文

透过这次机会,除了回向(?)使用经验,分享给国内的工程师们外。也给自己一个成长的机会,让我再次花时间,重新检视这个每天上班都在使用的工具。

从头看了一遍官方文件,看了一些官方教学,看了许多社群的 Issue 与讨论串,看了一部分 Terraform 在 Github 上的开放原始程序码。

30 天後,我又变强许多。我想这才是我的初衷。

还没报名的观众,我强烈建议你也来写一篇,不为别人只为自己。

立马报!大不了没人看,大不了弃赛。写下去就比人强。真的!

参考题目:

  • 打开电脑 terminal ,输入 history 按下 enter 後,你第一眼看到的字,就是一个非常好的题目。
  • 去 browser 看 history ,找出最近有看过的文章,分享,翻译,补充心得与范例
  • 想像上班要做,觉得最头痛的工作,是一个很好的题目
  • 同上,今天觉得最简单的工作,也是一个很好的题目

真的想不到题目的,退一百步,我当题目:可以跟着我这篇做范例,然後写 30 天文章来骂我哪里写不好(XD),请於底下留言,我绝对会每天去拜读的。

想要发表三十篇文章,只是做或不做的问题而已


奥运杂感

运动员要表现好,在国内的环境要能支援。

软件实力要提升,软件开发的环境也需要提升。如果国内能更早接收到新的技术,也许台湾也是未来的软件强国。

虽然 Terrraform 已经发展好多年,不算是新技术(笑)。

抛砖引玉不是口号,很多社群的大大都是这样披荆斩棘,後人乘凉。这个课程只是跟这些大大的风,希望对产业环境有一些帮助。

扯多了


本次铁人赛是 terraform 实战 workshop。讲白了,技术只看文字是学不会的。希望大家都能有 hands-on 动手做的经验。课程提供由浅入深的范例,帮助大家学习。

课程内容与代码会放在 Github 上: https://github.com/chechiachang/terraform-30-days

直接 fork repository 就可以使用

  • 所有的课程内容都有 Azure Cloud 的程序码范例
  • 选择 Azure (除了因为我是 MVP 外)因为 Azure 提供的免费方案 非常适合没接触过的人试用
  • AWS 每天上班都在用,下班不想写 AWS

内容分成三阶段

  • 课程前段会示范 Terraform 的基本操作与观念
    • 希望大家能都动手摸过,有一点手感与程序码语感。稍微体会 Terraform 这个工具
  • 课程中期会讨论工作流程与文化,包含 gitflow,自动化,团队协作等
    • 希望大家看过,有个印象,需要时再回来找
  • 课程後端会有很多有趣的工具,许多更复杂的鬼东西这边会跑出来
    • 也是一样心里有个底,需要时候去查就好
    • 不过由於还没写到,我也不知道会跑出什麽东西

课程的大纲(预定)在这边

  • 也接受许愿想要看的题目,到我完赛前都接受点菜。请於底下留言

文章不会说明公有云的功能,需要自己做功课

  • 文章会说明实务上的工作流程,例如是如何查找文件资料,写出好管理的 public cloud resource 等等

Homework

azure doc 网址後面的 ?WT.mc_id=AZ-MVP-5003985 是个人 MVP 的追踪码,不会记录使用者行为,讨厌的话可以去掉

感谢各位


<<:  Day1 浅入浅出分散式储存

>>:  Day 01-Workshop Azure Get-Started

Day17 Middleware - Kafka & Redis

Kafka 简单来说,我们可以称後端和後端之间沟通的桥梁称为Middleware,就如我们的Lab,...

Forti是否可做到快速收拢?

想问一下 有从fortianalyzer收集到的log 是否可以用相关tools快速收拢 转换成po...

Day 29 AWS云端服务启用一条龙抓起来-CloudFormation

想要更便捷的来开启云端服务吗?CloudFormation帮我们搞定! 1. CloudFormat...

Day 17 - SVG 使用

唷呼~各位看官们今天最後一天上班日,明天就要放中秋连假了,欢呼吧,各位!下班後要搭乘大众运输返乡的...

Day23 Plugin 从零开始到上架 - ActivityAware 介绍

ActivityAware 如果插件需要与UI 进行互动,例如请求权限或更改Android UI ,...