EP01 - 开始建置流程之前

英国面包、法国面包、德国面包通通都有,
就是没有属於日本的面包既然如此今後只好自己创造,
这故事就是叙述一个拥有太阳之手的热血少年「东和马」,
从小就立志要让全世界骄傲的日本人,
做出专属於日本人的面包,
在日本缔造的伟大抒情史诗~
烘焙王

前言

不得不说
现在工程师越来越难当
前端工程师有时被要求会设计、图片切版
後端工程师被要求需要知道 Infra 管理及 DevOps 相关知识
在公司资源有限的情况下
工程师除了通灵之术以外还需要身兼多职
云端的普及虽然带给大家许多方便
让公司不需要负担设备的购买及折旧
但也让身兼多职的工程师不得不强制生为超级赛亚人3
(即使如此还不一定打得赢魔人普乌)
在担任全端工程师兼行销的同时
还要思考如何兼顾监控及自动化部属
这个残酷的现况也是我这次的主题想分享给大家的
面对陨石开发法
我选择将整套持续整合、持续部属建起来
虽然持续整合、持续部属不是 DevOps 的全部
但是透过建置整个流水线的过程
除了可以解决现在的问题
让我承受更多陨石以外
我能体会到 DevOps 所想要传递的精神
也更了解 Develop 和 Operating 之间的协作

内容

本次的挑战内容将分三部分
第一部分
从 AWS 建立 Account 并设定 aws cli 开始说起
设定完环境後使用 Terraform 建置 Infrastructure
并开始串接 Gitlab 和 Jenkins
将 Hello Project 部属到 EC2
会是一个大量使用 Terraform 建立许多 EC2 的部分

第二部分
首先会将服务容器化
创建 EKS (AWS K8S) 来运行这些服务
环境上开始区分测试环境和正式环境
并部属到这些环境上
(环境是不是要再另外建一套,可能需要思考一下,碍於篇幅,应该会手把手教建立 Docker,并改成使用 Octopus 部署到 EKS)

第三部分
最後会着重在监控的建立和维运的部分
预计在服务中建立 CloudWatch Agent
将服务监控的数据和 Log 传送 AWS CloudWatch
并在 K8S 上建立 Grafana 来做为监控的仪表板工具
维运则是属於服务的备份和告警机制

前言结语

本次挑战旨在 CI/CD 的建立
以及 IaC(Infrastructure as Code)的应用
范围涵盖非常广
因此观念的部分没办法详细解说
我也没有把握写得好
前几届的铁人赛有前辈撰写的非常清楚
建议参考完本次的实作以外
也记得去看其他前辈写的观念文章恶补一下
观念和实作互相补足
对於实作的理解会更有帮助

中间使用到的工具很多
有用到 Gitlab、Jenkins、Octopus Deploy
以及其他 aws 服务
我相信大家在做自动部署的时候也都是同样的问题
很少有人是一套走工具做完全部
早期在做部署时
会用 Jenkins 再加上 shell script 进行部署
後来逐渐优化并导入其他工具
逐渐演变成现在多套工具的状况
也如同我引用烘焙王的那段话
在我们看到各式各样的组合後
我们也可以建立一个属於我们自己的
而我的这项组合也提供给各位参考


<<:  [Day3] 驱动OpenGL

>>:  【LeetCode】Monotonic Stack

【C language part 1】浅谈 C 语言-认识C

在台科大大一的课程当了助教,也写了不少给大一新生看的讲义。 这边就分享一下当了两年助教的讲义内容给各...

Day15 - BMI计算机

BMI(身体质量指数)是用自己身高、体重的比例,来当作是否过胖的「身高体重指数」 它的计算方法也很简...

[DAY-21] 获得工作机会 谈条件 做出决定

我爱我的工作! 我爱我的工作! 我爱我的工作! 修完 虫虫 直接开夜车 来胡言乱语 不为过吧 !!...

NNI的特性及核心功能

上次开场白说明了NNI最基本的Hyper-parameters(超参)调整,其实只是其中的功能之一。...

Day2 资料储存 - block storage基础

Block storage是最基本的储存系统,所以让我们从这里开始 我们都知道数据是以1和0储存在某...