容器改造传统应用的流程

简介: 【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月前
|
Kubernetes Docker Python
Docker 与 Kubernetes 容器化部署核心技术及企业级应用实践全方案解析
本文详解Docker与Kubernetes容器化技术,涵盖概念原理、环境搭建、镜像构建、应用部署及监控扩展,助你掌握企业级容器化方案,提升应用开发与运维效率。
559 108
|
2月前
|
运维 监控 数据可视化
小白也能部署应用,3个免费的容器化部署工具测评
本文对比了三款容器化部署工具:Docker Compose、Portainer 和 Websoft9。Docker Compose 适合开发者编排多容器应用,Portainer 提供图形化管理界面,而 Websoft9 则面向中小企业和非技术人员,提供一键部署与全流程运维支持,真正实现“开箱即用”。三款工具各有定位,Websoft9 更贴近大众用户需求。
小白也能部署应用,3个免费的容器化部署工具测评
|
25天前
|
监控 Kubernetes 安全
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
蒋星熠Jaxonic,技术探索者,以代码为笔,在二进制星河中书写极客诗篇。专注Docker与容器化实践,分享从入门到企业级应用的深度经验,助力开发者乘风破浪,驶向云原生新世界。
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
|
3月前
|
存储 监控 Java
如何对迁移到Docker容器中的应用进行性能优化?
如何对迁移到Docker容器中的应用进行性能优化?
279 59
|
3月前
|
Cloud Native 中间件 调度
云原生信息提取系统:容器化流程与CI/CD集成实践
本文介绍如何通过工程化手段解决数据提取任务中的稳定性与部署难题。结合 Scrapy、Docker、代理中间件与 CI/CD 工具,构建可自动运行、持续迭代的云原生信息提取系统,实现结构化数据采集与标准化交付。
135 1
云原生信息提取系统:容器化流程与CI/CD集成实践
|
3月前
|
缓存 Java Docker
如何对应用代码进行优化以提高在Docker容器中的性能?
如何对应用代码进行优化以提高在Docker容器中的性能?
243 1
|
4月前
|
设计模式 开发者 UED
123. [HarmonyOS NEXT 实战案例一:SideBarContainer] 侧边栏容器实战:新闻阅读应用侧边栏布局 基础篇
在现代移动应用和平板应用中,侧边栏导航已经成为一种常见且实用的UI设计模式。HarmonyOS NEXT提供了专门的`SideBarContainer`组件来实现这一功能,它能够轻松创建可显示和隐藏的侧边栏布局,非常适合新闻阅读、电子商务、文件管理等应用场景。
120 3
123. [HarmonyOS NEXT 实战案例一:SideBarContainer] 侧边栏容器实战:新闻阅读应用侧边栏布局 基础篇
|
4月前
|
数据可视化 API UED
126. [HarmonyOS NEXT 实战案例二:SideBarContainer] 侧边栏容器实战:电商应用商品筛选侧边栏 进阶篇
在基础篇中,我们已经实现了电商应用商品筛选侧边栏的基本布局和功能。在本篇教程中,我们将深入探讨如何通过状态管理和数据绑定,实现更加复杂的交互功能,提升用户体验。
94 2
126. [HarmonyOS NEXT 实战案例二:SideBarContainer] 侧边栏容器实战:电商应用商品筛选侧边栏 进阶篇
|
4月前
|
UED 容器
125.[HarmonyOS NEXT 实战案例二:SideBarContainer] 侧边栏容器实战:电商应用商品筛选侧边栏 基础篇
在现代电商应用中,商品筛选功能是提升用户购物体验的关键元素。HarmonyOS NEXT提供的`SideBarContainer`组件非常适合实现这类功能,它可以创建一个可显示和隐藏的侧边栏,用于放置各种筛选条件,帮助用户快速找到心仪的商品。
118 1
125.[HarmonyOS NEXT 实战案例二:SideBarContainer] 侧边栏容器实战:电商应用商品筛选侧边栏 基础篇
|
4月前
|
UED 容器
124.[HarmonyOS NEXT 实战案例一:SideBarContainer] 侧边栏容器实战:新闻阅读应用侧边栏布局 进阶篇
在基础篇中,我们学习了如何使用HarmonyOS NEXT的`SideBarContainer`组件创建新闻阅读应用的基本侧边栏布局。本篇教程将深入探讨如何为新闻阅读应用添加更多交互功能和状态管理,提升用户体验。
105 1
124.[HarmonyOS NEXT 实战案例一:SideBarContainer] 侧边栏容器实战:新闻阅读应用侧边栏布局 进阶篇

热门文章

最新文章