ref: https://ably.com/blog/no-we-dont-use-kubernetes
八月第一篇,就來個有趣的文章,來看看 ably 這間 SaaS 公司為什麼沒有使用 Kubernetes,不但當前沒有使用,甚至短期未來內都不會想要使用
更是直接的說如果你有興趣來加入團隊,千萬不要把將 Kubernetes 導入到團隊中是一個可能發生的事情。
我個人覺得這篇文章滿好的,因為是認真的去比較導入 Kubernetes 帶來的改變,而這些改變對團隊來說到底是可接受還是不可接受
而不是所謂的人云亦云,人家要我也要,人家不要我也不要...
文章分成兩部分,前述介紹當前 Ably 的環境架構是什麼,而半部分則是很技術的去探討如果導入 Kubernetes 帶來的好處與壞處是什麼
最終權衡比較之下,會發現導入 Kubernetes 沒有帶來實質上的好處。
文章開頭先簡述了一下 Kubernetes 這幾年的風潮,從最初 Google Borg 的開發開始談起,作者特別提到當初 Borg 的用法可是將一堆實體機器給搭建出一個 Private Cloud 的叢集給團隊使用,
而目前 Kubernetes 更多的用法則是搭建於 Public Cloud 上面的虛擬機器中,透過將 Kubernetes 部署到這些不同的 Cloud Provider 似乎帶來了介面統一的結果,對於 DevOps 人員來說
不同 Cloud Provider 如今看起來都是 Kubernetes 的樣貌。
Ably 目前到底怎麼部署應用程式
Ably 主要使用 AWS 作為其 Cloud Provider,並且於 EC2 機器上使用 docker/container 來部署團隊中的應用程式。
作者團隊中沒有使用任何已知的 Orchestration 服務來管理多節點上的 docker/container,取而代之的則是每個 VM 開機後則會根據 autoscaling group 的機制來判斷
每個機器應該要部署哪種 container/docker。
對於 Ably 來說,團隊中沒有任何 scheduler 相關的服務來調度各種服務,這意味每個 VM 就代表一種服務,所以將 VM 上的服務從 Core 轉換成 frontend 這種行為不會發生。
今天需要針對需求轉換服務時就以 VM 為基準來整批換掉即可。
每個節點上面都會有一個輕量的監控服務,用來確保運作的 Container 如果掛掉後可以被重啟,甚至如果當前運行的版本不符合需求時也能夠將該服務給停止。
流量方面,因為每個 Autoscaling Group 就代表一個服務,所以直接使用 NLB 與 Target Group 來將流量導入該 Autoscaling Group 即可。
至於容器與容器之間的內部流量(譬如 k8s service 等)作者認為也不是太大問題,畢竟每個機器本身都會被 VPC 賦予一個 IP 地址,所以使用上沒有什麼太大的問題。
接下來作者從幾個層次去探討當前設計與使用 Kubernetes 帶來的改變,分別有 (原文很多,這邊摘要不然文章會太長)
題外話,由於 Ably 的 Infra Team 數量有限,所以要考慮 K8s 只會考慮 K8s Service,如 EKS。
1. Resource Management
Ably:
a. 根據服務的需求來決定每個服務要用到的 VM 等級
b. 不需要去煩惱如何處理將多個小服務給部署到一個適合的大 VM 中
c. 作者稱這種行為其實就是 AWS 官方強調的 Right Sizing, 譬如只能跑兩個 Thread 的服務不需要 16vCPUs, 久久寫一次硬碟的服務也不需要一個 90,000 IOPS 的 SSD
d. 選擇一個正確的元件來搭建一個符合服務的 VM 讓團隊可以控制成本同時也減少額外的管理負擔
K8s:
a. 必須要使用一個比較強大等級的 EC2 VM,畢竟上面要透過 Container 部署很多服務
b. 針對那些需要小資源的服務來說,透過這種方式能夠盡可能的榨乾機器的資源,整體效能使用率會更好
c. 但是針對資源量沒有很辦法明確定義的服務則是會盡可能地去吃掉系統上的資源,這種被稱為 nosy neighbors 的常見問題已經不是首次出現了, Cloud Provider 本身就需要針對 VM 這類型的服務去思考如何處理資源使用,而 Cloud Provider 都有十年以上的經驗再處理這一塊
而所有 Kubernetes 的使用者則必須要自己去處理這些。
d. 一個可能的作法則是一個 VM 部署一個服務,不過這個做法跟團隊目前的作法已經完全一致,所以就資源管理這一塊,團隊看不到使用 Kubernetes 的優勢。
2. Autoscaling
Ably:
a. EC2 VM 本身可以藉由 Autoscaling Group 來動態調整需求
b. 有時候也是會手動的去調整 EC2 的數量,基本上手動跟自動是互相輔佐的
c. 團隊提供的是 SaaS 服務,所以其收費是針對客戶實際上用多少服務來收,如果開了過多 EC2 VM,則很多不要的花費與開銷都是團隊要自行吸收
d. 團隊需要一個盡可能有效率的方式能夠即使遇到流量暴衝時也能夠保證良好的服務的機制
K8s:
a. 可以透過不少方式來動態調整 Container 的數量,
b. 甚至可以透過 Cluster autoscaler 來針對節點進行調整,根據需求關閉節點或是產生更多節點
c. 動態關閉節點的有個問題是關閉節點時通常會選擇盡可能閒置的節點,但是閒置並不代表沒有任何服務部署再
上面,因此該節點上的 Container 都要先被轉移到其餘節點接者該目標節點才可以被正式關閉。這部分的邏輯作者認為相對複雜
d. 整體來說,k8s 有兩個動態調整的部分,動態節點與動態服務,而現有的架構只有一個動態節點。所以使用 k8s 則會讓問題變得更多更複雜。
3. Traffic Ingress
Ably:
a. Traffic Ingress 基本上每個 cloud provider 都提供了很好的解決方案,基本上團隊只要能夠維持每個服務與背後的機器的關係圖,網路流量基本上都沒有什麼需要團隊管理的。
b. 使用者會透過直接存取 NLB 或是透過 CloudFront 的方式來存取團隊內的服務
K8s:
a. EKS 本身可以透過 AWS VPC CNI 使得每個 Container 都獲得 VPC 內的 IP,這些 IP 都可以讓 VPC 內的其他服務直接存取
b. 透過 AWS LB Controller,這些 Container 可以跟 AWS LB 直接整合,讓封包到達 LoadBalancer 後直接轉發到對應的 Container
c. 整體架構並不會比團隊目前架構複雜
d. 唯一缺點大概就是這個解決方案是完全 AWS 綁定,所以想要透過 k8s 來打造一個跨 Cloud Provider 的統一介面可能就會遇到不好轉移的問題。
4. DevOps
Ably:
a. 開發團隊可以透過簡單的設定檔案來調整部署軟體的版本,後續相關機制就會將 VM 給替換掉,然後網路流量也會自然的導向新版服務
K8s:
a. 開發團隊改使用 Kubernetes 的格式來達到一樣的效果,雖然背後運作的方式不同但是最終都可以對開發團隊帶來一樣的效果。
上次四個分析基本上就是,使用 k8s 沒有帶來任何突破性的好處,但是 k8s 本身還有其他的功能,所以接下來作者想看看 k8s 是否能夠從其他方面帶來好處
Multi-Cloud Readiness
作者引用兩篇文章的內容作為開頭,「除非經過評估,否則任何團隊都應該要有一個跨 Cloud-Provider 的策略」
作者表明自己團隊的產品就是那個經過評估後斷言不需要跨 Cloud Provider 策略的團隊,同時目前沒有往這個方向去追求的打算。
同時作者也不認為 K8s 是一個能夠有效達成這個任務的工具。舉例來說,光 Storage 每家的做法都不同,而 K8s 沒有辦法完全將這些差異性給抽象畫,這意味者開發者終究還是要針對這些細節去處理。
Hybrid Cloud Readiness
管理混合雲(Public Cloud + Private Cloud based on Bare-Metal servers)是作者認為一個很合理使用 K8s 的理由,畢竟這種用法就跟當初 Google Borg 用法一致,是經過驗證可行的。
所以 Ably 如果有計畫要維護自己的資料中心時,底層就會考慮使用 Kubernetes 來管理服務。畢竟這時候沒有任何 Cloud Provider 提供任何好像的功能。
不過 Ably 目前沒有任何計畫,所以這個優點也沒有辦法幫助到團隊
Infrastructure as Code
團隊已經大量使用 Terraform, CloudFormation 來達成 IaC,所以透過 k8s YAML 來維護各種架構不是一個必要且真的好用的方式。
Access to a large and active community
另外一個很多人鼓吹 K8S 的好處就是有龐大的使用者社群,社群內有各種問題分享與探討。
作者認為
a. AWS 的使用者社群數量是高於 Kubernetes
b. 很多情況下,一個迭代太快速的產品其實也不一定對團隊有太大的幫助。
c. 很多人都使用 k8s,但是真正理解 k8s 的人微乎其微,所以想要透過社群來幫忙解決問題其實比你想像的還要難,畢竟裡面的問題太雜,很多時候根本很難找到一個真正有效的答案。
Added Costs of Kubernetes
為了轉移到 K8s, 團隊需要一個全新的 team 來維護 k8s 叢集以及使用到的所有基本服務。舉例來說,EKS, VPN CNI, AWS LB 帶來的網路好處並不是啟動 EKS 就會有的,
還必須要安裝相關的 Controller 並且進行設定,這些都是額外的維運成本。
如果找其他的服務供應商來管理 Kubernetes,這意味公司就要花費更多的$$來處理,所以對團隊來說,金錢與工作量都會提高,不同的解決方式只是這兩個指標的比例不同而已。
結論:
1. Ably 覺得 Kubernetes 做得很好,但是團隊目前沒有任何計畫去使用它,至少目前這階段沒有看到任何實質好處
2. 仔細評估後會發現,導入 k8s 其實也會帶出不少管理上的問題,反而並沒有減輕本來的負擔
網路文章引用格式 在 李河泉老師 Facebook 的精選貼文
No.2174〈假日好書推薦-《談判是無限賽局》
書和網路文最大的差別是,
一本書是有架構的知識,
網路文章是片段的資訊。
今天想介紹一本很棒的書,
書名是「談判是無限賽局」,
作者李思恩老師是一位企業名師,
也是我多年的老友,
無論從學校到職場,
他的觀察和見解始終保持超然卓越,
令我相當佩服。
很喜歡書裡面的一句話:
談判往往都是無限賽局,
別只在乎一回合的輸贏,
重要的是還有下次。
國內外談判的書籍我看了很多,
大多數充滿深奧的理論,
以及難以運用的描述。
一口氣將這本書讀完,
有三點我非常喜歡的地方:
一、大量的案例:
書中引用大量的案例,幾乎都是「自己的經驗」,思恩老師甚至搬出當年「年少輕狂」的失敗案例,也要告訴大家「怎麼做才是對的」。
二、口語的敘述:
一邊看內容,就像是聽著有聲書一樣,口語而不教化的內容,深入淺出的描述,十分容易吸收。
三、劃線的重點:
書裡面讀起來最輕鬆的是,重要的句子都輕劃線條,不但唸起來輕鬆舒服,而且更加容易吸收。
歡迎大家去買來看看
容易懂又實用好上手
購書連結
https://bit.ly/3kaqeRj
今天星期日
有架構的好書勝過片段文章
讓自己的大腦組織不斷昇華
各位河粉早安
PS. 李河泉老師的內容都歡迎分享
網路文章引用格式 在 中古小姐 Facebook 的最讚貼文
【以為是朋友,你的內容借我用】
借個版面,因應強運少女粉絲要求,我將事情原委寫在下面。文長,請耐心服用。
2018年10月31日我在東京辦了場小型讀者餐會(於網路上開放給讀者報名)強運少女私訊來報名,我一開始並沒有直接答應,一方面我要統計人數,另一方面這筆名並不陌生,原因是早有讀者告訴我「強運少女寫的部落格和中古小姐的東京日和風格很像呢」
#強運少女部落格目前原因不明關閉中
後來強運傳了一大段感人訊息過來,告知她把我部落格全部都看完她有多喜歡多喜歡(那裏面有近六百篇文章能看完值得佩服吧)我想直接見面也許可以釐清這個人,她可能不是和我風格很像,單純是和我一樣很愛東京,和我一樣身為東京OL吸收了同樣養份所以下筆風格類似吧。
可惜,那場聚會沒找到我要的答案,但同時卻有兩件相當令人在意的事。
那是場十人小餐會,強運少女非常溫暖的在跟大家聊天(就像她網路形象那樣)吃飯時她告訴我們當天其實是她離職日,是上班最後一天,也在大家面前抱怨了很多關於公司的事,說自己身為youtuber在公司(是家經營youtuber的公司)被壓榨、公司的人欺負她搞得她快身心憂鬱。
我們聽完描述後也打從心底為她抱不平,對該家公司印象極差,來參加的女孩紛紛鼓勵她,我也跟她說靠她自己(不必靠公司)經營網紅生活絕對沒問題,甚至在東京工作比較久的女讀者還擔心她就勞簽證被撤銷好心提供她求職經驗。
那場餐會裡我的座位離她遠,所以吃飯期間並沒有機會兩人單獨交談。聚會結束之前強運少女不斷表示「能在離職日認識大家,能被大家安慰感到非常溫暖,今天真的好開心」
在場女生們自己(除了我以外)設了一個LINE群組,強運甚至主動跟其他女生要ig帳號以便追蹤,女生們也表示很開心認識強運,可是那個很有溫度的人參加完聚會就不太一樣了。
沒過多久女生們來問我「強運還有跟小羊聯絡嗎?」
「有啊,她偶爾會來ig回覆限動,怎麼了嗎」我沒搞懂大家在意什麼
我和強運少女僅在讀者聚會見過那麼一面,平常就是ig發限動她會來回應,而大部分讀者都知道我就是會回覆讀者ig訊息,並且針對回覆按紅心表示我看過了,就像粉絲頁大家留言我會按讚代表我收到了是一樣的道理。而從2018年到2020年此刻,強運主動傳給我的訊息也不過13則,我這邊主動傳給她的是0則。一般讀者裡有不少人是每個禮拜、甚至每天都會傳訊息給我,我也都會回覆(或者按紅心)
來參加聚會的女生們究竟在意什麼呢?
「強運那天回家後就不太理我們了」
「我ig也在餐會結束沒多久就被強運刪掉,如果要刪當初何必主動要帳號?」
「原來她還有繼續跟小羊聯絡啊,可能我們不像小羊是網紅,沒資格當她朋友吧」三位女生落寞的說
身為聚會主辦人,我在心裡對於其他女生是有點愧疚的,難得回東京辦場聚會,本來希望大家開開心心,可總覺得好像留下了什麼消化不良的回憶……
不過話說回來,交友終究是個人自由,只是大家不懂當晚那麼有溫度的人為何一轉身就不一樣了?如果強運少女以為我在眾人社交場合跟她吃過一次飯、在ig針對她寫給我的私訊回應按紅心或回個幾句話就是朋友,那些也和強運吃飯的女生更以為強運有把她們當朋友呢,她們不但當面安慰她跟她聊的遠比我多,還掏心給了人生建議。
第二件,在場大家都知道強運少女離職,可隔幾天她依然在網路上以「東京上班族」身分發文,尤其是限動,比如要搭電車去公司上班啦、要去哪裡開會啦……
究竟她跟我們描述的是事實還是寫給網路前你們看的是事實?大家開始對這個人產生了問號。
以下是事件內容
在各種自媒體蓬勃發展狀態下,如果要以「創作者」自居,那應該要是原創性內容吧!但原創性界線在哪裡呢?
說真的,這年代要使用他人創作又不違法很容易,你不需要露骨全抄,用相同的梗、相同構圖、發想、用個片段,這在很多人眼裡都不算抄襲。但身為創作者,我個人覺得法律之前,在道德上我們心中都該有條清楚界線。
#會員制聯誼
前面寫過,早在聚會之前我就耳聞一二,所以今年三月又有讀者告訴我「會員制聯誼」(我2008年在雅虎摩人專欄發表的文字)內容被知名youtuber強運少女用在2020年2月發表的影片時,我就在限動以「釣魚心態」寫了一句話,我抱怨有網紅使用我的創作內容(沒寫誰也沒寫什麼被使用)那則貼文發完沒多久,強運就急忙來解釋。我很意外,原來她緊緊跟著我的限時動態。
強運少女主動承認使用了我的經驗,她表示她在影片中說是朋友經驗「當天聚會吃完飯我和小羊一起走在回二子玉川車站路上,聽小羊聊這個聯誼印象深刻」她強調她多喜歡中古小姐,強調跟我也是朋友,所以沒打招呼就用了。後面不忘補上一段自己身為內容創作者竟然沒有注意到這種事實在非常抱歉。
(所以在網路上想用其他創作者內容營利只要說是朋友經驗來規避就行?)
老實說看完她的訊息我陷入兩難,表面上很誠懇的道歉訊息裡就是寫著假話!!!
她說聚會結束後我們走在一起並且聊到這話題?很抱歉,當天飯局結束我是單獨跟C小姐並肩走,C小姐聊的工作話題讓人印象非常深刻,所以我根本沒有和強運單獨走在一起過,更不可能無端聊起幾百年前參加的會員制聯誼。
為了怕我失憶而我自己不知道,還特地跟其他好幾位女生求證。
「小羊單獨跟強運講話時間大概就是收銀台前的幾十秒,當時我們也在旁邊等拍照,有全程聽到妳們都在聊網紅是否需要經紀人的事」她們說
為何強運寫的和其他人的集體記憶都不同呢?
她訊息裡用那段「假回憶」想呼攏我究竟單純是因為慌了還是另有用意?這種說是道歉未免太牽強,我決定繼續釣魚。
找到答案之前我只想確認、也只介意她是不是願意反省,注意!反省和道歉是不一樣的,反省是內心真誠面對錯誤,道歉則是表面上演演。
我決定給她一個機會,並且想了一個完全不會讓她難堪又可測試對方的方法(Again,我當時目的單純想提醒她注重智慧財產權)我雲淡風輕回「不是妳喔,我沒有看妳的影片」
之後她繼續追問「所以妳抱怨的那個網紅是誰?我也要小心」
「就不用特別講,對方是在做「生活內容的複製」」我回
我認為我應該有暗示了吧,如果她有順利收到的話。
但同時我也不是很能理解關於她認定我是「朋友」一事,她如果錄影片想用朋友內容更該事前打招呼啊,畢竟是營利影片。
後來強運繼續聊了她個人重大私事,撇開工作上不舒服,她在描述愛情狀態時我又覺得聽起來她是個好女生。
總之釣魚行程完全不順利,她講的話虛虛實實,她給我的文字和她的行為分開看有太多不一致的地方。
可我實在懶的管了,畢竟我們根本不是朋友,工作和我也完全沒交集,我不想繼續花時間在這人身上,心想反正只要她之後創作上不踩線,這件事絕對一筆勾銷,只要不再犯,這件事就不會公開,大家心知肚明就好。
但很遺憾,沒多久我在限時動態PO的話題就被跟風,我今天PO日本作家寫真展,她隔天馬上PO,我PO日本搞笑藝人,她也跟著PO。
這些話題絕對是誰都可以po的!毫無疑問。
但如果大家站在創作者立場思考,前面已經不打招呼用過一次內容,後面又緊跟著,事後她私訊來說她後來PO並不是跟著我而是看到別人po以及自己看電視節目有感而發,然後再一次道歉並道謝(意味不明),但全世界哪個網紅聊完寫真展緊接著「又」聊搞笑藝人呢?沒有,就是我和她!
眼尖讀者問「小羊,妳老公代號是魔人,她在YOUTUBE自介寫她是寵夫魔人。妳描述MBA小個同學的代號是松鼠,她也塑造了一個花栗鼠的人物」
不是創作者的人可能怎樣都覺得沒什麼,但是呢,有位六年前文章就被強運使用的A小姐來投訴,她傳來的訊息裡顯示強運在接到對方抗議後馬上承認並道歉,並且強調自己多喜歡對方內容,表示自己一年來做這件事(使用對方內容)也很不舒服。
持續做了一年(沒錯!是強運少女自己寫一年)搞得自己也不舒服?
但看在我眼裡更介意的是,她所謂的道歉訊息格式都是類似的。被發現擅自使用別人內容後馬上道歉表示會誠心反省,馬上用「我很喜歡妳巴拉巴拉」來安撫妳。
強運少女粉絲說「六年前的事現在也好拿來說嘴」
很抱歉,不是六年前的事也好拿來說嘴,而是讀者朋友發現六年前用她的內容六年後用我的內容,強運少女還是在做一樣的事呀。
強運少女粉絲又說不過就是15秒(嚴格來說是20秒以上)影音內容被用一下也要小題大作?
請讓我說明被拍成影片「不過15秒」的內容如何來的?當年我去代官山參加了CanCam雜誌舉辦的Party,在那個場合玩到深夜遇見經營會員制聯誼公司的女社長,女社長來跟我搭訕,希望我日後能參加她主辦的活動。不過參加標準較為嚴格,需要買漂亮衣服好好打扮,所以我光買衣服至少也花了十萬日幣。我付了機緣、時間、金錢換來的經驗寫成文章在網路上,這部分是個人特殊經歷。
個人特殊經歷意思是,該聯誼並非網路上的公開組織,也沒有在網路上開放報名過。女社長說女性全是由她自己以及社員在路上搭訕、物色而來,男性則是人脈。
若要引用,哪怕一段文字都必須事先告知徵求許可,註明來源,我以為這是世間常識。何況營利影片,更別說強運少女那支影片還被其他新聞媒體比如即新聞轉載,即新聞標題是「解析日本社交文化,參加高level聯誼顏值身家不可少」、噪咖也轉載,噪咖標題是「超現實!聯誼要看長相收入?」
看來我的15秒內容可是她整個影片主軸呢。
又,本來想不通為何強運要咬定我們是朋友,非要當我朋友才行。後來我才恍然大悟,她錄影片時使用這段內容是講「我之前有個女生朋友」(對,「之前的」)如果我願意當她朋友這段內容就可解釋成「轉述」,我不當她朋友她就會立場崩壞,總不能說自己是看網路上誰的文章擅自使用吧。
強運少女該支影片除了使用我的內容之外,裡面和其他女生拍的「3招找到日本男友!不用交友軟體」影片也有相似之處(影片貼在留言欄大家可自己比對)在時間軸上強運少女的影片是後拍的。
有人反應好不容易想出來的主題標題、構圖、架構內容都以相當眼熟姿態出現在強運少女影片裡,但這部份無法靠法律約束,只能靠道德。
據我所知,有些住在日本的台灣女生youtuber在網路上的聲量沒有強運少女大、也沒有太多收益來源,但她們還是努力拍片,努力從生活(而不是從他人創作)尋找靈感,想將自己的原創內容傳達給各位。大家如果能從創作者立場思考,大概不難體會當你費心費時花錢創作出的內容被別人輕易拿去整理重組、拿去營利拿去賺知名度,會做何感想?
我很好奇現在大眾認知是什麼?
當創作者,標題、內容、話題、構圖,甚至人設如果都要從別人那邊借,我們以後都重組隔壁棚內容就好了。
又,以我自己從創作者+KOL雙重身份來說,我們今天在網路上發表的除了原創內容之外,我們也寫商業文章(業配文或團購文)如果面對自己作品,道德標準都不夠高,那面對充滿高報酬利益的商業文?能期待能相信嗎?
#中古小姐會員制聯誼內容及強運少女影片貼在留言欄
中古小姐會員制聯誼內容原文
「我收到的邀請函上面是寫希望妳最好是一個人前來,如果要邀請朋友只可以邀請超級美女一名,會場門口會有審查,如果發現妳的朋友(長相)有損本公司信用,不符合本Party的參加條件,我們會限制她入場。」這段被強運少女使用在影片裡。