iT邦幫忙

2021 iThome 鐵人賽

DAY 1
0
DevOps

關於我幫新公司建立整套部屬流程那檔事系列 第 1

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 進行部署
後來逐漸優化並導入其他工具
逐漸演變成現在多套工具的狀況
也如同我引用烘焙王的那段話
在我們看到各式各樣的組合後
我們也可以建立一個屬於我們自己的
而我的這項組合也提供給各位參考


下一篇
EP02 - 配置本機虛擬機械並安裝 AWS-CLI
系列文
關於我幫新公司建立整套部屬流程那檔事30

尚未有邦友留言

立即登入留言