
# 整体应用容器化改造
本教程以"整体应用容器化改造"为例，指导您将一个"部署在虚拟机上的ERP企业管理系统"进行容器化改造，部署到容器服务中。
您不需要改动任何代码和架构，仅需将整体应用构建为容器镜像，部署到云容器引擎中。
#### 本例应用简介
本例"企业管理应用"由某企业（简称A企业）开发，这款应用提供给不同的第三方企业客户，第三方客户仅需要使用应用，维护工作由A企业提供。
在第三方企业需要使用该应用时，需要在第三方企业内部部署一套"Tomcat应用和MongoDB数据库"，MySQL数据库由A企业提供，用于存储各第三方企业的数据。
图1应用架构   
![](https://support.huaweicloud.com/bestpractice-cce/zh-cn_image_0166039537.png)
如[图1]，该应用是标准的tomcat应用，后端对接了MongoDB和MySQL。这种类型应用可以先不做架构的拆分，将整体应用构建为一个镜像，将tomcat应用和MongoDB共同部署在一个镜像中。这样，当其他企业需要部署或升级应用时，可直接通过镜像来部署或升级。
- 对接MongoDB：用于用户文件存储。
- 对接MySQL：用于存储第三方企业数据，MySQL使用外部云数据库。
 
#### 本例应用容器化改造价值
本例应用原先使用虚机方式部署，在部署和升级时，遇到了一系列的问题，而容器化部署解决了这些问题。
通过使用容器，您可以轻松打包应用程序的代码、配置和依赖关系，将其变成易于使用的构建块，从而实现环境一致性、运营效率、开发人员工作效率和版本控制等诸多目标。容器可以帮助保证应用程序快速、可靠、一致地部署，不受部署环境的影响。
表1虚机和容器部署对比表 
| 类别 | before：虚机部署                                                                                | after：容器部署                                                                               |
|:---|:---|:---|
| 部署 | 部署成本高。 每给一家客户部署一套系统，就需要购置一台虚拟机。                   | 成本降低50%以上。 通过容器服务实现了多租隔离，在同一台虚拟机上可以给多个企业部署系统。   |
| 升级 | 升级效率低。 版本升级时，需要逐台登录虚拟机手动配置升级，效率低且容易出错。               | 秒级升级。 通过更换镜像版本的方式，实现秒级升级。且CCE提供了滚动升级，使升级时业务不中断。 |
| 运维 | 运维成本高。 每给客户部署一套应用，就需要增加一台虚拟机的维护，随着客户量的增加，维护成本非常高。 | 自动化运维。 企业无需关注虚拟机的维护，只需要关注业务的开发。                 |
   
