Day 2 — Introduction — Terraform 與基礎架構即代碼 (IAC) 的解決方案
文章目標:說明 Terraform 如何作為基礎架構即代碼 (IAC) 工具,來解決現代 IT 架構的挑戰。
文章目標:說明 Terraform 如何作為基礎架構即代碼 (IAC) 工具,來解決現代 IT 架構的挑戰。
Day 16 — Terraform/GCP基礎 — GCP服務帳號 (Service Account) 與使用者 (User) 的差異
Day 19 — Terraform/GCP基礎 — 建議的 Terraform 開發最佳實踐 best practices
Day 22 — Terraform/GCP實戰:使用 GCP Console 創建 GCP 無伺服器服務Cloud Function
Day 23 — Terraform/GCP實戰:使用 Terraform 創建 GCP 無伺服器服務Cloud Function
Day 24 — Terraform/GCP實戰:使用 GCP Console 創建 GCP 無伺服器服務 (Cloud Run)
Day 25 — Terraform/GCP實戰:使用 Terraform 創建 GCP 無伺服器服務 (Cloud Run)
Day 26 — Terraform/GCP實戰:使用 GCP Console 創建 GCP 運算服務 Kubernetes GKE
Day 27 — Terraform/GCP實戰 :使用 Terraform 創建 GCP 運算服務 Kubernetes GKE
Day 28 — Terraform/GCP實戰:使用 GCP Console 創建 GCP 資料庫服務 Cloud Sql (PostgreSQL)
Day 29 — Terraform/GCP實戰:使用 Terraform 創建 GCP 資料庫服務 Cloud Sql (PostgreSQL)
Day 30 — Terraform/GCP實戰:使用 GCP Console 創建 GCP 資料庫服務 Cloud MemoryStore — Redis
Day 31 — Terraform/GCP實戰:使用 Terraform 創建 GCP 資料庫服務Cloud MemoryStore — Redis
雲端架構解決方案 — 基礎設施即代碼 IaC
基礎設施即代碼 IaC :
Infrastructure as Code, IaC 是一種自動化管理和佈署基礎設施的方法。
可以將基礎設施定義為程式碼,並使用自動化工具來佈署和管理基礎設施。讓管理和維護基礎設施變得更加容易和可靠,同時也提高了效率和安全性。
IAC的歷史
20世紀90年代,自動化工具Puppet和Chef開始出現,這些工具可以使用程式碼來自動化管理和佈署基礎設施,但這些工具主要用於管理單個主機,而不是整體的基礎設施。
雲端計算的興起與雲端基礎設施的可擴展性和自動化管理使得IAC更加容易實現和使用。現在許多自動化工具如Terraform、Ansible和AWS CloudFormation等都支援IAC。
雲端架構解決方案 — 基礎設施即代碼 IaC — Terraform
Terraform的歷史
Terraform的歷史可以追溯到2014年,當時HashiCorp公司推出了這個開源工具。Terraform的目標是成為一個通用的IAC工具,可以支援多個雲端平台。
Terraform最初支援的平台是AWS,但現在已經擴展到了包括Azure、Google Cloud、OpenStack和VMware等在內的多個平台。
Terraform的優勢
模組化設計:Terraform允許您使用模組(Module)來組織和管理您的基礎設施,這使得代碼更加易於編寫、測試和重複使用。
多雲平台支援:Terraform支援多種雲端平台,包括AWS、Azure、Google Cloud等等,這意味著您可以使用同一個工具管理多種雲端基礎設施。
雲端架構解決方案 — Terraform 知名企業都愛用
Airbnb:Airbnb是一家知名的線上住宿平台,他們使用Terraform來管理和佈署他們的AWS基礎設施。
Slack:Slack是一個知名的企業通訊平台,他們使用Terraform來自動化管理和佈署他們的AWS基礎設施。
Spotify:Spotify是一個知名的音樂串流平台,他們使用Terraform來管理和佈署他們的AWS基礎設施。
Uber:Uber是一家知名的共乘平台,他們使用Terraform來自動化管理和佈署他們的AWS基礎設施。
The New York Times:紐約時報是一家知名的報紙出版商,他們使用Terraform來管理和佈署他們的GCP基礎設施。
Terraform DevOps — 生產力再升級
利用Terraform結合DevOps,又可以再提升至少50%以上的生產,Terraform DevOps 會有下面四個面向:
雲端基礎設施版本管理
不同開發環境的配置與管理
CI/CD pipeline自動化驗證與部署
混合雲的平行部署
雲端基礎設施版本管理
利用Git版本控制系統來管理Terraform代碼和雲端基礎設施的變更和版本,可以幫助您更好地控制基礎設施的各種狀態。
使用版本控制系統的工作流程來管理不同環境的代碼、創建分支以進行佈署、合併請求以進行代碼審查和自動化測試等。
不同屬性環境的配置與管理
利用Terraform的變量功能,將不同屬性環境的硬體配置輕鬆地設置在Terraform代碼中。例如,開發環境使用1 vcpu, 3.7G的RAM ,而生產環境則可以使用4 vcpu, 16G 的RAM。
當您需要更改環境中的硬體配置時,只需修改相應的變量,而不需要手動更改代碼。可以提高基礎設施的可靠性和安全性,並且更輕鬆地管理不同屬性環境的基礎設施。
CI/CD pipeline 自動化驗證與部署
利用CI/CD pipeline 自動檢查Terraform代碼的語法和結構是否正確,並做測試驗證節省時間。
利用CI/CD pipeline 自動化部屬基礎設施,做到代碼發布即是雲端基礎設施更改,更彈性與省力的改變硬體配置。
混合雲的平行部署
使用Terraform結合混合雲的平行部署,可以實現跨雲端環境的基礎設施自動化管理,同時部署AWS、Azure、Google Cloud三種環境。
Terraform也支援地端與容器化環境,如docker、kubernetes、open stack與proxmox的支援,相較其他工具對混合雲的整體支援較佳。
總結 Summary
基礎設施即代碼 IAC的概念與歷史:可以將基礎設施定義為程式碼,並使用自動化工具來佈署和管理基礎設施。
Terraform的歷史與優勢:HashiCorp公司推出了Terraform,目標是成為一個通用的IAC工具,同一個工具管理多種雲端基礎設施。
知名企業都在使用Terraform來自動化管理和佈署其雲端基礎設施:Airbnb、Slack、Spotify等知名企業。
Terraform DevOps 四個面向:雲端基礎設施版本管理、不同開發環境的配置與管理、CI/CD pipeline自動化驗證與部署、混合雲的平行部署。