ref: https://faun.pub/the-best-infrastructure-as-code-tools-for-2021-b37c323e89f0
這篇文章是一個 IaC (Infrastructure as Code) 的推廣文,文章分成幾個部分,從 IaC 的基本概念與應用談起,接者分析了幾個常見的 IaC 工具,最後探討了實際的使用案例
文章偏長,對於 IaC 概念很熟悉的讀者應該可以很快速地看完,以下針對部分進行一些摘要
The need for Infrastructure as Code
作者先描述過去幫機房部署新伺服器時的各種流程,機器少量時能夠透過人力慢慢處理,但是這類型的操作繁瑣,重複且惱人
為了讓這些流程處理得更佳順遂與一致,會有各式各樣的 scripts 等相關工具被開發出來,而這些流程慢慢的會往自動化的方式去發展。
IaC 文化的興起會使得有愈來愈多獲得共識的工具被開發出來,這使得 IaC 的使用門檻會有機會降低,愈來愈多的使用者能夠更簡易的透過 IaC 的方式來管理與維護自身的架構
Benefits and reasons to implement IaC
IaC 帶來的好處是非常顯著的,譬如
1. 將 Config 檔案當作整個環境的 sing source of truth
2. 每次的部署都是基於上述的 Config 來部署,能夠確保每次部署都獲得一樣的結果,避免人為的反覆長期操作帶來的錯誤
3. 透過程式化的方式去建置環境能夠更快速的去應變各種環境需求,對於 testing, developing, production 等各種變化都可以透過 config 的差異來快速搭建
4. Config 也可以透過 Git 的方式去管理來獲得更好的可稽核性與管理性。
Principles and best practices of Infrastructure as code
作者這邊列出了幾個實作上的推薦方式
1. 透過版本控制的方式來管理 IaC 的設定檔案,能夠讓維運人員使用開發者常見的開發合作流程來管理 IaC
2. 將 IaC 的工具整合到 pipeline 的 CI/CD 流程,讓 CI 流程去檢查 IaC 的設定是否符合預期以及 CD 流程來幫忙自動部署修改架構
Infrastructure as code tools
這個區塊作者列出了幾個常見的工具,包含 Terraform, CloudFormation, Puppet, Pulumi 等,接者又透過一張大表格來比較 Terraform/Pulumi/CloudFormation 三者的差異
Pulumi 這工具這一兩年開始聲勢比較多,跟 Terraform 一個最大的差異我想就是撰寫的方式,可以透過 Js, Go, Python...等程式語言來描述架構而並非使用 Terraform 自定義的 DSL 來管理。
最後面作者也列舉了六七個適合 IaC 的使用場景,有興趣的歡迎閱讀全文
同時也有1部Youtube影片,追蹤數超過12萬的網紅prasertcbs,也在其Youtube影片中提到,เนื้อหาจะเป็นการจำลองสถานการณ์ว่าเราได้พัฒนาโปรแกรมขึ้นมา โดย source code เก็บอยู่ใน folder โดยไม่มีการใช้โปรแกรมสำหรับจัดการเวอร์ชั่นของซอฟแวร์มาก่อน...
「config python」的推薦目錄:
- 關於config python 在 矽谷牛的耕田筆記 Facebook 的最讚貼文
- 關於config python 在 prasertcbs Youtube 的最讚貼文
- 關於config python 在 Python 讀取ini 設定檔ConfigParser 用法教學 的評價
- 關於config python 在 google/gin-config: Gin provides a lightweight configuration ... 的評價
- 關於config python 在 how to change python-config into my current python version 的評價
config python 在 prasertcbs Youtube 的最讚貼文
เนื้อหาจะเป็นการจำลองสถานการณ์ว่าเราได้พัฒนาโปรแกรมขึ้นมา โดย source code เก็บอยู่ใน folder โดยไม่มีการใช้โปรแกรมสำหรับจัดการเวอร์ชั่นของซอฟแวร์มาก่อน ลองมาดูว่าหากต้องการใช้ git เพื่อที่จะทำ version control ให้กับ source code ใน folder นี้จะต้องทำอย่างไร โดยมีคำสั่งหลัก ๆ ที่ใช้เรียงตามลำดับดังนี้
การใช้ git init เพื่อสร้าง local repository ให้กับ project/folder
การใช้ git config --global user.name "username" เพื่อกำหนดชื่อผู้ใช้
การใช้ git config --global user.email "me@anyemail.com" เพื่อกำหนด email ของผู้ใช้
การใช้ git add .
การใช้ git commit
การใช้ git remote add origin https://github.com/prasertcbs/atlas.git
การใช้ git push -u origin master
เชิญสมัครเป็นสมาชิกของช่องนี้ได้ที่ ► https://www.youtube.com/subscription_center?add_user=prasertcbs
playlist สอน git เบื้องต้น ► https://www.youtube.com/playlist?list=PLoTScYm9O0GGsV1ZAyP4m_iyAbflQrKrX
playlist สอนภาษา Python ► https://www.youtube.com/playlist?list=PLoTScYm9O0GH4YQs9t4tf2RIYolHt_YwW
playlist สอนภาษาไพธอน Python OOP ► https://www.youtube.com/playlist?list=PLoTScYm9O0GEIZzlTKPUiOqkewkWmwadW
playlist สอน Python 3 GUI ► https://www.youtube.com/playlist?list=PLoTScYm9O0GFB1Y3cCmb9aPD5xRB1T11y
playlist สอนภาษา C เบื้องต้น ► https://www.youtube.com/playlist?list=PLoTScYm9O0GHHgz0S1tSyIl7vkG0y105z
playlist สอนภาษา C++ ► https://www.youtube.com/playlist?list=PLoTScYm9O0GEfZwqM2KyCBcPTVsc6cU_i
playlist สอนภาษา C# ► https://www.youtube.com/playlist?list=PLoTScYm9O0GE4trr-XPozJRwaY7V9hx8K
playlist สอนภาษา Java ► https://www.youtube.com/playlist?list=PLoTScYm9O0GF26yW0zVc2rzjkygafsILN
playlist สอนภาษา PHP เบื้องต้น ► https://www.youtube.com/playlist?list=PLoTScYm9O0GH_6LARFxozL_viEsXV2wgO
playlist สอนภาษา R เบื้องต้น ► https://www.youtube.com/playlist?list=PLoTScYm9O0GF6qjrRuZFSHdnBXD2KVICp
#prasertcbs #prasertcbs_git #prasertcbs_github
config python 在 google/gin-config: Gin provides a lightweight configuration ... 的推薦與評價
pip install gin-config. Install Gin from source: · git clone https://github.com/google/gin-config cd gin-config python -m setup.py install. Import Gin (without ... ... <看更多>
config python 在 Python 讀取ini 設定檔ConfigParser 用法教學 的推薦與評價
以上述的config.ini 為例,我們要寫一個可以讀取這個ini 設定檔的python 程式,必須要能解析ini 檔的內容結構,而python 內建已經提供了configparser ... ... <看更多>