什么是容器?
经典云计算架构包括基础设施即服务IaaS、平台即服务PaaS、软件即服务SaaS三层服务,随着计算机技术不断发展,应用的规模庞大、逻辑复杂、迭代更新频繁,IaaS以虚拟机为最小粒度的资源调度单位,出现了资源利用率低、调度分发缓慢、软件栈环境不统一等一系列问题。PaaS在IaaS基础上发展而来,
但PaaS在应用架构选择、支持的软件环境服务方面有较大的限制,容易造成应用与平台无法解耦、应用运行时环境局限性强、运维人员控制力下降的问题。
不论IaaS还是PaaS都有各自适用的场景,依旧存在诸多缺陷,所以,容器技术应运而生。
我们知道容器是一种内核轻量级的操作系统层虚拟化技术,Docker容器为资源分割和调度的基本单位,封装整个软件运行时环境,Docker可在容器内部快速自动化地部署应用,并通过操作系统内核技术为容器提供资源隔离与安全保障。
以Docker为代表的容器技术成熟标志是带动一个生态系统的发展,如下图,可以看出,容器技术的生态系统自下而上分别覆盖了IaaS层和PaaS层所涉及的各类问题,包括资源调度、编排、部署、监控、配置管理、存储网络管理、安全、容器化应用支撑平台等。
容器技术主要带来了以下好处:
1.跨云平台支持。容器带来的最大好处之一就是其适配性,越来越多的云平台都支持容器,用户再也无需担心受到云平台的捆绑,同时也让应用多平台混合部署成为可能。支持容器的IaaS云平台亚马逊云平台(AWS)、Google云平台(GCP)、微软云平台(Azure)、OpenStack等,还包括如Chef、Puppet、Ansible等配置管理工具。
2.环境标准化和版本控制。基于容器提供的环境一致性和标准化,你可以使用Git等工具进行版本控制,如果出现故障可以快速回滚。相比以前的虚拟机镜像,容器压缩和备份速度更快,镜像启动速度更快。
3.高资源利用率与隔离。容器容器没有管理程序的额外开销,与底层共享操作系统,性能更加优良,系统负载更低,在同等条件下可以运行更多的应用实例,可以更充分地利用系统资源。同时,容器拥有资源隔离与限制能力,可以精确地对应用分配CPU、内存等资源,保证了应用间不会相互影响。
4.容器跨平台性与镜像。容器在原有Linux容器的基础上进行大胆革新,为容器设定了一整套标准化的配置方法,将应用及其依赖的运行环境打包成镜像,真正实现了“构建一次,到处运行”的理念,大大提高了容器的跨平台性。
5.易于理解且易用。30分钟之内可完成入门Docker并进行安装和部署,这是容器使用史上的一次飞跃。因为它的易用性,有更多的人开始关注容器技术,加速了容器标准化的步伐。
6.应用镜像仓库。Docker官方构建了一个镜像仓库,因为Docker的跨平台适配性,相当于为用户提供了一个非常有用的应用商店,所有人都可以自由地下载微服务组件,这为开发者提供了巨大便利。
容器庞大生态体系,在生产使用中面对更复杂的需求,例如众多跨主机的容器协同工作,需要支持各种类型的工作负载,多人协作的持续集成、持续交付平台,生产环境中容器相关的网络、存储、集群、 高可用等问题层出穷,所以,从容器到容器云的进化应运而生。
什么是容器云?
我们知道容器云的基本单位是通过分割资源和资源调度、进行软件的运行环境的封装,分布式应用的平台为开发者提供用于构建、发布和运行环境。当容器云进行资源共享、资源隔离、容器编排或者部署时,它更接近传统的laaS;当容器云渗透到应用支撑与运行时环境时,它更接近传统的PaaS。当然容器云并不仅限于Docker,基于rkt容器的CoreOS项目也是容器云。
Docker公司技术不断发展,各种容器管理工具不断被开发出来,例如Fleet、Flynn和Deis、Kubemetes,都是基于Docker技术构建容器云。不仅是Docker公司,目前国内很多云计算厂商也对基于Docker的容器云做了巨大的投入,梯度科技在2016年成立至今在容器技术领域累积很多优秀产品和案例,典型代表是梯度智能云平台是基于Kubemetes和容器技术,面向数据中心的全新云平台,梯度智能云平台助力政务和军工领域客户数字化转型。