ref: https://www.infoworld.com/article/3632142/how-docker-broke-in-half.html
這篇文章是作者訪談多位前任/現任的 Docker 員工,Docker 社群貢獻者, Docker 消費者以及市場分析師的相關心得文,目的是想要探討 Docker 商業模式的成功與失敗,到底目前 Docker 商業模式的進展是否有跡可循,以及我們可以從這些歷史決策中學到什麼?
Docker 不是輕量級虛擬化技術的開創者,但是卻是個將 Container 這個技術給推向所有開發者的重要推手,Docker 簡化整體的操作使得每個開發者都可以輕鬆的享受到 Container 的好處,但是從結果論來說, Docker 還是於 2019 年 11 月給 Mirantis 給收購了
到底 Docker 的商業模式哪一步走錯了,接下來就跟者作者一起去訪談與思考。
[Docker 的誕生之路]
Solomon Hykes(文章很多該人看法) 於 2008 年創辦一間專注提供 Platform as a Serivce 的公司, DotCloud,該公司希望讓開發者可以更簡易的去建置與部署開發的應用程式,該公司的底層技術後來也由 Docker 繼續沿用,當然創辦 Docker 的依然是 Solomon Hykes。
Docker 開源專案誕生之後吸引了全球目光,除了來自各地的使用與開發者外,大型公司如 Microsfot,AWS,IBM 等都也加入,但是就跟其他基於開源專案的軟體公司一樣, Docker 也面臨的商業模式的問題,這種類型的軟體公司到底要如何穩定獲利?
從 2021 往回看,一個很簡短的說法可以說是 Docker 的企業化管理工具 Docker Swarm 還沒有站穩腳步之時就遇到 Kubernetes 這個龐然怪獸,然後 Kubernetes 橫掃時間把所有 Docker Swarm 的市場全面清空,
當然真實版本一定更加複雜得多,絕對不是一句 Kubernetes 就可以概括的
[開源專案的商業化之路總是困難]
Docker 於 2014 年開始認真探討其商業策略,如何將其作為 Container 領頭羊的角色轉變成為一個可以帶來收入的策略,VC 創投的資金讓其有能力收購 Koality 與 Tutum,同年 Docker 也正式宣布第一個商業版本的支援計劃。
這一連串的計算誕生出了許多產品,譬如 Docker Hub 及 Docker Enterprise.
不過可惜的是上述的產品並沒有辦法從企業用戶手中帶來穩定的獲利,大部分的客戶相對於直接購買 Docker 解決方案,更傾向跟已經合作的系統整合商一起合作。
Solomon Hykes 今天夏天跟 infoworld 的一次訪談中提到,Docker 從來沒有推出一套真正的好的商業產品,原因是因為 Docker 並沒有很專注地去處理這塊需求。
Docker 嘗試每個領域都碰一小塊,但是卻發現想要同時維護一個開發者社群又要同時打造一個良好的商業產品是極度困難的, Dockre 花費大量的時間與金錢想要魚與熊掌兼得,但是最後才體會到這件事情幾乎不太可行,Hykes 也認為 Docker 應該要花更多時間去聆聽用戶的需求,而不是自己埋頭苦幹的去打造一個沒有滿足使用者需求的企業產品。
來自 Google 的開發推廣大使 Kelsev Hightower 於今年的訪談中提到,Docker 成功地解決問題,但是卻遇到了瓶頸,舉例來說,Docker 提供工具讓開發者可以 產生 Image, 提供地方儲存 Image,運行 Image 除了這些之外, Docker 還有可以發展的空間嗎?
Hykes 不贊同這個說法,譬如 RedHat 與 Pivotal 都很成功的將 Docker 整合到彼此的 PaaS 產品(OpenShift, Cloud Foundry),也成功從中獲利,所以 Docker 實際上有很多方式可以去獲利的,只是沒有成功而已。
從結果論來看, Docker 早期的商業夥伴,一家專注於 Travel 的科技公司, Amadeus 於 2015 年正式跟 Docker 分手改而投向 RedHat 的懷抱。
畢竟 RedHat 有提供更多關於 Container 相關的技術支援,畢竟對於一個想要踏入 Container 世界的企業,如何將應用程式容器化是第一步,而接下來則是更為重要的 Container Orchestration 解決方案,很明顯的 Docker 這個戰場上是完全被 Kubernetes 打趴的。
[Kubernetes 的決策]
Docker 拒絕擁抱 Kubernetes 被認為是一個致命的錯誤策略,Jérôme Petazzoni, Docker 第一位也是目前在位最久的員工提到, Docker 內部曾經針對 Kubernetes 的生態去探討過,當時內部的共識是 Kubernetes 架構過於複雜,而 Docker Swarm 的架構相對簡單,比較之下 Docker Swarm 應該更容易獲得商業上的成功。
從其他的訪談可以得知, Docker 曾經是有機會可以跟 Google 內的 Kubernetes 團隊一起合作發展 Kubernetes,並且有機會去掌握整個 Container 生態系的發展。如果這些合作可以順利發展,那 Docker GitHub 底下的第一個專案可能就會是 Kubernetes,而 Docker Swarm 可能根本就不會產生了。
Hykes 承認的說,那個時空背景(2014,2015)下, Docker 公司很難找到一個很好的 Container Orchestration 解決方案來滿足各種各戶的需求,而那時候的 Kubernetes 也很難斬釘截鐵的說就是那個解決方案, 畢竟那時候 Kubernetes 還非常早期,同時期還有很多開源專案,很難料想到
Kubernetes 最後會主宰整個 Container Orchestration 世界。
文章後半段還有非常多的討論,非常推薦大家去看全文,雖然沒有辦法改變歷史,但是從歷史中可以學到非常有趣的東西,特別是當被客戶問到 Docker/Kubernetes 的一些生態問題時,有這些歷史資料的可以讓你講起來更有迷之自信
同時也有10000部Youtube影片,追蹤數超過2,910的網紅コバにゃんチャンネル,也在其Youtube影片中提到,...
「google cloud aws 比較」的推薦目錄:
- 關於google cloud aws 比較 在 矽谷牛的耕田筆記 Facebook 的最讚貼文
- 關於google cloud aws 比較 在 矽谷牛的耕田筆記 Facebook 的最佳解答
- 關於google cloud aws 比較 在 IEObserve 國際經濟觀察 Facebook 的最佳貼文
- 關於google cloud aws 比較 在 コバにゃんチャンネル Youtube 的最佳解答
- 關於google cloud aws 比較 在 大象中醫 Youtube 的最讚貼文
- 關於google cloud aws 比較 在 大象中醫 Youtube 的最讚貼文
- 關於google cloud aws 比較 在 [心得] PressPlay從AWS搬家到GCP一年的心得- 看板Soft_Job 的評價
- 關於google cloud aws 比較 在 各大雲端平台比較AWS vs GCP vs Azure vs 阿里雲入門|介紹|程式 的評價
- 關於google cloud aws 比較 在 Cloud Taiwan - GCP x AWS x Azure Public Group | Facebook 的評價
- 關於google cloud aws 比較 在 Amazon Web Service 30 days - 1: Cloud Overview and ... 的評價
google cloud aws 比較 在 矽谷牛的耕田筆記 Facebook 的最佳解答
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 其實也會帶出不少管理上的問題,反而並沒有減輕本來的負擔
google cloud aws 比較 在 IEObserve 國際經濟觀察 Facebook 的最佳貼文
Google的Q3因為核心的廣告業務強勁回彈,繳出了營收和獲利都優於預期的財報。相對其他巨頭比較安靜的GOOG盤後大漲了超過6%
Youtube廣告年增32%,雲端 Google Cloud事業的收入增加45%,跟量體比她大的 Azure 成長 48% 比起來增速還比較慢,目前AWS, Azure和Google的市佔大概是45%、18%和5%,Google說他們仍在積極投資雲端。
說真的Google,FB這種印鈔機基本上就是水龍頭開不開而已,因為Youtube現在安插的廣告又多又長令人髮指,受不了的人還會去買去廣告版的Youtube Premium(這部分的非廣告營收,還有Youtube Music都算在Google Other的營收裡),也是成長的動能之一。
更多美股財報速覽圖,可以看IEO的IG:https://ieobserv.com/IG
google cloud aws 比較 在 コバにゃんチャンネル Youtube 的最佳解答
google cloud aws 比較 在 大象中醫 Youtube 的最讚貼文
google cloud aws 比較 在 大象中醫 Youtube 的最讚貼文
google cloud aws 比較 在 Cloud Taiwan - GCP x AWS x Azure Public Group | Facebook 的推薦與評價
GCP Cloud SQL for MySQL 8.0 GA! 更新Google Cloud SDK 至307.0.0 版本後就可透過指令建立。 GCP UI Console也有提供MySQL 8.0 選項供選擇。 ... <看更多>
google cloud aws 比較 在 [心得] PressPlay從AWS搬家到GCP一年的心得- 看板Soft_Job 的推薦與評價
這篇比較偏心得分享,沒有太多的技術細節。
Medium好讀版: https://tinyurl.com/yy8auqdy
PressPlay好讀版: https://www.pressplay.cc/link/82A2CAD5C4?oid=829D3F275F
PressPlay平台服務在2016年問世,一直放在AWS上,直到2018年中才搬遷至GCP上。
至今也一年了,讓我們回顧一下這幾年PressPlay的主機的成長過程吧。
# AWS時期
PressPlay草創初期資源有限人力有限,只有一台伺服器運行所有的服務,一台資料庫,
主機在東京AWS,CDN是用Cloudflare的CDN,服務也挺單純的,伺服器上只有網站服務,
然後用戶上傳圖片也放在這台主機上,裡還有一個跑定期扣款的Cron服務,
S3的用途是暫時放上傳的影片,為什麼是暫時呢?因為我們的影片是使用Vimeo服務,
所以我們上傳到S3只有一個功用,就是讓Vimeo可以抓影片,過了三天影片就會被刪掉。
配置圖大概是長這樣子:
最早期的AWS主機配置: https://tinyurl.com/yyfmglex
那時候每天大概幾千人造訪而已,機器都應付得來。
然後到了2017年3月情況就開始不一樣了。囧星人專案上線帶來一波流量,
然後我們在3月下旬作了第一次的改版,流量開始多起來了,
高峰期甚至到了一天兩萬多人進站。
2017–01–2017–03 GA數據: https://tinyurl.com/y6jnd5ym
我們在2018–01到2018–06搬家之前,平均每天進站人數大約在25,000至30,000人左右,
一台Server還蠻緊蹦的,最後決定搬家,搬到Google Cloud Platform(GCP)。
這是搬家前最終的伺服器配置。
AWS後期的主機配置: https://tinyurl.com/yx9tl8yl
# 為什麼要搬到GCP
或許有人會問「AWS用得好端端的幹嘛搬家呢?」我們選擇GCP的原因有幾個原因:
* 價格比AWS便宜
* 地點在台灣,速度快
* AWS介面很醜(我承認我是外貌協會)
公司草創時期資金沒有那麼多,選擇機器都是以省錢、高C/P值為目標。
PP的機器建在AWS的時候,CDN是Cloudflare,雖然我們買的是Pro方案(USD 20/月)
但連線的節點是在洛杉機。也就是說用戶要連線PressPlay的網站,
用戶的連線會先台灣出發,到達洛杉機Cloudflare的機房,
然後連線到東京AWS機房取資料,然後再經過洛杉機才回到台灣。
開個網站就要跑遍大半個地球,再加上PressPlay一開始網站還沒有優化連線數或
圖片size,所以以一個從來沒進入過PressPlay的人,從連線到完全跑出網站,
要90秒左右...
GCP的費用大約是AWS的六折左右,而且在AWS都沒有作HA(High Availability),
就算有也是人品HA。因此我們常常一爆量主機攤瘓了,光2018上半年就平均1–2月
就一起攤瘓事件。GCP的設定簡單,就連我對配置伺服器沒有很熟都可以輕鬆入門,
開啟CDN也是一個鍵就完成了,在人力和相關知識都缺乏的情況下,選擇GCP還蠻不錯的。
於是我們在2018年4月的時候,決定搬遷到GCP。
# 搬遷的困難
就是人!因為公司內部缺乏熟悉伺服器管理的人,於是我們就想找一個人來管理伺服器、
調整效能、管理辦公室網路和設備,然後進公司來的第一件事就是協助我們搬伺服器。
我們找到一位從業很久的資深工程師,他一進來看到我們公司的網路架構、伺服器架構
跟本是初學者等級,來了五天就跑了,說是不想從那麼基礎的東西做起。
那麼怎麼辦呢?只好我硬上了。雖然GCP操作簡單,但是有關Server調校、
資料庫調校這些我沒有什麼經驗,而且這一次要大調架構,我的要求:
* 讓我們可以撐住爆量的時刻,機器不要掛。
* 並加速網站的運行速度。
* 伺服器狀態的監控機制。
* 備援機制,不要伺服器倒一台就服務全死。
因為GCP比AWS便宜多了,所以機器比較能放心的開,為了未來PressPlay發展,
我們是以3年內不需要再次優化架構的前提之下去做規劃,原本一台網站主機
就可以打天下的配置,擴充成APP、Web各兩台,另外再把負責金流的服務獨立出來,
也是做成兩台,然後由Load Balancer來分配流量,就算APP死一台機器還有一台會
繼續服務,就算WEB全死,但APP還是可以用。
還好有在6月有一位資深的後端工程師加入,我和他經過一整個月的試驗、調整、搬遷,
上線前一天我召集了幾位工程師一起協助搬資料和測試,老闆還以來辦公室拿東西為藉口
送宵夜來,揪甘心~
終於在2018–06–29 正式上線了!!這是搬到GCP時的配置圖:
https://tinyurl.com/y6z53rxu
# 搬到GCP之後…?
2018–06–29上線早上八點,網站就炸了!!
原因是主機掛載Google Storage時的參數錯誤,讓所有資料夾和檔案清單必須讀完
才能正常服務,半夜搬家在測試時也是小貓兩三隻在測試所以沒什麼問題,
早上八點的尖峰時間一到,大量的人潮湧入PressPlay,I/O卡住,導致服務停擺。
那兩天我的睡眠時間只有三個小時,不過當一切都搞定且正常運行時,疲憊的感覺
全部冒出來了,於是我就伴隨著成就感一起入睡。
換到GCP後,PressPlay有變得比較好嗎?有的,當時我們還做個記錄:
1. 台灣地區網頁讀取速度之影響 6/30日(六) 比較6/2(六)
網頁讀取 時間從3.9秒,提昇至2.78 (台灣地區) ,提昇28.58%
https://tinyurl.com/y3lbuzbr
2. Ping值之影響從平均100ms提昇至10ms
https://tinyurl.com/y6spu8z6
3. 完成網站瀏覽取樣報告比較 6/29–6/30 對比上週 6/22–6/23
各式的載入、連線時間、回應時間都大大地的減少。
https://tinyurl.com/y5mnpfvx
搬完GCP後從此就高枕無憂了嗎?錯了,挑戰開始來了。
2018–08–23攻擊事件
當天晚上我們受到DDOS攻擊,我們抓到大約200多個國外IP向我們進行攻擊,
這些IP應該都是跳板。之後我們在兩個小時之內,把主機關掉、換IP,
然後建置fail2ban和nginx的防DDOS機制止血,隔天我們進行了檢討,
我們需要更明確的自動監測回報機制。
被攻擊的隔天PressPlay粉絲團所發的聲明:
https://tinyurl.com/y3wmyojk
於是我們就建置了監控主機的功能,只要CPU使用量超標,或是一段時間主機沒有回應,
都會跳出通知
PressPlay內部監控Channel:
https://tinyurl.com/yxtnnqaa
後續還有幾次攻擊事件,不過因為前一此的事件我們作了防護措施,所以只是跳跳通知,
然後隔天去看Log而已,用戶、工程師和老闆都睡了好覺。
2019–03–31阿滴英文愚人節活動爆衝
PressPlay的GA在2019年有個顯著的peak,就是阿滴英文愚人節活動,在我們沒有準備好
的情況之下,當天衝進快十萬人,大約是平常日的4倍量。我記得當天我還在家裡一面
吃鹹酥雞一面看動物朋友,然後就看到「救救PressPlay」頻道一直叫,然後老闆一直
在戳我,才發現這起事件。
還好架構有規劃好,整個活動順利的結束,Server沒有爆炸,可喜可賀。
https://tinyurl.com/y52eekx2
因為這次的虛驚,所以我們就立刻進行一個我很想要玩的東西:Auto Scaling。
10天後,也就是4月9日,Auto Scaling正式上線。之後我們更能高枕無憂地渡過
每一個動畫夜。
這個架構運行至今都沒什麼問題,下面這個是目前PressPlay的主機架構。
現今PressPlay主機架構:
https://tinyurl.com/y3nqcpdj
# PressPlay功能現在與未來
PressPlay目前產品功能是著重在數據開發和應用,今年招募兩位數據背景的RD,
開始著手進行訂閱者的行為,為創作者帶來新的收益和減少流失。
或許大家會注意到我們網站開始有推薦的版位了,首頁的訂閱專案排名也不是像以前
一樣單純用金額去排名,而是透過演算法算出綜合性的指標。
我相信創作者們想知道算法是怎麼算的,在這邊只能透露創作者越投入在經營專案、
訂閱者的互動越深就能得到更好的排名。
目前我們也在密謀一個對創作者更有實質幫助的功能,預計在八月會問世,
還有秘密策劃第三條產品線,也即將在九月和大家見面。
未來PressPlay工程部會持續地深化你所見到的一切,和我們在麥塊中的世界。
最後,歡迎按讚追蹤我們的FB粉專:https://www.facebook.com/PressPlayTech/
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.34.49.142 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1562948175.A.FB1.html
※ 編輯: UniFish (1.34.49.142 臺灣), 07/13/2019 00:23:26
真的!很好設定。
我們有用stackdriver,我們的自動監控的通知是利用stackdriver去作的
logging server我們是用來收集nginx的accesslog,還有類mixpanel的服務
不客氣
幫QQ
有點不太懂你的描述XD
GCP load balancer是指定連線進到哪一個VM群組,我們有專門服務APP的機器
iOS/Android用戶使用PressPlay APP會連到APP Server
就連裡頭的webview開網頁也都是由APP Server服務,完全地和Web切開
你沒看到文章封面的Logo嗎?XDD
是我們部門的員工福利(?)
GCP有一年300美金的試用金額,只要有Gmail都可以使用,
任何人都可以開來玩玩
現行Web & App Server是用2VCPU + 8G Ram + SSD
一台一個月大概40-50美金吧,同等級AWS要70-80美金
不過我有綁合約,一台合約價在30美金左右
我們沒有使用Docker,我們走的是效能置上路線。
不過GCP的Auto scaling需要一個範本,才能用這個範本去增開機器。
所以我們會開一台範本的主機,然後把Web & APP服務建在上面,作成範本映像檔,用它
來開機器。
這樣的概念也和Docker很像呢,只是沒有再包一層,這樣費用也比較便宜,效能也比較好
等到未來PressPlay成長到這種架構維護成本大到比使用Docker大之後,
我們再考慮使用Docker
是的,GCP比較便宜,而且重點是在台灣。
我們的服務目前是以台灣為主,它在台灣這個優點就很吸引人了
有用ab打一下,不過最近在想clone一組架構來測試,
但還沒有決定哪個時辰要來做
哈哈哈~我可以確定他不是菜鳥啦。
但在知道架構的前提之前答應了offer但又不想做,我也不知道究竟發生什麼事XD
GCP也有喔,超級便宜,不過目前還沒試過。
目前我們的web & app server突然被關掉重啟也不會影響服務,
看來蠻適合的,找個良辰吉時來試試看好了
是的,所以我們S3有挑便宜的地區,我進公司前就是放在AWS東京了
要搬乾脆索性搬到台灣,為了速度 & $$
真的,一生難有的機會
clodflare的proxy CDN是小型服務首選,而且CDN流量是吃到飽,而且防DDOS,
一個月20米金很佛!!哪家CDN可以如此的省錢啊!!
估算下來我們用aws CDN,都會超過100米金。對於草創初期,都是能省則省。
當時GCP的Cloud Armor還在beta,怕怕的不敢用,fail2ban擋著先
是GCE喔,GAE貴貴,而且不想綁在不好轉移的架構上。
萬一哪天有更棒的服務商出現了,綁太死移不走
偷說,20米金的方案節點在LA,然後我以為商務方案(200米金)會可以用台灣節點
直到我寫信去cloudflare問說台灣節點要用哪個方案。
他們回覆要用企業方案,一個月5,000米金!!夭壽啊!!!!
哈哈哈,細節我記不太得了。
基本上是我們另外一個後端工程師處理的。
來唷(招手
Ya~網上眾說紛云,我就直接寫信給Cloudflare問個清楚,
答案的確讓我倒抽口氣。不過十萬出頭也很夭壽。
現在我們每月主機全部加一加支出連一半都不到啊 XD
我們公司加班費和補休都是照實報照時給~
有時候工程師不好意思報太多還會被我退件說報太少。
伺服器搬家前天我們分成兩組:搬家組和維護組。
搬家組不用來上班,當晚九點集合。辦完後就早上五六點,然後回家睡覺,白天換維護組
接手。
搬家組就在家睡覺。因為我很討厭操勞的生活,所以我自然地會要求組員們不能操勞,該
休就休,改報加班就報加班。
哈哈哈,這個也很重要,我也很感謝公司能不畏懼財務的壓力,能讓我們找正常且符合人
性的方式工作。
也因為我們有好好的休息,許多創意或是複雜的東西,我們都有足夠精神來實現。
是啊 XD
... <看更多>