- Day1 — Introduction — 現代 IT 架構問題與解決方案
- Day 2 — Introduction — Terraform 與基礎架構即代碼 (IAC) 的解決方案
- Day 3 — Terraform 基礎 — 申請 GCP 免費帳號
- Day 4 — Terraform基礎 — Terraform 簡介與安裝
- Day 5 — Terraform基礎 — 掌握 Terraform 元件
- Day 6 — Terraform基礎 — Terraform 工作流程
- Day 7 — Terraform基礎 — 效率提升:使用 bash alias
- Day 8 — Terraform基礎 — Provider version 的概念與使用
- Day 9 — Terraform基礎 — 資源 (Resources) 的概念與使用
- Day 10 — Terraform基礎 — 配置器 Provisioners 的概念與使用
- Day 11 — Terraform基礎 — 變數 (Variables) 與輸出 (Outputs)
- Day 12 — Terraform基礎 — 變數 (Variables) 種類與使用順序
- Day 13 — Terraform基礎 — 資料來源 Data Sources 的概念與使用
- Day 14 — Terraform基礎 — State 的概念與使用
- Day 15 — Terraform基礎 — Backend 遠端狀態後台的概念與使用
- Day 16 — Terraform/GCP基礎 — GCP服務帳號 (Service Account) 與使用者 (User) 的差異
- Day 17 — Terraform/GCP基礎 — 設定 GCP 服務帳號 Service Account
- Day 18 — Terraform/GCP基礎 — 連結 Terraform 與 GCP:使用者帳號與密碼
- Day 19 — Terraform/GCP基礎 — 建議的 Terraform 開發最佳實踐 best practices
- Day 20 — Terraform/GCP實戰:使用 GCP Console 創建 GCP 運算資源服務
- Day 21 — Terraform/GCP實戰:使用 Terraform 創建 GCP 運算資源服務
- 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
1. 現代IT 的主要架構
現代IT 的主要架構主要分成以下三種:
- 自有雲:企業自己建立的雲端基礎設施,有較高的控制權和安全性,但成本較高。也就是擁有自己的資料中心。
- 公有雲:由雲端服務供應商提供的雲端基礎設施和服務,彈性和可擴展性高,提供各種自動化工具和API。例如aws, gcp, azure。
- 混合雲:同時使用自有雲和公有雲的組合,可以更好地平衡成本、控制權和靈活性,但需要額外的管理和配置工作。
2. 現代IT架構面臨的問題
現代IT架構無論何種架構的形式,都會面臨這四個問題:
- 基礎架構管理工作
- 自動化工具
- 開發效率
- 成本Pay as you go
那為何越來越多的企業都已經從自有雲轉向擁抱雲端或是混合雲的架構呢?我們先來講解雲端服務在這四項工作帶來的轉變
雲端架構設計 — 滿足業務需求
簡化基礎架構管理工作:
- 傳統自有IT資料中心需要負責硬體的購買、佈線、維護等,需要較多的人力和時間成本。
- 使用雲端服務可以避免這些問題,因為雲端供應商已經負責所有的硬體設備和管理工作,可以讓企業專注於自身業務的發展。
自動化工具:
- 傳統自有IT資料中心時,需要進行大量的手動操作和設置,比如硬體設置、系統配置、網路佈線等等。
- 使用雲端服務,企業可以利用各種自動化工具來簡化這些操作,從而節省時間和降低錯誤率。
開發效率:
- 使用傳統自有IT資料中心時,開發團隊需要進行大量的硬體設置和系統配置工作,這些工作需要耗費大量的時間和人力資源。
- 雲端服務提供了各種API和工具,這些配置工作可以得到自動化與簡化流程,進而提高開發效率
成本 Pay as your go:
- 使用傳統自有IT資料中心時,企業需要支付大筆的固定成本,包括硬體設備、設備維護、電力等等。
- 使用雲端服務,企業只需要支付實際使用的服務,因此可以更好地控制成本。
快速進入市場 — Time to marketing
現在的企業市場環境變化非常快,因此時間對企業非常重要。雲端服務被認為是大多數公司選擇time to marketing的解決方案,其中最主要的原因,就是快、美、好三個字。
雲端服務的四大優勢,造就了快、美、好
- 快速的部署
- 彈性的基礎架構
- 更低的成本
- 更好的可靠性
3. 雲端架構設計 — 四大面向考量
符合業務需求的雲端架構是非常重要的,一般來說會考慮四個面向:
- 高可用性 High Availability
- 高擴展性 High scalability
- 高安全性 High Security
- 高靈活性 High Flexibility
雲端架構設計 — 四大面向考量
在雲端的架構設計中,基本上會參考四大面向做為設計原則:
高可用性 High Availability:
- 設計和實施高可用性和容錯性架構,從而確保您的應用程序在故障情況下不會出現停機時間。
- 這可以實現自動容錯、多個可用區域和多個可用區域之間的數據複製等解決方案,從而確保您的應用程序始終處於運行狀態。
高擴展性 High scalability:
- 將設計和實施可擴展的雲端架構,從而確保您的應用程序可以隨著您的業務需求而擴展。
- 這可以實現自動擴展、按需擴展和可配置的基礎架構等解決方案,從而確保您的應用程序總是具有足夠的資源以支持您的業務增長。
高安全性 High Security:
- 建立一個安全的雲端環境,包括防火牆、身份驗證、加密和存取控制等,從而確保您的應用程序和數據得到最佳的安全保護。
- 通過監控和日誌記錄來確保您的應用程序和數據得到最佳的安全保護。
高靈活性 High Flexibility:
- 實現靈活性架構,從而確保您的應用程序可以隨著您的業務需求而更改
- 實現基礎設施即代碼(IAC)和自動化解決方案,從而使您能夠更快地部署和更改您的應用程序和基礎設施。
4. 雲端架構設計的解決方案 — 基礎設施即代碼 IaC
雲端基礎設施的設計是現代企業中不可或缺的一部分,因為它可以提供可靠、可擴展和高效的基礎設施來支持您的應用程序和數據。然而,如果您不使用基礎設施即代碼(IAC)解決方案,可能會遇到以下問題:
- 手動佈署
- 不可重複性
- 無法擴展
- 無法控制版本
使用手動配置基礎設施面臨的問題
手動配置雲端基礎設施,而不採用基礎設施即代碼 IaC來時實作時,經常遇到下列四個問題:
手動佈署:
- 如果您不使用IAC,則您需要手動佈署和配置您的基礎設施,這可能會導致錯誤和延遲。
- 手動佈署還會使您難以確定您的基礎設施狀態和配置,進而影響可靠性和安全性。
不可重複性:
- 手動佈署也可能導致不可重複性,因為每次佈署都可能略有不同。
- 會使您難以管理和維護您的基礎設施,並且可能會導致問題的發生。
無法擴展:
- 手動佈署還可能會使您難以擴展您的基礎設施。
- 如果您需要擴展您的應用程序和數據,您需要重複手動佈署和配置步驟,這可能會非常耗時且容易出錯。
無法控制版本:
- 如果您不使用IAC,則您可能會很難追蹤您的基礎設施的變化和配置。
- 可能會導致許多問題,例如難以確定問題的原因或者發現不必要的變化。
總的來說,如果您不使用IAC,則可能會面臨許多基礎設施方面的問題,這些問題可能會導致延遲、錯誤和可靠性問題。因此,使用IAC可以幫助我們自動化佈署、配置和管理雲端基礎設施,從而提高效率、可靠性和安全性。
5. 總結 Summary
- 現代IT 的主要架構主要分成三種:自有雲、公有雲與混合雲。
- 現代IT架構面臨的四大問題:基礎架構管理工作、自動化工具、開發效率、成本Pay as you go。
- 滿足業務需求的雲端架構設計,要滿足四大面向:高可用性 High Availability、高擴展性 High scalability、高安全性 High Security、高靈活性 High Flexibility。
- 雲端架構設計的解決方案 — 基礎設施即代碼 IaC:
解決了主要的四個問題,手動佈署、不可重複性、無法擴展、無法控制版本。
6. 相關連結
- Terraform-from-zero-to-hero-10-Lab-GCP-Infrastucture-as-Code — https://github.com/qwedsazxc78/Terraform-from-zero-to-hero-10-Lab-GCP-Infrastucture-as-Code
- Terraform-project-best-practice — https://github.com/qwedsazxc78/terraform-project-best-practice
- 歡迎訂閱我的udemy課程:Terraform 從零開始 — 10+實戰Lab打造GCP雲端自動化架構課程