- OpenShift在企業(yè)中的實(shí)踐:PaaS DevOps微服務(wù)(第2版)
- 魏新宇 郭躍軍
- 13字
- 2021-11-05 10:17:22
4.2 應(yīng)用向OpenShift容器化遷移的方法
4.2.1 OpenShift應(yīng)用準(zhǔn)入條件
開發(fā)人員開發(fā)的應(yīng)用想要在OpenShift上運(yùn)行,在開發(fā)時就需要遵循一些標(biāo)準(zhǔn)。我們歸納和總結(jié)了這些標(biāo)準(zhǔn),內(nèi)容如下(包括但不限于):
·所采用技術(shù)及組件可容器化
OpenShift平臺以Linux或Windows內(nèi)核以及容器運(yùn)行時(如CRI-O)作為運(yùn)行時環(huán)境,首先要滿足使用的開發(fā)語言以及中間件、數(shù)據(jù)庫等組件可被容器化。
·應(yīng)用可自動化構(gòu)建
應(yīng)用采用如Maven、Gradle、Make或Shell等工具實(shí)現(xiàn)了構(gòu)建和編譯,這將方便應(yīng)用在PaaS平臺上實(shí)現(xiàn)自動化的編譯及構(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)信息存儲于數(shù)據(jù)庫或緩存等外部系統(tǒng),最好保證應(yīng)用實(shí)例本身實(shí)現(xiàn)無狀態(tài)化。
·已提供合理可靠的健康檢查接口
OpenShift平臺可以通過健康檢查接口判斷應(yīng)用啟動和運(yùn)行的健康狀態(tài),以便在應(yīng)用出現(xiàn)故障時自動恢復(fù)。為了更好地利用平臺能力,就需要應(yīng)用提供健康檢查接口。OpenShift支持三種檢查接口:HTTP檢查、Exec檢查、TCP Socket檢查。
·不涉及底層操作系統(tǒng)依賴及復(fù)雜的網(wǎng)絡(luò)通信機(jī)制
應(yīng)用對外提供的接口應(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)用啟動時間在可接受范圍之內(nèi)
過長的啟動時間將不能發(fā)揮容器敏捷的特性,從而影響在訪問流量突增情況下快速響應(yīng)的能力。啟動時間應(yīng)做到秒級,最長不能超過5分鐘。
- LabVIEW程序設(shè)計基礎(chǔ)與應(yīng)用
- 數(shù)據(jù)結(jié)構(gòu)(Java語言描述)
- PostgreSQL 11從入門到精通(視頻教學(xué)版)
- Rust Essentials(Second Edition)
- 焊接機(jī)器人系統(tǒng)操作、編程與維護(hù)
- Mastering JavaScript High Performance
- The DevOps 2.5 Toolkit
- Hadoop大數(shù)據(jù)分析技術(shù)
- Java高手是怎樣煉成的:原理、方法與實(shí)踐
- ROS機(jī)器人編程實(shí)戰(zhàn)
- Learning jqPlot
- 深度學(xué)習(xí):基于Python語言和TensorFlow平臺(視頻講解版)
- Java語言GUI程序設(shè)計
- Building an E-Commerce Application with MEAN
- 瘋狂Ajax講義(第3版)