Docker容器技術素以輕量級且容易部署等特色著稱,也因此得到眾多開發管理人員的青睞,但是若未經過仔細的效能調校,實際運作時效能可能會不如預期,對此本文將透過多項測試來加以驗證,實際導入Docker容器技術後,還必須進一步地調整校正,才能發揮這項技術的真正優勢。
在2013年,dotCloud這間原本提供PaaS服務的公司,將自家開發用於管理PaaS服務的容器技術「Docker」貢獻給開放原始碼,並將所有原始碼內容上傳至GitHub。之後,由於Docker容器管理技術能夠快速且有效地解決過往開發環境在建構、測試、部署上的種種困擾及問題,因此該容器技術便迅速地在業界開始廣為流傳,甚至演變成Docker就是容器技術的代名詞。
時至今日,Docker容器管理技術能夠如此迅速發展,並非僅是能夠巧妙地利用「容器」(Container)技術來解決過往開發環境的困擾,主要原因在於Docker容器技術在推廣時期,同時也營造出非常良好的生態系統,如圖1所示,讓社群、開放原始碼、商業公司等等大家都能夠互惠且互助合作,所以在魚幫水水幫魚的情況下, Docker容器技術短短幾年內便改變了整個業界部署應用程式和服務的型態。
|
▲ 圖1 Docker生態系統運作示意圖。(圖片來源:Docker Blog - dotCloud, Inc. is Becoming Docker, Inc) |
除此之外,隨著新興的「微服務」(Microservice)部署架構的盛行,Docker容器技術也被許多管理人員推薦為部署微服務架構的首選。因此,隨著Docker容器技術日益盛行,企業和組織對於應用程式和服務的建構和部署模式也隨之改變,管理人員開始思考如何將既有的應用程式和服務「容器化」(Containerization),以便在建構的微服務架構下搭配Docker容器技術部署企業和組織的營運服務。
同時,當企業和組織的IT團隊開始使用Docker容器技術管理應用程式和服務後,也能夠讓企業和組織當中的軟體開發人員團隊及IT維運管理人員之間的DevOps流程更加順暢,如圖2所示,並且也讓軟體團隊的「CI/CD持續整合及發佈」(Continuous Integration/Continuous Delivery)自動化流程更加緊密,讓開發人員能夠更加專注在開發及維護程式碼的品質上,進而打造出提升企業競爭力的產品和服務。
|
▲ 圖2 CI/CD持續整合及發佈流程示意圖。(圖片來源:Docker Blog - Webinar: Containerization for the Virtualization Admin) |
VMware Photon容器平台簡介
有鑑於Docker容器技術日漸風行,VMware官方也在2015年4月時推出Photon OS及Project Lightwave這兩項開放原始碼專案,並且也上傳到知名的開放原始碼專案平台GitHub上,讓所有對VMware Photon容器平台感興趣的管理人員能夠方便下載使用。
同時在2016年10月VMworld歐洲大會上也正式發佈VMware Photon Platform,希望能夠幫助企業和組織輕鬆打造出「雲端原生應用程式」(Cloud Native Applications)的運作環境,如圖3所示。
|
▲ 圖3 VMware Photon Platform容器平台運作架構示意圖。(圖片來源:VMware Hands-on Labs - HOL-1730-USE-2 Cloud Native Apps With Photon Platform) |
簡單來說,在VMware Photon Platform容器平台解決方案中,Photon OS負責擔任輕量級的容器作業系統(儲存空間僅占用約300MB),雖然Photon OS也是源至Linux作業系統,但是已經移除不必要的Linux Kernel程式碼,以及與vSphere Hypervisor之間重複的核心快取機制,因此在VMware vSphere虛擬化基礎架構中運作Photon OS容器平台,將能夠更加充分地發揮Docker容器的運作效能。
此外,Photon OS容器平台在部署方面不但能夠與K8S容器調度平台協同運作,就連管理人員對容器技術最為在意的安全性問題,甚至能夠直接與VMware NSX網路虛擬化技術的「微分段」(Micro-Segmentation)機制協同運作,輕鬆地為Docker容器加強整體安全性,如圖4所示。
|
▲ 圖4 Photon Platform及NSX協同運作有效提升容器安全性。(圖片來源:VMware Network Virtualization - How VMware NSX Enables Enterprises to Deploy and Operationalize Containerized Applications at Scale) |
裸機/VM虛擬主機/容器結合使用
過去,企業和組織部署營運服務的方式,通常是採用「實體伺服器」直接運作應用程式或服務,或者以實體伺服器為基礎建立「虛擬化基礎架構」之後,在虛擬化基礎架構上的VM虛擬主機中運作應用程式或服務。