容器是什么?
专业地讲, 容器是实现操作系统虚拟化的一种途径, 可以让用户在资源受到隔离的进程中运行应用程序及其依赖关系; 简单地讲, 容器就是基于 Linux 内核技术的一种隔离手段.
很多人认为容器就是另外一种虚拟机(VM). 实际上, 虚拟机通过 Guest OS 来运行对应的应用的, 而容器通过使用 Docker Engine 使用系统原生隔离技术进行隔离.
虚拟化和容器的对比
为啥这样做? 有什么好处呢? 这就从 PaaS 的出现开始说起了.
PaaS(Platform-as-a-Service, 平台即服务)把服务器平台作为一种提供服务的商业模式. 之前的 PaaS 平台是使用 VM 的方式去部署平台应用服务的, 但是由于 VM 启动的特点, 部署一个应用时间十分长. 前期, 这样的部署还可以适应企业的需要, 但随着互联网发展, 企业越来越需要适应迅速多变的业务场景, 部署在主机上的的环境不可控制及启动时间问题成为了 PaaS 平台发展的阻力; 后期, 微服务架构及持续集成部署 CI/CD 大行其道, PaaS 部署应用必须要有新的解决方案.
于是, 容器随之而生 --
2000 年, 容器技术概念最先出现, 时称 "FreeBSD jail", 其诞生是为了让进程在经过修改的 chroot 环境中创建, 而不会脱离和影响整个系统, 在环境中, 对文件系统, 网络和用户的访问都实现了虚拟化.
2001 年, 隔离环境实施进入了 Linux 领域. 在完成多个受控制用户空间的基础性工作后, Linux 容器开始逐渐成形并最终发展成了现在的模样.
2007 年, Google 的控制组 (CGroups) 成功研发. 这是一种可以限制, 记录, 隔离进程组 (process groups) 所使用的物理资源的机制, 并贡献加入到 Linux 内核.
2008 年, LXC(Linux Containers)出现, 是第一个完善的 Linux 容器管理器的实现方案.
2013 年, Docker 横空出世. 一开始 Docker 创建的目的是为了更容易使用 LXC, 但后来这个作用被其他技术替代, 而 Docker 反而成为了容器使用的标准, 其它的容器技术如 LXC,Rocket,Pouch 等市场占有率已不足 Docker 的一半.
容器为 PaaS 平台带来了以下特点:
环境一致性. 通过容器及其独特文件系统, 使得应用程序在开发, 测试, 生产环节中高度一致, 实现跨多环境无差别移动.
解放开发人员生产力. 使用容器主要的目的是采用微服务架构改变应用, 开发人员把主要精力集中在当前业务服务的开发, 不必再担心语言依赖库问题.
运营高效. 由于容器基于原生 Linux 内核的虚拟隔离技术, 容器运行与原生进程消耗资源基本一致. 容器可以让用户在一个系统中轻松运行多个容器镜像, 这与在一个系统中运行多个进程一样. 用户还可以创建容器映像, 将其作为其他映像的基础, 使用洋葱文件系统, 使大应用迁移部署达到秒级.
版本控制. 运营团队可以创建基本映像, 将操作系统, 配置和所需的各种工具实用程序囊括在其中. 开发团队可以在基础镜像的基础上构建其不同版本的服务镜像, 这样有利于从开发测试到生产使用统一配置环境.
在微服务的发展中, 使用容器的目的就是用来管理微服务架构. 于是新的重点问题衍生了: 包装服务的容器如何编排调度? 技术社区逐渐把关注点转移到 "容器编排" 上. 用 IaaS 类比容器编排的概念, 就类似于 IaaS 的 Hypervisor 的角色, 只是位置是在 OS(或 guest OS)之上, 主要功能是管理调度容器在多个 OS 上运行, 关注点在于微服务的治理.
目前出现的容器编排引擎有 Swarm,Mesos,Cattle,Kubernetes 等, 以 Kubernetes 为主流. Kubernetes 把微服务应用以容器为粒度, 按照一定的约束, 自动编排分配到底层计算资源上, 实现不同场景下的计算资源充分利用.
随着微服务的发展, 基于容器及容器编排技术优势特点, 利用容器技术实现新一代 PaaS 平台成为可能, 未来其主要往以下几个方向推进:
减低复杂性. 目前的 Kubernetes 容器平台有些复杂, 用户首次使用需要花较大的学习成本, 很多功能用户甚至无法知道如何使用, 应该朝简单化方向发展.
混合云和多云. 由于采用了容器, 企业可以把应用从内部测试环境放到跨多个平台运行. 这种混合使用场景未来会增多, 如何更安全快速调度容器服务成为容器技术研究的重点.
持续集成及部署应用. 使用容器技术及微服务架构, 目的是基于敏捷实现持续集成及部署, 像流水线一样生产服务应用. 未来如何把这套理念根据不同需求简单落地, 成为必须解决的问题.
云宏新一代 WinGarden 容器云平台为管理多 kubernetes 的企业级容器管理平台, 是专门针对企业级客户设计的安全, 稳定, 易管理和运维的轻量级容器云平台, 为企业提供真正的云原生应用管理架构, 帮助企业建立弹性, 可伸缩, 快速迭代和灵活敏捷的应用架构.
云宏 WinGarden 容器云平台结合了云宏 IaaS 平台的技术优势, 并针对私有云领域的 PaaS 平台作了多方面的创新在银行, 航空等多个行业均有成功部署的案例. 未来, 云宏将继续深入打造容器云平台, 打造更有价值的容器云产品.
来源: http://www.bubuko.com/infodetail-3003496.html