關鍵兩步+6個要點,讓Windows應用程序享有K8S的絕佳優點

本文來自Rancher Labs數據庫

前  言

實際上,沒有一個遷移路徑可以適用於將全部傳統應用程序遷移到雲。這些應用程序一般在物理機、虛擬機或本地。雖然通常狀況下是從新設計應用程序架構以適用雲原生服務,但這並不是是惟一的答案。將一個現有的應用程序的架構從新構建爲微服務架構或雲原生架構會面臨諸多挑戰,如重構成本、複雜性以及應用程序的依賴性。安全

雖然將應用程序的架構現代化有諸多好處,但許多組織仍在Windows 2003 Servers上運行現有服務。而微軟再也不支持Windows 2003爲此帶來了一些挑戰。首先,人們不得不開始決定要如何處理這些應用程序,特別是Windows 2008的生命週期也即將結束。服務器

許多企業想要遷移到現代架構中,指望以此能讓他們的應用程序得到複雜性、安全性和可用性。而容器提供了使應用程序現代化並將其移至雲原聲服務的靈活性。在本文中,咱們將重點介紹可以遷移到容器的應用程序,通常是.Net、Web、SQL和其餘沒有依賴性但在Windows2003上運行的應用程序。你能夠無需更改代碼就能將這些應用程序遷移到容器,而且使它們在未來具有可移植性。你將會享受到在Kubernetes上運行容器的好處,如可編排、可用性、更高的彈性伸縮和密度。網絡

請注意:不是全部的應用程序和服務都能運行在容器中。有些應用程序存在覈心依賴項(如數據庫、存儲需求等),這些都須要解決。此外,須要根據業務決定應用程序的持續壽命。session

商業層面:遷移到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的容器化方面有豐富的經驗。

相關文章
相關標籤/搜索