Container技术峰会自始至终关注Container领域的最新技术和落地案例,在容器技术快速发展的当下,越来越多的企业将眼光放到容器技术的企业级实践当中,Docker很美,但是如何在企业中真正的使用Docker技术成为目前众多企业以及无数开发者最为关心的话题,为此,今年的Container峰会将聚焦:“Docker生产级实践”,我们邀请到包括:广发证券、民生银行、长安汽车、i春秋等垂直领域的Docker用户来为我们分享他们在Docker使用过程中的经验和填过的坑。
另外,对于容器的集群管理、微服务、Kubernetes、Mesos等热门话题,我们也邀请到前谷歌集群管理的核心人员以及乐视、UCloud等企业的顶级容器技术开发专家现场为我们把脉容器领域的最新技术和行业实战。温故知新,在2016年Container峰会之前,我们整理了去年的Container峰会讲师的精彩PPT,分享给大家,以飨读者。
陈芳录本次分享的题目是《容器技术在腾讯SNG中间层的应用》,主要从中间层的管理演变来介绍容器技术的应用。分享的内容涉及LXC和Docker两种容器技术,分别介绍腾讯对虚拟化选型的考虑、对哪些资源进行了隔离、怎么通过优化内核实现Per container统计隔离、怎么进行LXC生产管理,从而建立起国内最大的LXC集群的,以及腾讯对Docker技术的探索和跟蜂巢集群融合的尝试。他表示对于Docker,腾讯主要做了三个方面的优化:首先是BUG修复,比如Docker非0退出时rm不生效,对于bindmount为true时config path无法清除等BUG。其次是优化Docker的资源管理策略,比如内存的Hardlimit的管理策略,不但使用户进程容易被kill,更加造成了资源的浪费,对用户估计自己业务的资源需求也非常高。最后一个方面是资源管理纬度,Docker在资源管理纬度方面只有CPU和内存两个维度,这对于共享的云环境下需要完善,也是目前相对于虚拟机不足的地方。
李泽帆介绍了Docker的基石——Cgroup和namespace等Linux内核特性的发展历程,目前它们在社区处于怎样的开发状况,以及在目前Docker引发的热潮下,内核社区是否会从底层提供更完善的容器技术。李泽帆认为,容器的优点在于以接近物理机的运行效率提供了虚拟化功能、能比虚拟机达到更高的实例密度、达到秒级的启动速度。Docker又加上了层级镜像的创新,使得软件的发布和部署非常便捷。因此容器/Docker有广泛的应用场景,应用时在软件架构上参考微服务架构。他同时也指出,Docker还不够成熟,存在网络功能薄弱(如跨主机的容器网络互连)、安全性(Daemon是一个单点故障)、运行传统业务困难(如CT业务)等挑战。
汪洋谈到了NFV/SDN场景下的业务挑战,同时他以使用容器技术解决电信业务问题为例讲解了在实施过程遇见的一些问题。他表示ICT融合的大趋势下,电信网络也在逐步的将IT领域技术引入进来,比如传统虚拟化技术XEN、KVM、VMware等,客观地说,这些技术带来了一定的好处,但是并不能完全解决电信网络的问题,比如:电信网络对传输时延要求很高,频繁的抖动将会给客户体验带来致命打击。Container/Docker 相比传统虚拟化技术,其特点在于运行时的轻量级和应用部署的高效性,目前有很多IT/互联网企业的应用在架构上已充分考虑了解耦和分布式,迁移到Container/Docker上基本上没有太大的阻力,电信领域的迁移则不同,目前最大的挑战就是软件架构的调整,电信业务的拆分,同时还要保证实时性和可靠性,这对传统虚拟化技术是个挑战。
田琪带领我们《深入理解容器技术》,专注于系统最底层的CGroup、Namespace,以及Device Mapper相关的东西。他介绍,CGroup提供进程的资源管理功能(主要涉及内存,CPU,IO等),不依赖于Namespace,可单独使用,管理功能通过VFS接口暴露,CGroups提供通用框架,各子系统负责实现。CGroup及ns的问题,是ns的隔离性不完整,需要多种类的命名空间,同时CGroups IO控制方面问题较多,包括带宽控制只能CFQ调度器,不适合高速硬件,通用限流策略缺少弹性,buffer io无法准确控制等。他还认为Docker虽然在快速发展中,但功能仍需完善,并且容器技术严重依赖内核特性,其使用必须做一些选择题:定制还是选择,work around还是组件内核团队,Docker存储端驱动选择overlayfs还是Device Mapper,镜像后端分布式存储是自主研发还是开源定制等。
张海宁的演讲方向是“用流水线方式管理容器应用”。Gartner预测:2018年DevOps会成为绝对主流,所以一些原有的开发技术需要调整。Docker作为新技术,VMware也在积极支持。底层是如ESXi,NSX等产品,其上是Linux和Container?对于这个层面,2015年VMware发布了堆栈新的开源产品。谈到开发者和运维人员之间高效的流程管理,VMware vRealize Code Stream可以实现这一点。
蔡书介绍第三代OpenShift平台将以Docker和Google Kubernetes为基础来进行开发。其中Atomic是红帽最新的基于Dokcer的平台项目,在红帽的地位有些类似于基于VM的虚拟化平台oVirt,这个项目本身应该是受到CoreOS的启发,意图打造一款适合于裸机或是云环境下的平台系统,用于部署容器应用。同时在原有Docker基于namespace和cgroup等技术的基础上,集成对SELinux的支持,进一步增加安全隔离性。同时Docker也公布了一项名为JumpStart的项目,这项计划将为组织或团体提供基于红帽企业 Linux和OpenShift的Docker Registry和Docker Commercial部署支持指导。
王旭介绍了结合VM和Container技术,探讨隔离性和性能的折衷方案。王旭认为,通过Image和Container的集成,Docker让DevOps在部署中依赖的复杂的配置管理变得简单,Docker的出现是运维领域的一次革命,可以推动运维服务向更高层次的发展。他表示Docker的粒度介于传统的虚拟机和软件包之间,Docker的生命周期短于传统的VM,数量多于VM。对于应用架构而言,Docker希望应用尽量无状态、可重新部署、可水平扩展,如果应用比较传统可能需要调整。对于运维来说,监控采集的指标可能会发生一些变化,不能把传统的针对OS和虚机的监控简单迁移到Docker来,需要针对其数量和生命周期进行相应的调整。未来希望可以将VM和Container技术相结合,增强在不同租户、不同安全需求的容器间的隔离性,同时尽量避免强隔离带来的过多的性能损失。
陈恺带来的演讲是“Container Management at Cloud Scale”,陈恺首先用“A Tale of King’s Shoes”的故事,来比喻虚拟机和容器的关系,虚拟机是对物理机上资源的封装隔离,容器是应用的包装。Docker又将容器技术进行了简化,Docker将应用的对外依赖完全封装,能够重复标准的运行。但是有了Docker还不够,怎样管理容器?陈恺分别比较了Mesos,Kubernetes和Docker自身发布的Machine、Swarm和Compose这三种管理工具。最后陈恺介绍了云雀AlaudaCloud的整体架构和实现方式,AlaudaCloud自去年3月11日开始内测,至5月份在其上开启的容器数量已超过10W次。
王璞表示Apache Mesos能够在同样的集群机器上运行多种分布式系统类型,更加动态有效率低共享资源。提供失败侦测,任务发布,任务跟踪,任务监控,低层次资源管理和细粒度的资源共享,可以扩展伸缩到数千个节点。Mesos从0.20版本支持Docker,Mesos + Docker结合能够提供一个非常强大的在集群环境中部署应用和服务的平台。因为Docker非常适合应用发布,再跟Mesos结合以后,极大地简化了分布式应用部署。而且Docker优良的可移植性加上Mesos强大的分布式资源管理功能,基于Mesos和Docker实现的分布式应用具有很好的弹性伸缩能力,便于打造高可靠性企业级应用,极大地方便了企业开发部署分布式应用。他对Mesos只专注于资源调度、把资源暴露给上层的计算框架、由上层的Spark、Hadoop等来消费的方式赞不绝口。
万林涛介绍Docker在点融网Devops流程中的重要作用。着重讲解Docker对简化开发环境配置、应用快速部署、生产环境弹性运维的实战细节。他认为Docker对于减少需要重复配置和部署的地方非常有帮助。比如,在产品持续集成和交付的过程中,我们常常需要部署多套测试环境,通过将Docker镜像的方式可以实现快速部署。不过,Docker在网络、安全、管理等方面都有需要改进的地方。现在点融网除去防火墙、Load Blance和数据库外,都已经实现了Docker化。因为Load Blance不需要经常重复配置和动态管理。在CI流程中,点融网是这样使用Docker的:Git做管理代码,Jenkins做编译,Docker将代码打包成image文件,最后交付给Runtime环境运行。
2016中国Container技术峰会将在今年5月14日北京举行,会议门票限时折扣中,详情访问CCTC官网。