兼容传统应用,蓄力边缘云——博云胖容器解决方案

最近几年基于容器技术的资源分配方式越来越流行,kubernetes作为容器领域事实上的容器编排技术也开始在企业中逐渐落地。借助容器/微服务/DevOps等技术,新生代的云原生应用得到了极大的普及。但在企业的应用生态中,当前云原生系统仅占很小的一部分,尚存在大量的传统应用无法享受容器技术带来的好处,业界需要一种专门针对传统应用快速上云的解决方案

 

博云走访调研了多家企业客户,发现目前传统应用(非微服务架构)迁移到容器云平台,主要面临以下问题:

 

当前有为数不少的legacy应用,无法或很难进行改造(微服务化,容器化等),需要安装各种agent。

传统应用往往部署在虚拟机上,而虚拟机启动较慢,不能满足业务灵活性,弹性的需求。

虚拟化技术堆栈较重,资源损耗大,客户希望能够充分发挥强大服务器硬件的能力。

传统应用的运维人员更倾向于将应用系统视为pet而不是cattle,发现问题后更希望能手动去做调整。

应用对性能敏感,容器环境下的高密度部署引起的CPU上下文切换等性能造成很大影响。

 针对以上痛点,虚拟机和容器都不是最优解。经过广泛的技术调研,我们发现胖容器技术是一种可行且合理的解决方案。首先,从技术的发展趋势来看,胖容器技术是容器发展早期由容器领域的先行者广泛采用的一种既可以获取容器轻量的优势又可以广泛支持传统应用的一种技术。但随着容器的快速普及,胖容器技术作为一种过度阶段的技术并没有得到发扬光大。其次,胖容器的实现方式也有多种,多家企业或开源组织也推出了形态各异的解决方案,从技术实现上基本可以分类为两种:vm-based和container-based。这些解决方案也基本上都针对kubernetes进行了集成,非常适合于当今容器云平台的建设。 

 

博云胖容器技术BeyondVM

 BeyondVM是一种container-based实现的胖容器技术,兼容OCI标准,可以灵活的与Kubernetes集群进行集成。

兼容传统应用,蓄力边缘云——博云胖容器解决方案

 

01

1号进程

容器技术推崇单进程模型,而胖容器技术与容器技术一个明显的差异点就是在胖容器内部运行一个init进程,而传统的容器(如 docker 容器等)将容器镜像中指定的 CMD作为容器内 pid=1 的进程。BeyondVM技术支持使用systemd和sbin/init作为init进程。init程序的引入,使得胖容器内的运维工作成为可能,也为传统应用上云提供了很大的便利。

兼容传统应用,蓄力边缘云——博云胖容器解决方案

 

02

容器的CMD

容器的CMD代表了容器内部运行的业务系统。beyondVM技术会自动将其托管在Init进程下,运维人员可以方便的对业务系统进行运维工作。

 

03

系统组件或特定agent

传统应用和应用的运维人员依赖众多系统组件,比如ssh/rsyslog/crond等。这部分传统应用上云时可以直接安装相应组件并做成镜像,这样既获取了容器交付可移植性强的优势,又保留了传统的使用习惯。

兼容传统应用,蓄力边缘云——博云胖容器解决方案

兼容传统应用,蓄力边缘云——博云胖容器解决方案

 

04

资源视图隔离

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsxggy.html