参考一个权威的回答,docker的官方网站上说明了docker容器适合什么应用场景,和改造的注意点。
docker的典型场景:1、 使应用的打包与部署自动化2、 创建轻量、私密的PAAS环境3、实现自动化测试和持续的集成/部署
根据这些特性,我们可以想象一下,如果你的项目有如下痛点或者需求,那么可以考虑一下使用docker了。
(1)需要频繁的升级,可以充分利用docker的镜像版本快速升级回退。
(2)开发,测试,线上的代码运行环境经常变更。每当你查了半天bug,最后竟然是环境不一致的时候。
(3)销售演示或者POC的demo。启动后无历史数据,免去清理数据的烦恼。
(4)项目体量过大,进行了微服务改造。需要统一管理,docker-compose了解下。
(5)占用资源过多,可以利用docker资源配额和设置启动策略,提升稳定性。
(6)整合开源服务,随着docker使用的普及,越来越多的开源项目提供了docker镜像部署。
注意:事物都是有两面,并不是所有项目都适合docker化改造,而且任何的改动都有可能产生不好的影响,要对技术保持敬畏。遵循科学流程,《企业级容器云架构开发指南》中给出了一个改造流程,可参考:(1)评估代价可行性(2)改造方案(3)代码修改(4)制作镜像(4)单机验证(5)多机部署
收起通常情况下,运行在容器云中的应用是轻量的,无状态的应用。那么符合这类特征的应用可以较为容易地迁移到容器平台。对于相对重一些的,或者有状态的应用,则需要进行改造。
实际项目中的情况是对于新上线系统,可能在设计之初便考虑采用云原生理念;
对于老旧系统,如果已经很少有人维护,不会考虑迁移;如果仍然是在持续升级更新的系统,则可以考虑进行容器化改造,判断的依据仍然是有无痛点需求。例如:
(1)是否有频繁升级迭代的需求
(2)是否有快速弹性扩容的需求
( 3 )不同环境部署过程时,是否因为解决环境依赖而耗费大量精力