觀軟件技術變遷,談容器化部署
2021-10-20閱讀 189

       IT領域的近20年發(fā)生了翻天覆地的變化,20年前的軟件開發(fā)人員可能還會為能夠通過微軟的Visual Basic 6.0和Borland公司的Delphi 3.0開發(fā)出能夠運行在Windows上的界面GUI程序而感到欣喜若狂。而如今Visual Basic不知何處,Delphi也不見其蹤影,取而代之的是以Python和Go為代表的頗具時尚感的語言。業(yè)界著名的云平臺先驅OpenStack就是主要由Python語言來開發(fā)的,而Docker容器應用和容器編排軟件K8S則是由Go語言來開發(fā)的。OpenStack產(chǎn)生于2010年,Dock容器程序問世于2013年,K8S則是在2015年被我們所熟知。

       在這短短的20年中,不僅僅軟件語言產(chǎn)生了此消彼長的態(tài)勢,用以存儲軟件版本的管理平臺也有很大的躍遷。以前主流的軟件代碼版本管理工具是微軟的Visual SoftSafe(VSS)和Subversion(SVN),目前主流代表則是分布式版本管理工具GitHub和以網(wǎng)站形式呈現(xiàn)的容器鏡像倉庫(https://hub.docker.com/),鏡像倉庫網(wǎng)站存儲了很多可以為企業(yè)或個人用戶拿來即用的應用容器鏡像。

      以下是如何使用特定應用容器鏡像的場景解讀:

  1. 申請并登入一臺阿里或華為公有云上的虛擬機或云服務器;
  2. 監(jiān)測并準備容器安裝所需的初始化環(huán)境,包括yum-utils應用命令集、Bash Shell腳本運行環(huán)境,以及安裝Docker程序的互聯(lián)網(wǎng)地址鏈接;
  3. 在虛擬機環(huán)境執(zhí)行Yum命令來安裝Docker程序;
  4. 在成功安裝Docker程序后,把Docker程序作為守護進程來啟動,并把Docker程序設置為開機就啟動;
  5. 在啟動Docker程序后,可以通過Docker程序所提供的標準人機交互CLI命令與具體的業(yè)務應用所在容器(Container)進行交互;
  6. Docker程序的CLI命令提供對應用所在容器(Container)的全生命周期進行管理的能力,包括對特定應用容器的創(chuàng)建、啟動、停止、強制停止、刪除和強行刪除等操作;
  7. 在應用容器被安全啟動后,可以通過CLI命令登入該應用容器,在應用容器內(nèi)部進行必要的軟件安裝、更新、升級和基于應用容器所在操作系統(tǒng)的用戶空間文件系統(tǒng)的更改(比如針對Web應用程序的首頁index.html文件內(nèi)容的更改);
  8. 將修訂后的新的應用容器版本打包成全新的靜態(tài)鏡像,并將鏡像文件在在私有和公有的鏡像市場發(fā)布;
  9. 公有鏡像市場的容器鏡像可以供其他人做在線拉取并在其私有操作系統(tǒng)空間內(nèi)運行;
  10. 不同容器間可以通過操作系統(tǒng)的不同命名空間(Namespace)的設置進行邏輯隔離。容器本身也提供Restful API標準接口,可供外部應用程序的安全調用。

       針對以上應用的容器化部署的解讀,我們可以切實感知基于容器來部署應用的可行性。目前業(yè)務應用的架構正在從傳統(tǒng)的巨石架構向微服務架構轉型,以容器化的方式部署微服務已然成為時下的主流軟件部署形式?;贒ocker的部署能力和后期容器的日常維護都是IT技術人員所需面對的新課題。就像軟件技術的更替一樣,基于容器化的部署方式也必將成為很多企業(yè)主流選擇。