重新关注docker容器技术

早在2013年的时候我就曾关注过docker这个新事物。那个时候容器其实已经并不是什么新鲜概念了,在docker前头linux世界里就有了lxc和openvz,目光放在整个*nix世界的话容器的历史还要更长。

与lxc基本只用于实验不同,openvz在当时已经是大规模商用的稳定技术,抛开它本身就是一个商用平台的组成部分不说,在当时世界上大部分的廉洁VPS都跑在openvz设施上。我个人对openvz的熟悉程度也比较高,包括一开始的mc平台和之后的梦世界的基础设施都是基于openvz的集群上。

2013年的docker已经是可用的,但是仍然存在许多的致命缺点,就mc来说,aufs文件系统的性能简直差到无法忍受,文件持久化也是个问题,很多人断言docker只适合stateless的微服务。当时也没有overlay网络,构筑一个最简单的集群网络也需要引入大量额外复杂度,以虚拟网桥/交换机来说性能开销也并不小(即使是现在也不建议把bungeecord放在overlay网络的网络里运行,overlay把以太帧封装入udp报文里传输,容器间的流量稍微有个几百mbps带来的额外开销就很夸张了),而最重要的是外围管理设施的缺失。——

现在有swarm,有k8s等等工具,而在当时选择docker就意味着只能集群管理只能自己手lu了。而现在,尽管docker本身的一些缺陷依然没有克服,但是最致命的文件系统性能和网络架构问题已经基本解决,周边设施也随着社区的发展日新月异,可以说跟我刚接触docker时候的0.x版本已经不可同日而语了。

而openvz这些年一直在原地踏步,并且随着el6的大限将至,openvz7不再单独作为基础组件发布,可以遇见到的是openvz的迅速没落,尽管它提供的一些vm级的特性是docker未来也永远不可能提供的。

现今如果要把梦世界的集群迁移到docker还需要解决一些架构上的问题,最麻烦的服务自动发现部分早在几个月前就已经通过插件解决了,代码开源在gayhub,docker世界里有很多为ha准备的工具,我相信如果能够完成迁移工作的话会给服务带来相当大的提升。

发表评论

电子邮件地址不会被公开。 必填项已用*标注