挑戰
Haufe Group 於 1930 年創立,最初是一家傳統出版社,現已發展成為一家媒體與軟體公司,其 95% 的銷售額來自數位產品。多年來,該公司已從「地下室有機房」轉變為外包其基礎設施營運和 IT。最近,從稅務專家的網路入口網站到人事培訓軟體等新產品的開發,對速度、可靠性和可擴展性提出了更高的要求。「我們需要能夠更快地行動,」解決方案架構師 Martin Danielsson 說。「調整工作負載是我們真正希望能夠做到的事情。」
解決方案
當 Microsoft Azure 在歐洲推出時,Haufe Group 開始了其雲原生之旅;該公司需要雲端部署來支援其頻寬密集型下載服務的桌面應用程式。「在那之後,就出現了不同的專案,嘗試不同的事物,」Danielsson 說。兩年前,Holger Reinhardt 加入 Haufe Group 擔任技術長,並迅速將傳統的託管供應商方法重新導向雲端和 API 優先策略。
此策略的核心部分是強烈要求透過 Docker 在整個軟體部署生命週期中採用基礎設施即代碼。該公司現在正準備透過在 Microsoft Azure 和 Amazon Web Services 上使用 Kubernetes 協調的兩種服務上線。該團隊還致力於將其核心 Java Enterprise 桌面產品之一分解為微服務,以便在雲端中實現更好的可演進性和動態擴展。
影響
Danielsson 說,憑藉調整工作負載的能力,團隊「將能夠在夜間將容量縮減約一半,節省 30% 的硬體成本。」此外,更短的發布時間產生了重大影響。「以前,我們必須提前至少一週宣布我們何時要發布,因為有一份很長的清單列出您必須做的事情,」他說。「透過轉向雲原生,我們擁有適當的基礎設施來自動化所有這些事情。現在我們可以在半小時內完成新的發布,而不是幾天。」
然而,到了 1990 年代,該公司的領導者意識到未來是數位化的,值得讚揚的是,他們能夠將 Haufe Group 轉型為一家媒體與軟體企業,現在其 95% 的銷售額來自數位產品。「在從事這項業務的德國公司中,我們是最早的採用者之一,」Haufe Group 解決方案架構師 Martin Danielsson 說。
現在,他們正在為中型企業擁抱 Kubernetes 等雲原生技術開闢道路。「像 Ticketmaster 和 Google 這樣的大公司做對了,新創公司也做對了,因為他們更快,」Danielsson 說。「我們處於中間這龐大的公司群體中,擁有大量的舊有系統、大量的結構,以及許多不輕易適應雲端技術的文化。我們只有 1,500 人,但我們有數百個面向客戶的應用程式。因此,我們正在做的事情將與許多與我們規模相當甚至更小的公司相關。」
許多這些舊有挑戰源於簡單地追隨當時的技術趨勢。「我們過去常做完整的 DevOps,」他說。在 1990 年代和 2000 年代,「這意味著你的硬體在地下室。然後在 10 年前,當時的熱潮是外包應用程式營運,外包一切,並縮減你的 IT 部門,以消除所有這些硬體事務的干擾。那不是我們的專業領域。我們不想成為基礎設施供應商。現在,這一切都反彈了。」
隨著 Haufe Group 開發更多新產品(從稅務專家的網路入口網站到人事培訓軟體),他們開始感受到痛苦,這些新產品對速度、可靠性和可擴展性提出了更高的要求。「目前,我們的工作流程中斷了,我們從撰寫概念到開發,然後移交給生產部門,然後再移交給您的託管供應商,」他說。「然後當事情變糟時,我們不知道哪裡出了問題。我們絕對想要重新掌控,我們想要更快地行動。調整工作負載是我們真正希望能夠做到的事情。」
這些需求促使他們探索雲原生技術。他們首次進軍雲端是在 Microsoft Azure 中進行部署,一旦它在歐洲可用,適用於具有內建下載服務的桌面產品。此類頻寬密集型服務的託管費用過高,因此該公司轉向雲端。「在那之後,就出現了不同的專案,嘗試不同的事物,」Danielsson 說。
兩年前,Holger Reinhardt 加入 Haufe Group 擔任技術長,並迅速將傳統的託管供應商方法重新導向雲端和 API 優先策略。此策略的核心部分是強烈要求透過 Docker 在整個軟體部署生命週期中採用基礎設施即代碼。有些實驗比其他實驗更進一步;關於敏感資料的德國法規證明是將某些工作負載轉移到 Azure 和 Amazon Web Services 的障礙。「由於我們的歷史,德國在個人身份資料等方面非常嚴格,」Danielsson 說。
隨著德國 Azure Sovereign Cloud(由德國 T-Systems 供應商運行的 Azure 複製版本)的到來,這些實驗煥發了新的生機。隨著符合德國隱私法規的 Azure.de 的推出,團隊開始認真考慮將生產負載部署到雲端中的 Docker。「我們在過去兩年中一直在使用容器,我們真的掌握了它們的工作原理,」Danielsson 說。「但它始終用於開發和測試,從未用於生產,因為我們不完全了解它將如何運作。對我來說,Kubernetes 絕對是解決這個問題的技術。」
與此同時,Danielsson 建置了一個 API 管理系統,旨在支援 CI/CD 案例,而現成的 API 管理產品中缺少這些方面。它以 Mashape's Kong 閘道為基礎,以 wicked.haufe.io 的形式開源。他將 wicked.haufe.io 與他的產品團隊一起使用。
否則,Danielsson 說他的理念是「不要總是試圖重新發明輪子。選擇現有的東西,99% 的情況下都足夠了。如果您認為您真的需要自訂或額外的東西,請再三考慮。我發現雲原生框架如此令人驚嘆的一件事是,一切都息息相關。」
目前,Haufe Group 正在進行兩個在生產中使用 Kubernetes 的專案。其中一個是用於研究法規和稅法的全新行動應用程式。「我們需要一種方法,從舊有核心中提取功能,並在 API 閘道之上放置一個應用程式——許多移動部件都在呼喚容器,」Danielsson 說。因此,團隊將建置管線從「部署到您可以部署任何東西的舊的、龐大的機器」轉移到 Kubernetes 叢集,在該叢集中,將會有自動 CI/CD,「具有功能分支和過去有點繁瑣的所有這些東西。」
這是一項概念驗證工作,而證明就在結果中。「每個人都對我們在一週內完成的工作印象深刻,」Danielsson 說。「我們進行了這些整合,只是為了確保我們掌握了 Kubernetes 的工作原理。如果您可以圍繞某件事營造樂觀和熱情,那就成功了一半。如果開發人員和專案經理知道這是可行的,那麼您就差不多完成了。」Reinhardt 補充說:「您需要創造一些非常明顯、快速的勝利,才能克服現狀。」
對部署速度的影響是顯而易見的:「以前,我們必須提前至少一週宣布我們何時要發布,因為有一份很長的清單列出您必須做的事情,」Danielsson 說。「透過轉向雲原生,我們擁有適當的基礎設施來自動化所有這些事情。現在我們可以在半小時內完成新的發布,而不是幾天。」
對成本的潛在影響是另一個好處。「託管應用程式非常昂貴,因此轉移到雲端是我們真正希望能夠做到的事情,」Danielsson 說。憑藉調整工作負載的能力,團隊「將能夠在夜間將容量縮減約一半,節省 30% 的硬體成本。」
同樣重要的是,Danielsson 說,還有額外的彈性:「當我們嘗試移動或修改真正關鍵的應用程式時,通常很難驗證我們想要採取的路徑是否會順利進行。為了驗證這一點,我們需要重現環境並真正進行測試,而這對於傳統託管供應商來說成本高昂且根本不可行。雲原生使我們能夠進行有風險的變更,並以經濟高效的方式驗證它們。」
隨著兩個成功的測試專案的消息在整個公司傳播,人們對 Kubernetes 的興趣日益濃厚。「我們希望能夠支援我們的開發人員運行 Kubernetes 叢集,但我們尚未做到這一點,因此我們允許他們這樣做,只要他們意識到他們是靠自己,」Danielsson 說。「因此,這就是為什麼我們也在研究諸如 [託管 Kubernetes 平台] CoreOS Tectonic、Azure Container Service、ECS 等。這些服務對於想要利用雲原生但沒有 IT 部門或圍繞它的結構的中型公司來說將更為重要。」
Danielsson 說,在未來一年半內,該公司將致力於將其舊有的桌面產品之一(最初在 Java Enterprise 中建置的用於研究法規和稅法的網路應用程式)轉移到雲原生技術。「我們現在正在進行微服務拆分,以便我們可以獨立部署不同的部分,」他說。為客戶提供免費內容的主要網站也正在轉移到雲原生。
但是,Danielsson 認為,有了這些目標,就需要不斷解決更大的文化挑戰。轉向新技術,更不用說轉向 DevOps,對員工來說意味著很多改變。「過去的角色相當固定,」他說。「您有開發人員、專案主管、測試人員。現在您開始接觸到這些非常非常重要的事情,例如測試自動化。測試人員實際上不再進行點擊測試,他們必須編寫自動化測試。如果您真的想全面實施 CI/CD,所有這些小部分都必須協同工作,以便您有信心進行簽入,並知道此簽入將在生產環境中生效,因為如果我搞砸了,某些測試將會失敗。這是一件非常強大的事情,因為無論您做什麼,無論何時將某些東西合併到主幹或主分支,這都將上線。這就是您要么留住人,要么他們尖叫著逃跑的地方。」Danielsson 理解,有些人可能需要更長的時間才能適應新方法。
「文化不是您可以強加於人的東西,」他說。「您必須親身實踐。您必須宣傳。您必須一次又一次地展示優勢:這就是您可以做到的方式,這就是您從中獲得的。」為此,他的團隊為員工安排了為期一天的研討會,邀請外部專家來談論從 API 到 DevOps 再到雲端的一切。
對於每一個尖叫著逃跑的人,許多其他人被吸引進來。「讓他們踏出第一步,讓他們真正對這些東西感興趣,」Danielsson 說。「通常它會流行起來。我們有您永遠不會想到的人現在高呼『Docker Docker Docker』。看到他們意識到在他們的 Python 函式庫之外還有一個世界,真是太酷了。看到他們真正使用 Kubernetes 真是太棒了。」
最終,Reinhardt 說,「策略的執行需要文化、結構和技術的協調一致。只有當這三個維度對齊時,您才能成功地將轉型為微服務和雲原生架構。只有這樣,雲端才能在更快的產品創新速度和更低的營運成本方面帶來紅利。」