取决于应用的特点。目前有开发测试是容器云、生产是容器云和 VM 混合的情况。应用上容器云的准入标准可以参考:
1.已建立了清晰的可自动化的编译及构建流程
应用使用了如Maven、Gradle、Make或Shell等工具实现了构建编译步骤的自动化。这将方便应用在容器平台上实现自动化的编译及构建。
2.已实现应用配置参数外部化
应用已将配置参数外部化与配置文件或环境变量中,以便于应用容器能适配不同的运行环境。
3. 已提供合理可靠的健康检查接口
容器平台将通过健康检查接口判断容器状态,对应用服务进行状态保持。
4. 已实现状态外部化,实现应用实例无状态化
应用状态信息存储于数据库或缓存等外部系统,应用实例本身实现无状态化。
5. 不涉及底层的操作系统依赖及复杂的网络通信机制
应用以处理业务为主,不强依赖于底层操作系统及组播等网络通信机制以提高可移植性。
6. 部署交付件及运行平台的大小在2GB以内
轻量级的应用便于在大规模集群中快速传输分发,更符合容器敏捷的理念。
7. 启动时间在5分钟以内
过长的启动时间将不能发挥容器敏捷的特性
建议完成技术选型后,同步建设。容器平台隶属基础设施,是应用运行的底座,业务的运行应当有一致的测试和生产环境,避免异构影响,同时提供生产和测试的技术参考。
测试环境主要衡量如下指标:
1、验证平台的高可用
2、验证平台的基础功能
3、验证业务开发测试流程,重要看一下与CICD工具的集成能力
4、验证业务高可用的部署架构
5、验证业务扩缩容场景下的业务可用性和稳定性
生产环境主要衡量如下指标:
1、应急响应能力
2、灾难恢复能力
3、平滑升级能力
4、备份还原能力
5、监控告警能力
6、安全审计能力
一般而言,能够达到服务生产的程度,容器云平台的测试环境和预发布环境都是必要的。
测试环境的建设更多是服务于应用系统的研发团队。有容器化经验的应用团队会更明确该怎么做,无论是镜像制作、部署模型、服务发布都会更能充分利用容器平台;而缺乏相关经验的应用团队可能会出现使用非官方镜像、未经考虑的设置资源配比等情况,这些都会加剧测试环境的混乱程度,搞成一锅粥。所以测试环境是绕不过去的,在这个阶段,容器云平台的使用方和运维方可以在协商之下,界定好容器平台的使用规范。而预发布环境更多的是为容器云平台的运维方准备的,平台所有的变更要在这里预演,和生产环境相关的故障重新、定位分析、修复试错要在这里进行。测试环境 -> 预发布环境 -> 生产环境,这一条链路伴随着镜像成品、配置方案的沉淀,并且也只有前置环境沉淀下来的成品和配置才能流转到下一个环境。
如果衡量标准说的是上测试环境还是直接生产,那么就前面说的,通常来说直接上生产环境基本就是铤而走险。但也有例外,例如想先用一些无状态的app应用来做试点。如果资源充足、架构设计合理,那么应用发版的时候可以选择A/B或蓝绿发布来增加抗风险能力,同时尽量使用反亲和来规避平台节点故障带来的风险。
而如果说的是平台建设的方案选择标准,最重要的稳定性、高可用和灾备设计。至于其他方面就需要结合自身,看看更倾向于什么,包括运维方式是否匹配现有规范和传统,网络方案能否兼顾云原生应用的开发和传统应用的改造过渡,已经存储方案能够充分利用已有资源池或设备。
收起建议在引进后同步建设:容器云平台的价值在于充分利用资源、提高交付效率、所测及所投等,一切的起点在测试环境,过程中涉及CI/CD、质量门禁、制品晋级等,大量前期工作都是在测试环境完成,所以建设测试环境是首先要做的,也是重中之重。只有在测试环境通过了测试的应用系统才能投产,生产环境也要同步建设就绪,且需与测试环境保持高度一致,这样才能保证通过测试的镜像可直接运行于生产环境。
收起容器云平台上生产环境需考虑几个维度的问题。
1、基础设施层的高可用:物理机(不同机架)、虚拟机(分布)、网络设备双活、存储选型(SAN、SAS)
2、平台这一层,包含的关键组件,dns,ovs,etcd,master等的高可用方案;
3、平台网络方案的选型,结合网络监控需求,应用架构需求,网络隔离需求,underlay还是overlay。
4、平台的数据备份和应急处理方案,巡检方案、监控告警方案的落地;
5、用于支撑平台上应用的仓库、负载均衡方案、存储方案、CD方案的落地
6、应用的管理、滚动更新、灰度、回滚、集群容量管理方案的落地
逐步落地实现即可
收起金融行业中系统的可用性和稳定性有比较高的要求,在选用哪个容器云平台时,想必都进过了严格的选型和测试;测试和生产容器云平台上线的优先和在传统的虚拟平台等一致,一般都先上测试环境,相应的应用系统在容器云平台测试成功后,才会发布于容器云的生产环境;其标准的权衡因公司实际的情况而异,一般涉及:1)行业规范和及标准(要求)2)先开发-测试-生产这样一个常规流程 3)特殊情况特殊处理。
收起先说衡量标准,业务的稳定性和可靠性!
一般业务上生产环境需要经过多个流程和环节,首先业务能否在容器云平台运行,运行是否稳定和可靠,业务运行在容器云平台是否经过功能集成测试和压力测试等等,只有这些都通过了才能在生产环境运行!
一般上生产环境还会考虑业务的灾备和容灾场景。
收起