【深入浅出容器云】关于容器云你不得不知的十

导语:随着以Docker为代表的容器技术在国内的迅速发展,容器云也逐渐被广大开发者所熟知,但容器云(CaaS)相比传统的云主机(IaaS)在实际应用中还存在着一些鸿沟。为此,我们试图以通俗精炼的语言向广大开发者介绍容器的特点,应用场景以及优势等。【深入浅出容器云】系列文章是由时速云出品,本文是第一篇,欢迎大家不吝赐教。

1.高密度 高弹性

现有的云计算平台在面对大规模、高弹性计算的需求时往往会遇到一些瓶颈:

1.难以在短时间内启动大规模计算资源来应对高并发的需求;

2.传统IaaS的弹性计算性价比低,每个虚拟机都要消耗额外的系统资源。

由于Docker容器的启动一般在秒级实现,这相比传统的虚拟机方式要快得多。 另外 Docker 对系统资源的利用率很高,一台主机上可以同时运行数千个 Docker 容器。容器除了运行其中的应用外,基本不需要消耗额外的系统资源,使得应用的性能很高,同时系统的开销很小。基于虚拟机的技术决定了它的启动速度分钟级(或数秒级),而Docker基于轻量级的LXC,它的启动速度是毫秒级(秒级)的。这就使得容器云具备高密度,高弹性的特性,在面对突发访问量时也能轻松应对。另外它通过提升应用对系统资源的利用率,使得相比虚拟机的性价比大大的提高了。

2.兼具IaaS的灵活和PaaS的便利

基于Docker的容器云是一个用于开发、交付和运行应用的平台,Docker 设计用来更快的交付应用程序。Docker 可以将你的应用程序和基础设施层隔离,并且还可以将基础设施当作程序一样进行管理。Docker 可以实现更快地打包代码、测试以及部署,并且大大缩短从开发到运行上线的周期。容器云的本质是一个轻量级的容器虚拟化平台,以及一套标准的开发,构建,部署,运行的流程,并且可以集成各类工具,比如持续集成,数据库与缓存,大数据等,以及一些PaaS类的服务。容器云在计算资源调度上具备IaaS的灵活性,以及PaaS的便利,弹性伸缩,日志监控,滚动升级,持续集成/部署等系统级的PaaS服务已成为容器云的标配,并逐渐会往上层发展,比如部署数据库与缓存,大数据,安全监控等服务,以及集成各类SaaS服务。

3.容器化应用是基石,一切都封装在镜像里

Docker 提供了一种在安全隔离的容器中运行几乎所有应用的方式,这种隔离性和安全性允许你在同一主机上同时运行多个容器,而容器的这种轻量级特性,意味着你可以节省更多的系统资源,因为你不必消耗运行 hypervisor 所需要的额外负载。对于容器云而言,所有的应用都需要容器化以后才能发布,即将应用程序打包进Docker容器,以镜像的方式运行。容器化应用未来将会成为云端应用交付的标准。

4.实现更快速的交付和部署

对于开发者来说,往往希望能够一次构建,随处运行。试想一下,如果你的team里10个开发者,按传统的方式,每个新来的人往往需要在自己的环境里重复搭建一套开发测试环境,而通常因为系统的不一致(有的人玩Windows,有的玩Ubuntu,抑或是Mac),导致出错率大大提高以及效率的降低。而使用Docker之后,开发者可以使用一个标准的镜像来构建一套开发环境,开发完成之后,运维人员可以直接使用这个容器来部署代码。 Docker 可以快速创建容器,快速迭代应用程序,并让整个过程全程可见,使团队中的其他成员更容易理解应用程序是如何创建和工作的。

5.更易于微服务架构的实现

微服务采用一组服务的方式来构建一个应用,服务独立部署在不同的进程中,不同服务通过一些轻量级交互机制来通信,例如 RPC、HTTP 等,服务可独立扩展伸缩,每个服务定义了明确的边界,不同的服务甚至可以采用不同的编程语言来实现,由独立的团队来维护。微服务通常具有相互独立、原子化、松耦合结构等特点。基于Docker的容器云更易于微服务架构的实现主要体现在以下几个方面:

1.一个容器即是一个完整的执行环境,不依赖外部任何的东西。

2.一台物理机器可以同时运行成百上千个容器。它的计算粒度足够的小。

3.容器通常是秒级创建和销毁,所以非常适合服务的构建和重组。

4.一系列的容器编排工具,能够快速的实现服务的组合和调度。

比如在时速云的容器编排里,可以支持Pod和Stack两种级别的编排。Pod俗称容器组,直译为豌豆荚,也就是以多个容器为一个调度单元,容器之间共享网络、存储等,它们的关系是同生共死。Stack即是彼此之间相互独立的容器之间的组合。

6.更高效的虚拟化

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

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