本文來自Rancher Labs
前 言
實際上,沒有一個遷移路徑能夠適用于將所有傳統應用程式遷移到云,這些應用程式通常在物理機、虛擬機或本地,雖然一般情況下是重新設計應用程式架構以適用云原生服務,但這并非是唯一的答案,將一個現有的應用程式的架構重新構建為微服務架構或云原生架構會面臨諸多挑戰,如重構成本、復雜性以及應用程式的依賴性,
雖然將應用程式的架構現代化有諸多好處,但許多組織仍在Windows 2003 Servers上運行現有服務,而微軟不再支持Windows 2003為此帶來了一些挑戰,首先,人們不得不開始決定要如何處理這些應用程式,特別是Windows 2008的生命周期也即將結束,
許多企業想要遷移到現代架構中,期望以此能讓他們的應用程式獲得復雜性、安全性和可用性,而容器提供了使應用程式現代化并將其移至云原聲服務的靈活性,在本文中,我們將重點介紹能夠遷移到容器的應用程式,一般是.Net、Web、SQL和其他沒有依賴性但在Windows2003上運行的應用程式,你可以無需更改代碼就能將這些應用程式遷移到容器,并且使它們在將來具備可移植性,你將會享受到在Kubernetes上運行容器的好處,如可編排、可用性、更高的彈性伸縮和密度,
請注意:不是所有的應用程式和服務都能運行在容器中,有些應用程式存在核心依賴項(如資料庫、存盤需求等),這些都需要解決,此外,需要根據業務決定應用程式的持續壽命,

商業層面:遷移到Kubernetes的優勢
將這些應用程式遷移到容器有一些關鍵的業務原因,如:
-
投資回報率高
-
傳統的基于Web的服務可以獲得可移植性
-
應用程式安全性提升
-
節省企業重新評估現有應用程式的時間
既然Kubernetes支持Windows的worker節點,那么你可以遷移傳統的Windows應用程式到現代架構中,Windows worker和Linux worker可以共存在同一個Kubernetes平臺中,也就是說,運維團隊可以適用同一套工具、實踐以及程序,
Step1:分析從Windows遷移到K8S的程序
將傳統應用程式遷移到Kubernetes需要大量的分析和計劃,但是,有一些關鍵的實踐是十分必要的,比如:
-
分解應用程式:將應用程式拆分為原始形式,以了解哪些組件正在運行,它們如何運行以及它們的依賴關系
-
發現應用程式提供的服務以及在資料、網路等方面產生的呼叫
-
從應用程式中解耦出資料層
-
確定并映射服務依賴項
-
測驗、測驗再測驗
Step2:規劃從Windows到K8S的遷移程序
遷移到容器化、基于.Net的平臺是一個復雜的流程,中間會涉及許多步驟,因此,在執行這一流程時需要做出一些關鍵的決定,以下程序提供了一些有關遷移舊Windows系統以在Kubernetes上運行的要求的指導,
-
確定你的容器所需要的作業系統——Server Core或Nano Server,這需要根據應用程式的依賴項進行選擇,
-
遵循兼容性準則,運行Windows容器會為主機的OS版本和容器正在運行的基本鏡像添加嚴格的兼容性規則,它們必須運行Windows 2019,因為容器及底層主機共享一個內核,截至成文時,僅支持服務器隔離行程,然而,很快會開始支持Hyper-V隔離(具體時間未知),這將有助于主機和容器的兼容,
-
打包你的傳統應用程式,
-
使用應用程式包構建基于Docker的初始容器,
-
在你所選擇的倉庫中部署一個新的Docker容器
-
充分利用現有的DevOps工具(CI/CD構建和發布流水線)
-
部署新的Windows應用程式到你所構建的支持Windows的Kubernetes環境中
-
測驗、測驗,再測驗
將Windows應用程式遷移至K8S的關鍵優勢
通過從Windows遷移到Kubernetes,你的舊應用程式將享有你現有基于容器的應用程式的優勢,此外,你的Windows容器也將會從Kubernetes平臺本身獲得優勢,而且,它們可以使用Kubernetes生態中的工具和系統,包括安全性工具、服務網格、監控/告警等,
這些優勢疊加在一起,可以讓你處于有利地位,以便于對應用程式做出關鍵決策并發掘業務用例,對于無法遷移的應用程式,由于缺乏對底層作業系統的支持,因此你不能對此放任不管,仍然需要決定如何處理它們,而且由于沒有其他可用的補丁或安全補救措施,因此你的企業容易受到漏洞和攻擊,所以應該及時采取行動,
從Windows遷移到K8S的關鍵要點
-
基于容器的解決方案可以節省成本
-
容器減少依賴項并為應用程式提供可移植性
-
Docker已經是運行容器的事實標準,同時Kubernetes是容器編排引擎的事實標準
-
Kubernetes可以托管可伸縮、可靠且具有彈性的基于Windows容器的應用程式以及基于Linux的應用程式
-
運行Kubernetes平臺的組織可以將傳統應用程式集成到他們的DevOps文化和工具中
-
利用原生和基于生態系統的Kubernetes工具可以提高安全性并為傳統應用程式增加額外的保護層
在Rancher 2.3中,GA了對Windows容器的支持,通過把Kubernetes的所有優勢引入Windows,Rancher 2.3極大降低了企業使用Windows容器的復雜性,并為基于Windows遺留應用程式的現代化提供快捷的途徑——無論這些程式是在本地運行還是在多云環境中運行,此外,Rancher 2.3還可以將它們容器化并將其轉換為高效、安全和可遷移的多云應用程式,從而省去重寫應用程式的作業,
作者簡介
Kelly Griffin是基礎架構,安全和微服務顧問,在提供企業解決方案方面擁有20多年的經驗,他所服務過的企業遍布全球,包括澳大利亞、新加坡、新西蘭等,他在使用Docker和Kubernetes的容器化方面有豐富的經驗,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/41226.html
標籤:其他
