10月13日,在2016杭州·云栖大会上,全球知名的容器技术公司Docker与阿里云宣布达成战略合作,双方将在容器服务领域进行紧密合作,阿里云称其将为客户提供更加先进的云上应用管理服务。双方称在开源容器技术以及其发展方向共同努力,为客户提供本地化Docker的企业级支持和咨询服务。
Docker自问世三年来,社区不断壮大,项目升温之迅猛在开源社区中并不多见,并受到IT业内的广泛关注。不过,Docker在国内真正的大规模应用仍然不多,目前国内Docker的使用状况还尚未达到生产环境化的普及。虽然有少数研发能力强的互联网公司已经积累了两三年的Docker技术储备并用于实际生产环境之中,同时还有一些Docker技术创业新锐公司;但是对于一些传统企业而言,由于业务需求完全迥异、技术包袱长久积累、技术团队人力不足等原因,Docker这项技术的使用只停留在开发尝试尚未扩展甚至观望的状态。
Docker选择阿里作为中国的首个官方合作伙伴,但这并不是Docker第一次和IT企业合作。2016年Docker动作频频,6月合作HPE,9月牵手微软。此前也早与AWS、IBM达成合作协议。这些合作也都涉及到商用版的Docker Engine和Docker Datacenter。
阿里研究员毕玄表示阿里内部对容器技术积累已有五年,随着Docker的2013年问世与发展,阿里云在2015年底推出了Docker容器服务,并于今年上半年决定将电商核心应用的基础平台转向Docker技术。阿里云弹性计算总监张卓表示阿里还会与Docker生态圈中的其他创业公司进行合作。阿里云产品技术负责人李津承认该合作或将给创业公司带来一定压力,但是创业公司可以通过深耕技术创新以增加竞争力;并称未来两年内云计算和相关产品市场将面临洗牌的残酷竞争,但是竞争之后,除了云平台提供商,还会凤凰涅槃般地出现一批新的软件服务巨头。
两家公司为什么会进行合作?合作是怎样的,又会给容器生态带来怎样的影响?InfoQ采访了阿里云产品技术负责人李津,他就InfoQ一系列问题发表了看法。国内容器技术的创业公司又如何看待这个合作?几家公司的创始人对阿里和Docker的合作表示认同,认为这将助力国内容器生态并有利于基于Docker的创业服务发展。
阿里云之解读
以下来自InfoQ对阿里云产品技术负责人李津的采访整理。
阿里怎么看待Docker技术
Docker其实类似于早期的LXC,是由namespace和CGroup两个技术叠加出来的,但又不完全是。Docker的最大价值其实是让DevOps开发和运维的一体化能够轻松落地。早前DevOps很难落地,因为去部署、发布、运维和管理那些应用的过程很麻烦,所以在云上面衍生了大量的编排类的服务出来。Docker通过镜像分发,可以快速部署;这种把配置和环境解耦的方式,让快速部署变成可能。这就意味着Docker的弹性非常好,而且速度很快。他可以快速扩容部署一百台,然后再迅速缩容到一台,随后再快速部署一百台;这是Docker从诞生开始的优点,所以运维的人很喜欢他。
Docker的出现改变了很多过去的开发形态。Docker是一种非常轻量级的开发和部署环境的形态,它提高了开发效率。此外,因为Docker会适配很多东西,所以底层虚拟化变得更简单。我们认为Docker在未来3—5年里面,变成一个非常主流的开源技术和商业生态,这个时候很多开发者会在上面做牵引,搬到Docker上面去。这种模式会变成一种方向,而这个方向的代表就是Docker。
不过在Docker的使用有两个问题,第一个是使用时需要拉取Docker镜像,第二个是后期维护的比较困难。因为镜像分发会遇到一个存储的问题,镜像文件非常大,保存在哪里?存在存储上。之所以出现Docker雷声大雨点小的现象,是因为中国开发者使用Docker Hub服务不是很方便,所以看起来它很热,但是使用起来就不是那么简单。而对于大公司,开发规模动辄几百上千人,Docker镜像的访问也会变成一个瓶颈,这是非常讨厌的事情。
Docker今天的原生态服务在中国没有用起来,大家都是拉码下来之后自己去搭建。很多线下的专有云或者私有云去使用Docker的时候,后期的维护并不比不用Docker简单。
基于这些看法,不论是今天我们和Docker的合作,还是让Docker去支持我们的OSS,都是为了提升当前的产品、效率和能力,我们希望以一种平台式的方式分享出来。我们必须跟Docker官方合作,因为目前阿里云我们是全球第三的概念产品。这种官方服务,会提供出来今天真正的那些技术能力,而不是简单的改码,简单改码就没有意义了。
关于此次合作
一、三方面内容这次合作主要包含以下几方面的内容:
Docker公司选择阿里云平台作为Docker Hub在中国运营的基础服务。Docker Hub等服务落地中国,可以更好地服务国内开发者,促进中国技术社区的成长。得益于阿里云强大的云基础设施,将会极大提升国内用户对Docker服务的访问体验。
阿里云也是首家在国内获得Docker Engine CS(商用版)以及Docker Datacenter (DDC)销售权,为Docker客户提供企业级支持和咨询服务。阿里云将利用自己的技术能力和市场影响力推动容器技术在国内企业落地,和合作伙伴一起帮助企业利用容器技术提升效率、实现业务创新。
阿里云将成为Docker官方支持的云服务提供商。Docker可以更好地支持阿里云能力,提升用户体验,把阿里云打造成为容器运行的最佳平台之一。
二、关于Docker Hub的详情关于Docker Hub,阿里云和Docker公司会一起携手合作,具体时间表之后会官方发布。阿里云会成立相应的团队,一方面帮助Docker服务落地中国;另一方面支持Docker商业化软件的销售、服务和咨询等,和国内的合作伙伴一起在企业中推广容器技术。
阿里云不会对Docker Hub的官方镜像做任何修改。用户可以从Docker Hub中国站得到与现有Docker Hub中完全一致的、可信的Docker镜像。
三、覆盖私有云和公有云此番合作涵盖了私有云和公共云等领域。用户购买的Docker Engine CS和DDC既可部署到自己的数据中心,也可部署在公共云上。同时Docker将支持阿里云作为认证的公共云提供商。云平台可以提供了弹性的基础设施,而Docker变革了软件交付流程;有机的将二者结合起来将重新定义企业的IT基础架构。
Docker具有良好的可移植性,可以轻松在不同环境中进行应用部署,这大大加速应用上云过程。同时可以方便地实现混合云方案,当业务出现峰值流量时,可以快速将本地数据中心应用扩展到云端。在阿里云发起的中国容器调查报告中,70%的用户选择将Docker用于公共云,而45%的用户会选择利用容器构建混合云方案。
在公共云上,阿里云容器服务在兼容社区标准的基础之上提供了和阿里云能力的深度整合和优化。容器服务提供的存储插件可以满足不同应用负载对存储的需求;利用VPC的网络能力,提供了更加高效的容器互联方案,并且支持混合云;利用ECS,支持容器集群节点的弹性伸缩,可以轻松应对峰值流量。同时容器技术不是银弹,无法解决一切问题,容器服务可以方便地组合容器和云服务实现一个完整的应用栈,比如容器中的Java应用使用由RDS提供的高可用、高性能的数据存储能力。
未来阿里云会继续推动自身的容器服务发展,进一步推动虚拟化和容器技术的整合。除了对用户直接提供服务外,容器服务还会为阿里云其他的云服务提供应用基础环境。比如在阿里云“轻计算”中,存储服务了提供一系列即开即用的数据处理功能,比如视频转码;而容器服务就是其底层的资源调度和执行系统。在深度学习应用中,传统方式存在部署复杂、迭代缓慢的问题,而HPC和容器服务团队一起携手实现了支持GPU加速的应用快速部署、弹性伸缩和DevOps的全链路支持,极大提升了工作效率。
与传统的硬件虚拟化技术不同,容器技术是操作系统级别的虚拟化。在Linux宿主机上,所有容器会共享相同的操作系统内核,只是通过namespace、cgroup进行隔离,并利用SELinux等安全策略限制容器内进程的权限。目前而言,容器的安全、资源和网络的隔离能力都弱于虚拟化技术。在云环境中为了保证用户应用的安全和SLA,阿里云容器服务结合了虚拟化和容器技术。用户的容器应用是运行在用户独享的虚拟机之上,这样就可以充分利用虚拟化技术来保障隔离性和安全。同时还可以完全复用成熟的虚拟机热迁移、存储、网络等能力。
四、阿里云的容器服务阿里云非常关注容器,阿里云在2015年底就推出了容器服务,并在2016年5月正式商业化。容器服务为用户在云端提供了一个高性能大规模的容器应用管理服务,支持在一组云服务器上通过Docker容器来进行分布式应用的部署、更新和弹性伸缩。
容器服务在产品定义之初就制定了全面拥抱开源生态、深度整合阿里云自身能力的目标。容器服务完全兼容Docker API和Docker原生编排技术(Docker Swarm/Compose),可以方便地和三方工具集成并复用任何Docker镜像和Docker Compose模板,这也将大大降低用户的学习成本。在此基础上,充分实现了容器和阿里云能力的整合。比如利用Docker的Volume和网络插件,实现了对阿里云存储服务(文件存储、对象存储等),网络能力(比如VPC)的集成。除此之外,容器服务在资源调度、微服务支持等方面有很多独到之处,而这些扩展能力大多是在Docker技术框架下利用声明式的方式为用户提供出来的,比如用户可以简单地在容器启动参数中添加label,就可以描述应用的可用性约束(比如跨可用区部署)或者操作SLB实现服务路由。
在和Docker公司的讨论中,Docker公司专家非常赞赏阿里云在兼容Docker方面所做的努力和创新,这非常吻合Docker社区技术的发展战略,充分体现了云+容器的独特价值。
阿里云容器服务团队会推动Docker社区对阿里云的支持,比如我们会将之前为阿里云存储、网络等提供的插件逐渐开放到Docker社区,这将大大提升容器应用在云端的能力。同时阿里云团队也会更多参与到Docker社区中推动Docker Engine的开放性,允许通过合理设计的扩展点支持不同应用类型需求。
阿里如何看待用户对Docker商业化软件的私有定制需求?每个企业都有自己独特的需求,所以定制能力和可扩展性是企业软件的必备能力。
一方面,Docker Engine本身提供了扩展机制来应对应用执行和运维的多样化需求,比如存储、网络、日志等。在Docker商业化产品上也提供了一些扩展点,比如应用的路由和负载均衡等。
另外一方面可以用户或者ISV可以通过容器化的解决方案来满足企业的特定需求。比如可以部署一个容器化的Jenkins服务来支持企业的CI/CD流程,等等。Docker公司、阿里云和三方的软件商、合作伙伴都会为企业提供定制化的解决方案。
阿里看Docker的生态发展
一、与国内Docker创业公司是同路人国内现在有很多Docker创业公司,所有国内容器的创业公司都是我们的同路人,因为我们都相信容器技术的价值,并一起推广容器技术在国内的普及和应用。随着Docker落地中国,更多开发者可以接触到容器技术,而更多的企业会开始基于容器技术实现业务创新,这都将大大加速容器技术成熟和市场的扩展。
容器基础设施和商业落地本身就意味着更多的创新机遇。在美国的容器初创企业的生态非常丰富:容器基础服务(存储、网络),管理服务(监控、安全),应用服务(Serverless、大数据、机器学习、IoT),开发服务(DevOps)等风起云涌。同时容器生态的成熟将促进相应的培训、咨询、实施等服务产业的健康发展。阿里云愿意和国内的容器创业公司一起推动这次技术变革和产业链升级。
二、致Docker创业者的一些建议阿里云弹性计算总监张卓曾在云栖大会上表示“比起来单纯地做Docker解决方案,更好的思路应该是深耕Docker生态圈中的技术创新”。我非常认同张卓的观点,由于平台化公司自身拥有良好的规模优势,并可以迅速整合自身能力和上下游产业链,技术初创公司只有深耕技术创新才能拥有自己在市场上独特的定位和价值。
我们知道,对于初创技术公司,要有自己的核心竞争力,并在自己擅长的垂直领域迅速建立竞争门槛并形成规模效益才能获得长远的成功,同时要借力推动生态的建立。
Docker公司就是一个典型的例子,作为一个初创公司,他首先利用简化的用户体验迅速建立起容器应用社区,很短的时间里积累了大量的用户和Docker化应用。之后通过一系列对业内顶级团队的收购,不断实现自我进化,抬高了竞争门槛,从而确立了自己的技术领导地位。同时,Docker公司也在和云平台和IT企业公司的合作一起拓展生态。这次Docker公司选择阿里云作为合作伙伴,就是希望借力拓展国内市场而非自己完成所有的工作。
谈到创新的机会,Docker公司的创始人 Solomon Hykes说过 “Nobody cares about containers, it's the application that matters!” 这句话非常有道理,容器只是一个技术,而应用才是王道。我想信越来越多的容器创新将围绕着应用、解决方案创新而出现。
三、愿容器技术生态繁荣开放阿里云非常希望看到一个繁荣、开放的容器技术生态,我们非常欢迎各种编排技术在阿里云落地。阿里云做了很多工作来推动容器技术在中国落地,包括对Docker等开源社区的支持。
Docker是目前容器引擎的事实标准,尤其目前超过40万的Docker镜像更是其最大的一笔财富。其他容器引擎比如CoreOS的Rocket也会有自己的细分市场。开源社区OCI(Open Container Initiative)也在推动开放的容器镜像和容器交互标准。在2016年10月, OCI的参考标准的1.0 RC版发布,我们也期待在这个开放框架下能够带来更多的创新。
在容器编排领域,目前Kubernetes、Mesos和Docker Swarm三雄争霸,各有所长,各有适合的场景和活跃的技术社区在背后支持。从技术上而言Kubernetes对微服务应用的支持比较完整;Mesos在大数据领域目前一枝独秀;Docker Swarm出现虽晚,但强在易用性和与Docker生态的良好兼容。一方面,用户应该根据自己的需求和技术能力选择合适的技术;另一方面技术的良性竞争也会让用户收益,比如K8S最新的1.4中大大简化了部署复杂度,而Docker Engine内置编排能力也不断增强。
四、容器技术之于云计算关于PaaS (Platform as a Service)每个人都有自己的定义,我们先给出我们的理解。PaaS为应用提供了一个支撑环境,让用户关注于应用自身,而平台会通过自动化的方式解决应用部署、伸缩等复杂性。
阿里云一直基于容器探索PaaS服务领域,从早期基于LXC到现在基于Docker技术。一方面,阿里云已经有一些服务化的基础产品供大家使用,如容器服务、API网关、函数计算和弹性web等等。另一方面,我们也会通过适配阿里云的计算、存储和网络等能力来帮助客户在阿里云上部署开源的PaaS产品,如Cloud Foudry、OpenShift等。
从前PaaS的发展没有达到人们预期的一个重要原因是:传统的PaaS有很多限制,用户需要根据PaaS平台的要求来调整、改变自己应用的开发和运维流程。而Docker提供的交付和部署的抽象化和标准正好可以解决这方面的问题。我们认为CaaS(Container as a Service)是在PaaS领域一个新的探索,它更好的平衡易用性和灵活性的二者关系。一方面Docker技术在软件生命周期中提供一个标准化的方法来进行开发、交付和运维,在简化流程的同时优化效率;另一方面它又提供了良好的灵活性,允许用户自由的选择编程语言框架,并和自己的DevOps流程方便地集成。
以阿里云容器服务举例,很难说他是一个纯粹的CaaS,首先它管理的不仅仅是Docker镜像或容器。更重要的是它从应用的视角关注如何组合容器和云服务来提供应用生命周期的支持。它在兼容Docker Compose编排模板和Docker Swarm集群管理能力的基础之上,提供了扩展来支持服务注册、发现、路由,监控,弹性伸缩等微服务架构需求,并提供了良好的DevOps能力,比如支持多种发布策略(滚动升级、蓝绿发布)等,提供一站式应用生命周期管理。
我们可以看到传统PaaS和CaaS技术也在融合,我们完全可以不局限于概念之争,而是从解决开发者的痛点出发,推出不同垂直领域的服务为用户提供价值。
从应用架构的角度,容器技术可以方便地支持微服务架构实现应用的现代化,更加灵活的应对变化和弹性扩展。在软件生命周期管理上面,容器技术可以帮助把DevOps等最佳实践落地成可运用的标准化工具和框架,大大提升开发效率,加速迭代。在基础架构层面,利用容器技术带来的可移植性,帮助开发者和企业更便捷的上云和迁云,让应用在自有数据中心和云端实现动态迁移,扩大并进一步催熟云计算市场。同时随着容器技术和已有云计算的计算、存储、网络的进一步融合,将推动从传统以基础设施为中心,向以应用为中心的IT架构转变。
站在云厂商角度看,容器技术是对云计算、虚拟化的良好补充,可以提供了更加敏捷的软件交付方式,促使云计算厂商逐渐将业务从IaaS层演进到PaaS等应用层解决方案,大大丰富云计算的场景。
容器创业公司观点
数人云创始人王璞:容器已经成长为一个生态,Docker、阿里云、容器初创公司都是其中重要角色。多元化的容器技术, 云计算的巨头参与,以及容器创业公司的垂直专注,都会推动开源容器生态的快速发展。目前还处在成长初期的容器市场,Docker和阿里云两个巨头合作无疑会推动容器相关市场快速发展。同时,容器相关生态也在动态变化中,更多的容器开源技术不断涌现。容器生态中的各个角色包括创业公司在内都会有更多的发展空间。
才云创始人邓德源:阿里与 Docker 的合作将进一步推动国内容器市场的发展,对创业公司而言实际上是一大利好消息。就目前形式来看,尽管国内市场体量大,企业普遍对容器感兴趣,但真正敢于将容器技术落地在生产环境的企业毕竟是少数。相信阿里与 Docker 的合作会极大改善这种局面。容器仅仅是构建整个平台的基石,这次的合作实际上是进一步巩固了该基石。如果创业公司的切入点是在这个平台能力之上提供SaaS服务,跟Docker实属上下游的关系,那么对于这部分创业公司是有百利而无一害的。
好雨云创始人刘凡:容器技术市场正处于成长初期,阿里云和Docker达成战略合作,不仅证明了容器技术方向上的正确性,为整个容器生态的快速发展带来了巨大的推动作用,也为专注容器技术的创业者提供了更大的发挥空间。另外一个不争的事实是,容器技术这一市场体量足够大、机会足够多,在这个生态中被大鱼吃掉的往往不是小鱼,而是懒鱼,短期内几乎很难出现一家独大的局面。Docker的确是一种非常优秀的容器技术,但在整个容器结构上,编排工具的重要性不容忽视,甚至要超过容器技术本身。以Docker为代表的容器技术+以Kubernetes为代表的编排工具才是目前云计算的方向所在。