容器改造传统应用的流程

简介: 【5月更文挑战第1天】如何评估和执行将传统应用进行Docker化改造的过程。

首先根据系统的特点判断是否适合Docker化改造,如适合改造,则开始制定改造方案,改造方案会涉及系统镜像的组成、镜像的参数、镜像的启动方式以及源码改造点等基本问题。接下来就是改造环节了,即改造代码以符合Docker的要求,然后制作镜像。最后是验证阶段,由于可以在一个单机上启动多个Docker容器进行联网调测,所以单机测试验证通过以后,基本上就表明了多机分布式部署的正确性,最后进行多机部署测试,以及生产环境的上线过程。


那么哪些应用适合Docker化改造?一般认为符合以下条件的应用是适合进行Docker化改造的。

1)频繁修改和升级的系统。

2)不太稳定,容易死机或者导致CPU、内存等过度消耗的应用。

3)大量使用开源技术和中间件的系统。

4)其主要目的是用作演示的应用。


首先,很少变动的系统不适合进行Docker化改造,因为很少变动的系统意味着没有什么业务需求支撑,如果花很大代价将其进行改造,就是一种投资浪费。系统改动升级越频繁,Docker化的价值越大,因为Docker镜像后的系统部署和升级都很容易实现标准化和自动化,大大提升了项目组的工作效率,减少了重复劳动,Docker化以后,镜像都有版本,因此升级失败后的回滚也变得更容易和可靠。


其次,Docker容器因为共享Linux内核,所以那些与Linux底层密切相关的应用是不适合Docker化的,因为这些容器大量操作内核API,可能导致内核不稳定,如内核崩溃,此时其他容器都受牵连,这是非常严重的。所以这种情况是不能进行容器化的,必须要独立出去。而对于那些不太稳定、容易“自杀”或者容易导致CPU和内存过度消耗的应用,则很适合Docker化,因为Docker可以做CPU和内存的资源配额限制,例如,一个Docker容器只分配1GB的内存,则此容器内的进程如果申请超过1GB的内存,就可能会被Docker Engine“杀死”,如果该容器限定了使用0.5个CPU,那它永远不会得到超过0.5个CPU的使用量,因此Docker化以后,这种过度消耗资源的进程会被约束,不会导致系统问题。另外,如果某个进程不稳定并且容易“自杀”,则可以在容器化的时候设置它的启动策略为“restart=always”,这样如果Docker Engine发现这个容器“死了”,就会自动尝试重启这个容器。


最后,其主要目的是用作演示的应用以及项目POC也都适合Docker化。因为Docker比较轻量,很容易用Docker容器部署一个集群应用,这个集群应用只需要少量资源,如在高配置的笔记本式计算机上就能流畅演示。此外,如果演示者本身并不是很懂技术,相对于虚拟机等复杂的技术,Docker的使用还是很容易快速掌握的,稍微培训一下,很多售前和销售人员就能正确启动一套Docker的演示集群。此外,每次创建的Docker容器都是全新的、没有历史数据的,因此每次演示都能确保系统是正常可靠的。


总结下Docker化改造传统应用的关键步骤如下。

1)评估代价与可行性——评估改造的可行性及资源投入等。

2)改造方案——包括如何升级改造、对代码进行修订的指导性意见等。

3)代码修订——对前期涉及的原有代码进行修订,包括一些接口设计等。

4)制作镜像——实施阶段,制作镜像。

5)单机验证测试——对镜像做单机验证。

6)多机部署——多机环境的正常部署和应用的正常启动。

相关文章
|
2天前
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
针对本地存储和 PVC 这两种容器存储使用方式,我们对 ACK 的容器存储监控功能进行了全新升级。此次更新完善了对集群中不同存储类型的监控能力,不仅对之前已有的监控大盘进行了优化,还针对不同的云存储类型,上线了全新的监控大盘,确保用户能够更好地理解和管理容器业务应用的存储资源。
|
7天前
|
存储 监控 对象存储
ACK容器监控存储全面更新:让您的应用运行更稳定、更透明
介绍升级之后的ACK容器监控体系,包括各大盘界面展示和概要介绍。
|
2月前
|
持续交付 开发者 Docker
探索容器化技术Docker及其在现代软件开发中的应用
探索容器化技术Docker及其在现代软件开发中的应用
|
1月前
|
存储 Prometheus 监控
Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行
本文深入探讨了在Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行。
65 5
|
1月前
|
开发框架 安全 开发者
Docker 是一种容器化技术,支持开发者将应用及其依赖打包成容器,在不同平台运行而无需修改。
Docker 是一种容器化技术,支持开发者将应用及其依赖打包成容器,在不同平台运行而无需修改。本文探讨了 Docker 在多平台应用构建与部署中的作用,包括环境一致性、依赖管理、快速构建等优势,以及部署流程和注意事项,展示了 Docker 如何简化开发与部署过程,提高效率和可移植性。
76 4
|
2月前
|
持续交付 开发者 Docker
探索容器化技术Docker及其在现代软件开发中的应用
探索容器化技术Docker及其在现代软件开发中的应用
|
2月前
|
运维 Kubernetes Docker
深入理解容器化技术及其在微服务架构中的应用
深入理解容器化技术及其在微服务架构中的应用
80 1
|
2月前
|
安全 网络安全 数据安全/隐私保护
利用Docker的网络安全功能来保护容器化应用
通过综合运用这些 Docker 网络安全功能和策略,可以有效地保护容器化应用,降低安全风险,确保应用在安全的环境中运行。同时,随着安全威胁的不断变化,还需要持续关注和研究新的网络安全技术和方法,不断完善和强化网络安全保护措施,以适应日益复杂的安全挑战。
58 5
|
2月前
|
存储 安全 Java
Java多线程编程中的并发容器:深入解析与实战应用####
在本文中,我们将探讨Java多线程编程中的一个核心话题——并发容器。不同于传统单一线程环境下的数据结构,并发容器专为多线程场景设计,确保数据访问的线程安全性和高效性。我们将从基础概念出发,逐步深入到`java.util.concurrent`包下的核心并发容器实现,如`ConcurrentHashMap`、`CopyOnWriteArrayList`以及`BlockingQueue`等,通过实例代码演示其使用方法,并分析它们背后的设计原理与适用场景。无论你是Java并发编程的初学者还是希望深化理解的开发者,本文都将为你提供有价值的见解与实践指导。 --- ####
|
2月前
|
监控 持续交付 Docker
Docker 容器化部署在微服务架构中的应用有哪些?
Docker 容器化部署在微服务架构中的应用有哪些?

热门文章

最新文章