- OpenShift在企業中的實踐:PaaS DevOps微服務(第2版)
- 魏新宇 郭躍軍
- 763字
- 2021-11-05 10:17:23
4.2.3 應用容器化方法
企業應用中JavaEE類應用的打包形式通常是War包、Jar包,Spring Boot類應用的打包形式通常是Fat Jar。應用容器化在本質上是將打包的應用放到包含應用運行環境的容器鏡像中運行。在應用系統容器化的過程中會涉及三類鏡像:
·基礎鏡像:指支持應用運行的基礎系統環境的鏡像,包括已經安裝了必要的組件和工具以及包含了與運行相關的腳本和參數等。例如OpenJDK、Tomcat、Nodejs、Python等鏡像。
·應用鏡像:指在基礎鏡像之上對應用進行構建、容器化封裝,封裝之后的鏡像是包含應用的,直接或者傳入配置就可以啟動運行。
·其他技術組件鏡像:應用部署、運行所依賴的應用服務器、數據庫、消息中間件等技術組件。例如AMQ、Redis、MySQL、Jenkins等。
對于第一類和第三類的鏡像,建議最好使用可信鏡像源倉庫,如紅帽官方鏡像(https://access.redhat.com/containers/)或者其他官方鏡像。當然,完全可以自行構建這些鏡像。在OpenShift中應用容器化主要指對第二類應用鏡像的制作,主要有三種方法:本地構建、CI構建、S2I構建。
·本地構建:工程師編寫Dockerfile,并在一臺或多臺主機上手工執行docker/podman build命令構建應用鏡像。這種方式非常簡單易行,適合開發人員本地測試以及開發測試環境構建鏡像調試。
·CI構建:Jenkins集群在CI流程中調用Maven執行構建,Maven通過插件按指定的Dockerfile生成應用的容器鏡像。這種方法的不足之處是資源利用率較低,適用的場景是傳統持續集成。
·OpenShift Source-to-Image(S2I)構建:OpenShift在隔離的容器環境中進行應用的構建編譯并生成應用的容器鏡像。S2I適用于容器場景下的持續集成,也很方便,但前提是我們需要有現成的S2I Builder鏡像。紅帽官方會提供很多S2I Builder鏡像。如果客戶需要的Builder鏡像紅帽官網沒有提供,則需要自行制作。
由于CI構建主要由Jenkins或Tekton完成,我們將會在后續DevOps章節中介紹這部分內容。
本章接下來的內容將重點介紹如何使用本地構建和OpenShift S2I實現應用容器化。在正式介紹應用容器化之前,先介紹制作容器鏡像的最佳實踐,在進行應用容器化時也將遵循這些準則。
- Facebook Application Development with Graph API Cookbook
- ReSharper Essentials
- C語言程序設計基礎與實驗指導
- MATLAB 2020 從入門到精通
- Learning SQLite for iOS
- 匯編語言程序設計(第3版)
- FLL+WRO樂高機器人競賽教程:機械、巡線與PID
- Mastering KnockoutJS
- C語言程序設計
- Java網絡編程核心技術詳解(視頻微課版)
- Webpack實戰:入門、進階與調優
- Visual Basic語言程序設計基礎(第3版)
- 實戰Python網絡爬蟲
- 深入理解Kafka:核心設計與實踐原理
- 征服C指針(第2版)