- OpenShift在企業(yè)中的實(shí)踐:PaaS DevOps微服務(wù)(第2版)
- 魏新宇 郭躍軍
- 724字
- 2021-11-05 10:17:23
4.2 應(yīng)用向OpenShift容器化遷移的方法
4.2.1 OpenShift應(yīng)用準(zhǔn)入條件
開發(fā)人員開發(fā)的應(yīng)用想要在OpenShift上運(yùn)行,在開發(fā)時(shí)就需要遵循一些標(biāo)準(zhǔn)。我們歸納和總結(jié)了這些標(biāo)準(zhǔn),內(nèi)容如下(包括但不限于):
·所采用技術(shù)及組件可容器化
OpenShift平臺(tái)以Linux或Windows內(nèi)核以及容器運(yùn)行時(shí)(如CRI-O)作為運(yùn)行時(shí)環(huán)境,首先要滿足使用的開發(fā)語言以及中間件、數(shù)據(jù)庫等組件可被容器化。
·應(yīng)用可自動(dòng)化構(gòu)建
應(yīng)用采用如Maven、Gradle、Make或Shell等工具實(shí)現(xiàn)了構(gòu)建和編譯,這將方便應(yīng)用在PaaS平臺(tái)上實(shí)現(xiàn)自動(dòng)化的編譯及構(gòu)建。Java類應(yīng)用建議使用Maven作為標(biāo)準(zhǔn)構(gòu)建工具,Nodejs類應(yīng)用建議使用npm作為標(biāo)準(zhǔn)構(gòu)建工具。
·已實(shí)現(xiàn)應(yīng)用配置參數(shù)或配置文件外部化
應(yīng)用必須將配置參數(shù)外部化處理,尤其是如數(shù)據(jù)庫連接、用戶名等與部署環(huán)境相關(guān)的參數(shù)應(yīng)使用獨(dú)立配置文件、環(huán)境變量或外部集中配置中心方式獲得,以便應(yīng)用鏡像具有良好的可移植性,滿足不同環(huán)境的部署要求。
·已實(shí)現(xiàn)狀態(tài)外部化
應(yīng)用狀態(tài)信息存儲(chǔ)于數(shù)據(jù)庫或緩存等外部系統(tǒng),最好保證應(yīng)用實(shí)例本身實(shí)現(xiàn)無狀態(tài)化。
·已提供合理可靠的健康檢查接口
OpenShift平臺(tái)可以通過健康檢查接口判斷應(yīng)用啟動(dòng)和運(yùn)行的健康狀態(tài),以便在應(yīng)用出現(xiàn)故障時(shí)自動(dòng)恢復(fù)。為了更好地利用平臺(tái)能力,就需要應(yīng)用提供健康檢查接口。OpenShift支持三種檢查接口:HTTP檢查、Exec檢查、TCP Socket檢查。
·不涉及底層操作系統(tǒng)依賴及復(fù)雜的網(wǎng)絡(luò)通信機(jī)制
應(yīng)用對(duì)外提供的接口應(yīng)支持使用NAT和端口轉(zhuǎn)發(fā)進(jìn)行訪問,不強(qiáng)依賴于底層操作系統(tǒng)及組播等網(wǎng)絡(luò)通信機(jī)制以便適應(yīng)容器網(wǎng)絡(luò)環(huán)境,建議使用的網(wǎng)絡(luò)協(xié)議包括HTTP和TCP。
·輕量的部署交付件
輕量的應(yīng)用交付件便于大規(guī)模集群中快速傳輸和分發(fā),更符合容器敏捷的理念。通常鏡像大小最大不要超過2GB。
·應(yīng)用啟動(dòng)時(shí)間在可接受范圍之內(nèi)
過長的啟動(dòng)時(shí)間將不能發(fā)揮容器敏捷的特性,從而影響在訪問流量突增情況下快速響應(yīng)的能力。啟動(dòng)時(shí)間應(yīng)做到秒級(jí),最長不能超過5分鐘。
- 深入核心的敏捷開發(fā):ThoughtWorks五大關(guān)鍵實(shí)踐
- Beginning C++ Game Programming
- 測(cè)試驅(qū)動(dòng)開發(fā):入門、實(shí)戰(zhàn)與進(jìn)階
- C語言程序設(shè)計(jì)案例式教程
- Flutter跨平臺(tái)開發(fā)入門與實(shí)戰(zhàn)
- 小程序,巧應(yīng)用:微信小程序開發(fā)實(shí)戰(zhàn)(第2版)
- C++反匯編與逆向分析技術(shù)揭秘(第2版)
- Frank Kane's Taming Big Data with Apache Spark and Python
- Training Systems Using Python Statistical Modeling
- 計(jì)算語言學(xué)導(dǎo)論
- Socket.IO Cookbook
- Learning NHibernate 4
- Spring Boot 2+Thymeleaf企業(yè)應(yīng)用實(shí)戰(zhàn)
- Mobile Test Automation with Appium
- Java Web開發(fā)任務(wù)教程