鐵人賽2020

Gcp Preemptible Instance Speficication
先占虛擬機終止流程 (Preemption process) 子曰:未知生焉知死。但做工程師要反過來,考量最差情形,也就是要知道應用可能如何死去。不知道應用可能怎麼死,別說你知道應用活得好好的,大概想表達這麼意思。 這對先占虛擬機來說特別重要,一般應用面對的機器故障或是機器終止,在使用先占西你幾的狀況下,變成每日的必然,因此,需要對應用的終止情境,與終止流程有更精細的掌控。如同前幾篇所說的,先占虛擬機會被公有雲收回,但收回的時候不會突然機器就 ben 不見,會有一個固定的流程。 如果你的應用已經帶有可容錯的機制,能夠承受機器突然變不見,服務還好好的,仍然要花時間理解這邊的流程,藉此精算每天虛擬機的終止與替換:應用會有什麼反應,會產生多少衝擊,稍後可以量化服務的影響。例如 應用重啟初始化時 cpu memory 突然拉高 承受節點錯誤後的復原流程,需要消耗額外算力。例如需要從上個 checkpoint 接續做,需要去讀取資料造成 IO,或是資料需要做 rebalance …等等 如果你的應用需要有 graceful shutdown 的機制,那你務必要細心理解這邊的步驟。並仔細安排安全下樁的步驟。又或是無法保證在先占虛擬機回收的作業時限內,完成優雅終止,需要考慮其他可能的實作解法。 這邊有幾個面向要注意 GCP 如何終止先占節點 GCP 移除節點對 GKE 、以及執行中應用的影響 GKE 集群如何應對的節點失效 GCP 自動調度補足新的先占節點 GKE 集群如何應對節點補足 三個重點
Gcp Preemptible Instance
前言 鐵人賽的第二部分,要帶來公有雲省錢系列文章。 架構的成本,很多時候會影響架構的設計與需求。公司的營運都需要在成本與需求之前平衡,成本其實是影響公司決策的重要因素。身為架構管理員,應該要試著量化並且進行成本管理,提出解決方案時,也需要思考如何幫公司開源節流。 一昧消減架構的成本也未必是最佳方案,帳面上消減的成本有時也會反映在其他地方,例如:使用比較便宜的解決方案,或是較低的算力,但卻造成維運需要花更多時間維護,造成隱性的人力成本消耗。用什麼替代方案 (trade-off) 省了這些錢。 Kubernetes 是一個很好的例子:例如:有人說「Kubernetes 可以省錢」,但也有人說「Kubernetes 產生的 Overhead 太重會虧錢」。 「要不要導入 Kubernetes 是一個好問題」。應該回歸基本的需求,了解需求是什麼。例如:Google 當初開發容器管理平台,是面對什麼樣的使用需求,最終開發出 Kubernetes,各位可以回顧前篇文章「Borg Omega and Kubernete,Kubernetes 的前日今生,與 Google 十餘年的容器化技術」,從 Google 的角度理解容器管理平台,反思自身團隊的實際需求。 這套解決方案是否真的適合團隊,解決方案帶來的效果到底是怎樣呢?希望看完這系列文章後,能幫助各位,從成本面思考這些重要的問題。 這篇使用 GCP 的原因,除了是我最熟悉的公有雲外,也是因為 GCP 提供的免費額度,讓我可以很輕鬆地作為社群文章的 Demo,如果有別家雲平台有提供相同方案,請留言告訴我,我可能就會多開幾家不同的範例。
2020 IT邦幫忙鐵人賽
2020 IT邦幫忙鐵人賽