挑戰
Adform 的使命是提供安全透明的完整廣告技術堆疊,以實現在所有裝置上的數字廣告。該公司擁有龐大的基礎設施:基於 OpenStack 的私有云,執行在全球 7 個數據中心的 1,100 臺物理伺服器上,其中 3 個數據中心是去年才開放的。隨著公司的發展,基礎設施團隊感到“我們的私有云不夠靈活,”IT 系統工程師 Edgaras Apšega 說。“最大的痛點是我們的開發人員需要維護他們的虛擬機器,因此推出新技術和新軟體需要時間。我們釋出時遇到了很大困難,而且我們沒有自愈基礎設施。”
解決方案
該團隊已經使用 Prometheus 進行監控,並於 2017 年採用了 Kubernetes 和雲原生實踐。“為了開始我們的 Kubernetes 之旅,我們必須調整所有軟體,因此我們必須選擇更新的框架,”Apšega 說。“我們還採用了微服務方式,因此可觀察性更好了,因為您可以單獨檢查錯誤或服務。”
影響
“Kubernetes 對我們的業務幫助很大,因為我們的功能更快地推向市場,”Apšega 說。釋出過程從幾個小時縮短到幾分鐘。自動擴縮至少比之前所需的半手動虛擬機器引導和應用程式部署快 6 倍。團隊估計,由於所需硬體和設定硬體、虛擬機器、指標和日誌的人工工時減少,公司節省了 4-5 倍的成本。硬體資源利用率也降低了,容器的效率比虛擬機器高 2-3 倍。“部署非常簡單,因為開發人員只需推送程式碼,它就會自動出現在 Kubernetes 上,”Apšega 說。Prometheus 也產生了積極影響:“它為指標和警報提供了高可用性。我們監控從硬體到應用程式的一切。將所有指標放在 Grafana 儀表板中,可以對您的系統提供深入的洞察。”
為了提供安全透明的完整廣告技術堆疊以實現開放網際網路的使命,Adform 釋出了一份白皮書,揭示了它如何以及其他人可以如何限制客戶遭受詐騙。
本著同樣的精神,Adform 正在分享其雲原生之旅。“當你看到每個人都分享他們的最佳實踐時,這會激勵你為專案做出貢獻,”IT 系統工程師 Edgaras Apšega 說。
該公司擁有龐大的基礎設施:基於 OpenStack 的私有云,執行在全球七個資料中心的 1,100 臺物理伺服器上,其中三個是去年才開放的。隨著公司的發展,基礎設施團隊感到“我們的私有云不夠靈活,”Apšega 說。“最大的痛點是我們的開發人員需要維護他們的虛擬機器,因此推出新技術和新軟體確實需要時間。我們釋出時遇到了很大困難,而且我們沒有自愈基礎設施。”
該團隊已經使用 Prometheus 進行監控,並採用了 Kubernetes、微服務和雲原生實踐。“雲原生計算基金會孵化 Kubernetes 對我們來說是一個非常重要的點,因為它與供應商無關,”Apšega 說。“我們可以看到一個社群真正圍繞它聚集起來。”
一個概念驗證專案啟動了,一個 Kubernetes 叢集在資料中心的裸機上執行。當開發人員看到容器的啟動速度比虛擬機器程序快得多時,“他們想立即將容器投入生產,而我們仍在進行概念驗證,”IT 系統工程師 Andrius Cibulskis 說。
當然,還有很多工作要做。“首先,我們必須學習 Kubernetes,瞭解所有移動部件,它們如何粘合在一起,”Apšega 說。“其次,整個 CI/CD 部分必須重做,我們的 DevOps 團隊必須投入更多工時來實施它。第三是開發人員必須重寫程式碼,他們仍在這樣做。”
第一個生產叢集於 2018 年春季啟動,現在在三個資料中心擁有多達 20 臺專用於 Pod 的物理機器,並計劃在其他四個資料中心建立獨立的叢集。面向使用者的 Adform 應用程式平臺、資料分發平臺和後端現在都在 Kubernetes 上執行。“許多關鍵應用程式的 API 正在為 Kubernetes 開發,”Apšega 說。“團隊正在將他們的應用程式重寫為 .NET Core,因為它支援容器,並準備遷移到 Kubernetes。新應用程式預設都放在容器中。”
這項重大推動是由這些新實踐帶來的實際影響驅動的。“Kubernetes 對我們的業務幫助很大,因為我們的功能更快地推向市場,”Apšega 說。“部署非常簡單,因為開發人員只需推送程式碼,它就會自動出現在 Kubernetes 上。”釋出過程從幾個小時縮短到幾分鐘。自動擴縮至少比之前所需的半手動虛擬機器引導和應用程式部署快六倍。
團隊估計,由於所需硬體和設定硬體、虛擬機器、指標和日誌的人工工時減少,公司節省了 4-5 倍的成本。硬體資源利用率也降低了,容器的效率比虛擬機器高 2-3 倍。
Prometheus 也產生了積極影響:“它為指標和警報提供了高可用性,”Apšega 說。“我們監控從硬體到應用程式的一切。將所有指標放在 Grafana 儀表板中,可以對我們的系統提供深入的洞察。”
所有這些好處都惠及了個人團隊成員,他們的工作生活因此變得更好。“他們過去必須在晚上起床重新啟動某些服務,現在 Kubernetes 處理了所有這些,”Apšega 說。Cibulskis 補充道:“釋出對他們來說非常棒,因為他們只需將程式碼推送到 Git,就大功告成了。他們不再需要擔心自己的虛擬機器。”甚至安全團隊也受到了影響。“安全團隊總是抱怨連連,”Apšega 說,“現在他們很高興,因為他們可以輕鬆檢查容器。”
Cibulskis 說,該公司目前計劃繼續使用資料中心,“主要是因為我們想保留所有資料,不以任何方式共享,而且以我們的規模來看更便宜。”但 Apšega 說,使用混合雲進行計算的可能性很有趣:“我們感興趣的一個專案是 Virtual Kubelet,它允許您在不同的雲上啟動工作節點進行一些計算。”
Apšega、Cibulskis 和他們的同事正在關注雲原生生態系統的發展,並很高興能在力所能及的範圍內做出貢獻。“我認為我們公司剛剛開始我們的雲原生之旅,”Apšega 說。“前方似乎還有很長的路要走,但我們很高興能加入其中。”