OpenShift在企业中的实践:PaaS DevOps微服务(第2版)
上QQ阅读APP看书,第一时间看更新

4.2 应用向OpenShift容器化迁移的方法

4.2.1 OpenShift应用准入条件

开发人员开发的应用想要在OpenShift上运行,在开发时就需要遵循一些标准。我们归纳和总结了这些标准,内容如下(包括但不限于):

·所采用技术及组件可容器化

OpenShift平台以Linux或Windows内核以及容器运行时(如CRI-O)作为运行时环境,首先要满足使用的开发语言以及中间件、数据库等组件可被容器化。

·应用可自动化构建

应用采用如Maven、Gradle、Make或Shell等工具实现了构建和编译,这将方便应用在PaaS平台上实现自动化的编译及构建。Java类应用建议使用Maven作为标准构建工具,Nodejs类应用建议使用npm作为标准构建工具。

·已实现应用配置参数或配置文件外部化

应用必须将配置参数外部化处理,尤其是如数据库连接、用户名等与部署环境相关的参数应使用独立配置文件、环境变量或外部集中配置中心方式获得,以便应用镜像具有良好的可移植性,满足不同环境的部署要求。

·已实现状态外部化

应用状态信息存储于数据库或缓存等外部系统,最好保证应用实例本身实现无状态化。

·已提供合理可靠的健康检查接口

OpenShift平台可以通过健康检查接口判断应用启动和运行的健康状态,以便在应用出现故障时自动恢复。为了更好地利用平台能力,就需要应用提供健康检查接口。OpenShift支持三种检查接口:HTTP检查、Exec检查、TCP Socket检查。

·不涉及底层操作系统依赖及复杂的网络通信机制

应用对外提供的接口应支持使用NAT和端口转发进行访问,不强依赖于底层操作系统及组播等网络通信机制以便适应容器网络环境,建议使用的网络协议包括HTTP和TCP。

·轻量的部署交付件

轻量的应用交付件便于大规模集群中快速传输和分发,更符合容器敏捷的理念。通常镜像大小最大不要超过2GB。

·应用启动时间在可接受范围之内

过长的启动时间将不能发挥容器敏捷的特性,从而影响在访问流量突增情况下快速响应的能力。启动时间应做到秒级,最长不能超过5分钟。