【最佳实践】企业应用容器化改造

举报
云上精选 发表于 2020/04/23 19:12:55 2020/04/23
【摘要】 使用CCE、SWR、ECS、VPC,以“整体应用容器化改造”为例,指导您将一个“部署在虚拟机上的ERP企业管理系统”进行容器化改造,部署到容器服务中

本手册基于云容器引擎实践所编写,用于指导您已有应用的容器化改造

什么是容器

容器是操作系统内核自带能力,是基于Linux内核实现的轻量级高性能资源隔离机制。Docker是容器技术之一,核心在于实现应用与运行环境整体打包及打包格式统一。

CCE云容器引擎是基于开源Docker和Kubernetes企业级容器服务,提供高可靠高性能的企业级容器应用管理服务,支持Kubernetes社区原生应用和工具,简化云上自动化容器运行环境搭建。

为什么需要使用容器

  • 更高效的利用系统资源。

    容器不需要硬件虚拟化以及运行完整操作系统等额外开销,所以对系统资源利用率更高。相比虚拟机技术,一个相同配置的主机,往往可以运行更多数量的应用。

  • 更快速的启动时间。

    容器直接运行于宿主机内核,无需启动完整的操作系统,可以做到秒级甚至毫秒级的启动时间。大大节约开发、测试、部署的时间。

  • 一致的运行环境。

    容器镜像提供了完整的运行时环境,确保应用运行环境的一致性。从而不会再出现“这段代码在我机器上没问题”这类问题。

  • 更轻松的迁移、维护和扩展。

    容器确保了执行环境的一致性,使得应用迁移更加容易。同时使用的存储及镜像技术,使应用重复部分的复用更为容易,基于基础镜像进一步扩展镜像也变得非常简单。

企业应用容器化改造方式

应用容器化改造,一般有以下三种方式:

  • 方式一:单体应用整体容器化,应用代码和架构不做任何改动。
  • 方式二:将应用中升级频繁,或对弹性伸缩要求高的组件拆分出来,将这部分组件容器化。
  • 方式三:将应用做全面的微服务架构改造,再单独容器化。

这三种方式的优缺点如表1

表1 应用容器化改造方式

应用容器化改造方式

优点

缺点

方式一:单体应用整体容器化

  • 业务0修改:应用架构和代码不需要做任何改动。
  • 提升部署和升级效率:应用可构建为容器镜像,确保应用环境一致性,提升部署效率。
  • 降低资源成本:Docker对系统资源利用率高。相比虚拟机技术,一个相同配置的主机,往往可以运行更多数量的应用。
  • 整体性架构扩展难度大,随着应用程序代码扩展,更新和维护工作非常复杂。
  • 推出新功能、语言、框架和技术都比较困难。

方式二:先将部分组件容器化(将对弹性扩展要求高,或更新频繁的组件拆分出来,先容器化改造)

  • 渐进式变革:在原有架构推倒重建太伤筋动骨,通过较为缓和的改动,更容易接受。
  • 弹性更灵活:将对弹性要求高的组件容器化,当需要扩展时,只针对该容器扩展,弹性更灵活,且能降低系统资源。
  • 新特性上线更快:将更新频繁的组件容器化,只针对这个容器进行升级,上线更快。

需要对业务做部分解耦拆分。

方式三:整体微服务架构改造,再容器化

  • 单独扩展:拆分为微服务后,可单独增加或缩减每个微服务的实例数量。
  • 提升开发速度:各微服务之间解耦,某个微服务的代码开发不影响其他微服务。
  • 通过隔离确保安全:整体应用中,若存在安全漏洞,会获得所有功能的权限。微服务架构中,若攻击了某个服务,只可获得该服务的访问权限,无法入侵其他服务。
  • 隔离崩溃:如果其中一个微服务崩溃,其它微服务还可以持续正常运行。

业务需要微服务化改造,改动较大。

本教程以“方式一”为例,将单体的企业ERP系统做整体的容器化改造。

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。