GCP架構師線學習筆記。
- 架構師必須理解客戶問題,知道每個系統部件特性,再依需求權衡組合方案利弊(記憶體,花費…)
- 遇到系統問題要知用什麼步驟正確解決
充足背景知識
- 混沌工程:故意讓系統失敗以建構更好應用
- Tags: 防火牆規則
- Labels: 帳單
- RabbitMQ可跑在集群,但節點離開或加入只允許奇數,PubSub沒這問題且更能與Google其他服務整合
- Spinnaker可以取代Jenkins
- Cloud Run 只需要在Folder有
- Json package file
- Index.js
- Docker file
並下指令
gcloud builds submit –tag gcr.io/$GOOGLE_CLOUD_PROJECT/helloworld
gcloud container images list
釐清問題
5w1h分析需求
- 系統涉及到誰,Role
- 系統有什麼功能,解決什麼問題
- 為什麼需要系統
- 開發時程
- 負載平衡與細節注意
Invest評估使用者情境
- Independ: 設定優先順序
- Negotable: 方便開發者與客戶溝通
- Valuable: 不只交付,還確實能幫用戶產生價值
- Estimatable: 能預想結果
- Small: 如果不能預想需縮小範圍
- Testable: 可測試
解決方案
運算資源選擇
儲存體選擇
雲原生架構設計
知目標>知使用者>訂預期成果>設計架構>達成方法>風險控管
- 知道Objective
- Key Results(SLI, SLO)
- 依各情境制定可用目標%與達成標準
- 分析使用者
- 列幾個主要特徵與使用者
- 使用者人格特質
- 設想使用情境
- 設計系統架構
- 拆分系統為多個微服務
- 設計每個微服務的主要功能, Rest API, 依功能切組件
- 設計儲存體(結構化?響應速度?需求容量…)
- 評估這些需求適合用什麼服務達成
- 加入網路, 負載平衡
- 畫出網路架構
- 實作與魯棒性
- 考量到災難復原
- 防火牆與安全性
- 估算成本
儲存體
要考慮:資料類型,讀寫方式,擴展方式,一致性,資料大小,成本
- 大型數據集 [小數據集花費高]:BigTable( 部份關聯式)/Spanner( 關聯式資料庫,強烈I/O需求)
- 小數據(讀寫成本), 移動應用:FireStore( 非關聯式資料庫)
- 本地K8: Anthos
- 只針對特定型別:Cloud Storage
- 不提供快速log訪問, 每筆查詢都要花錢:BigQuery
儲存時間
- Standard: Hot data
- Nearline: Once per month
- Coldline: Once every 90 days
- Archive: Once a year
連接地端(On-Premises)與雲(Off-Premises)
- GCP Cloud Interconnect : 在混和雲環境(地端, GCP)提供高效物理連接
- AWS Transit Gateway: 在AWS環境連接 VPC、VPN
負載平衡
如果你覺得這篇文章很棒,請你不吝點讚 (゚∀゚)