要问当下最热门的IT技术是什么,恐怕“容器”绝对榜上有名。作为与虚拟机相抗衡的对手,容器以开源特性深受用户的喜爱,特别是以Docker为代表的容器技术已经成为许多创业公司的主打产品。
也正是由于容器技术具备了屏蔽环境差异、资源利用率高、启动速度快等特性,越来越多的用户也开始尝试使用这种技术。不过正如我们常说的“客户需求”,不同规模的IT系统对于容器技术的依赖也不尽相同。
容器技术应用的三大场景
如果从容器技术的应用环境与模型来看,容器技术可分为单机、集群和容器云三大应用场景。
单机场景——技术主要围绕着OS级轻量虚拟化,应用打包部署自动化等功能,解决容器的单机部署。进行这些部署的以用户尝鲜为主。我们都知道,单机的性能有限,分布式架构才能发挥容器的***价值。所以,这些单机用户更多进行的是尝试与测评。
集群场景——在经过前期的测试之后,部分用户可能会选择将一些业务交给容器处理。这时候,用户关注的是集群资源管理、应用编排调度、面向应用的存储和网络等,容器的部署也从K级上升到十万级,解决分布式应用的部署问题。
容器云场景——这将是容器应用的大规模部署阶段,对于那些有实力的用户来说,他们更关注应用性能、运维自动化、跨级群管理、安全等技术,容器的部署也会上升到***别,实现容器在企业生产环境中规模部署。
现在许多人在讨论容器技术的时候都青睐于Docker,对于单机设备来说,Docker的确是不错的容器引擎。但是对于大规模的集群管理来说,用户不仅仅需要知道单一服务器的状态,更多时候需要对整体的IT设备实现统一的管理,这个时候也就需要更大规模的管理软件。
对于容器集群阶段来说,产业内早已经形成OCI(Open Container Initiative)开源社区,制定容器运行时和镜像格式正式、开放的产业规范,保证其不依赖上层客户端或编排调度系统、不依赖某个商业产品和项目,并支持多OS、硬件、CPU架构和公有云。
与其他传统的由国外企业主导的社区不同,虽然在OCI中我们看到了包括Google、Redhat、Docker等业界大佬的身影,同时我们也看到华为也是创始成员之一。凭借着深厚的技术实力,华为如今已经向社区贡献Patch 200+,占据社区贡献排名TOP5;有两名maintainer;参与RunC、Runtime Spec项目,和社区一起制定容器运行时的标准、帮助社区兼容基于VM的安全容器、完成对ARM64的兼容,贡献了OCI Tools项目帮助验证容器运行时标准。
华为推动容器技术成长
正如我们之前谈到的,容器技术发展到今天,已经面临大规模集群化的问题。事实上,随着分布式架构系统的普及,越来越多的用户开始采用分布式架构,特别是从去年开始的互联网+概念也让更多的用户从传统架构中解放出来,成为分布式架构的新成员。
伴随着这些分布式系统的出现,也对容器的集群化功能提出了更高的要求和挑战。如今, 以CNCF(Cloud Native Computing Foundation)、Docker和DC/OS为代表的三大集群编排调度系统并驾齐驱,他们都在围绕自己的解决方案构建监控、安全、部署等能力,力争在容器技术面向容器云的下一波发展中抢占先机。
在华为看来,这三大技术都有很大的发展潜力,从目前的情况来看,整个容器产业还没有完全成熟,也很难说哪种技术更为优秀。其中,CNCF中的容器应用编排管理系统由Google捐赠,凝结了Google公司十几年管理超大型容器集群的经验,基于分布式服务化的视角来部署和管理应用,为容器化的应用提供资源调度、部署运行、服务发现、扩容缩容等一整套功能,有调度算法丰富、调度策略扩展方便等优势,符合云原生应用的发展趋势。DC/OS是另一受市场欢迎的编排调度系统,其核心是Mesos开源调度软件,被称为是分布式系统的内核,它可以简化分布式应用框架在集群上运行的过程,同时可将资源动态分配给不同框架,多个分布式应用框架可以在同一集群中同时运行、动态共享资源。DC/OS主要特点是:资源利用率高,可扩展性强,模块化设计,可提供细粒度的资源分配。相比于Kubernetes,DC/OS在资源调度上功能强大,而在应用编排上Kubernetes则更胜一筹。两者在互相借鉴对方优点,补齐自身短板。
Docker Swarm/Compose是Docker公司原生的集群调度和编排系统,保持了与单机Docker相同的API和使用体验。目前Docker Swarm/Compose使用者数量和社区热度低于前两者,但随着Docker将Swarm嵌入到广泛使用的Docker引擎中,用户只要安装docker引擎,就可“开箱即用”,无需安装额外调度系统,将可能吸引更多的用户使用,具备反超的机会。
从这些角度来说,三者各有优势和适用场景,因此一定时间内三种技术会共存,***会由市场和客户来做出选择。
但是这种等待并不意味着束手无策。一方面,虽然分布式架构已经成为大众认知的主流,但是还有大量传统架构的应用面临微服务化的工作。而从另一方面来说,容器的编排调度等技术还需要进一步完善,这需要广大开发者和客户一起推动容器产业和技术向前发展。
华为的开源理念
华为拥抱开源,一直坚持。开源的容器编排调度系统有完善的框架和灵活性,因此华为希望吸纳开源软件的优势和生态,掌握基础架构,然后满足客户的需求,这也就是华为开源策略中的“源于开源”。
如果当开源无法满足客户的要求时,华为会进行创新,不断丰富完善容器编排调度系统,即所谓“强于开源”。开源的理念就是开放,封闭后就会失去生命力,因此华为也会将对开源社区有价值的东西回馈,共同推进开源社区的成长,这就是“回馈开源”。
为此,华为作为中国唯一的CNCF创始会员和铂金会员,向社区贡献Patch 360+、社区贡献排名TOP5、有两名maintainer,参与多调度器框架、亲和性调度策略、Uberbetes框架、集群部署、运维监控增强、容器conformance测试等特性开发。
目前看来容器技术很热,但是产业还没有完全成熟,一方面还有大量传统架构的应用面临微服务化的工作,一方面容器的编排调度等技术还需要进一步完善,这需要广大开发者和客户一起推动容器产业和技术向前发展,因此华为希望更多的公司和开发者关注和参与容器相关社区,共同构建容器生态。