一如既往,由于所有信息不是来源于严谨的调查和统计,也许离事实差距甚远,但仍希望读者能藉此文窥得中国和全球IPaaS之现状。如果能对中国IPaaS行业有所助益,或对相关同仁有所启发,甚或只是打发了时间,也不枉本文诞生过程中的敲敲打打。喜欢快餐的,可以直接翻过本文;对于习惯严谨数字的读者,请提前知悉本文的粗放和调侃。
一如既往,本文不从头解释基本概念和行业内的基本知识。如果你希望系统性学习云计算各个领域的基本知识,购买《云计算时代:本质、技术、创新、战略》差不多是最佳选择了。
不一如既往的是,本文不在区分去年总结和来年预测。年份,本就是认为划定的线线,但时间和云计算,不会按照线线来跳跃式前进,那就让总结和预测你中有我我中有你吧。
今天触发了2万字微信文章上限,删略了一些文字。
1 Openstack看起来不可阻挡,但还未等来属于自己的时代
中国想以OpenStack为生的公司没有100家,也有50家。国外的公司也不会比这少。这是OpenStack的福音,却不是OpenStack公司和用户的福音,太多的同质竞争者,太多的私有版本,而且这些竞争者和私有版本有95%将在三年内消失。这些拿OpenStack搞公有云的,根本就不清楚一点:即使OpenStack没有上述那些问题,即使OpenStack是一个开源的VMWare或开源的AWS,要做公有云,还是要自己开发。为什么?不是不告诉你,是在懒得再说,如果想不明白这个问题,就别搞IaaS了。
搞公有云搞不过AWS,大家拿OpenStack开始搞私有云。私有云那是VMWare和微软的地盘,但是现在VMWare和私有云都已经过了辉煌期,搞起来说不定容易点也未可知。
但OpenStack能否迎来自己的时代,取决于它在混合云上的作为。纯私有云不大可能是将来的主流模式,这个领域也有VMware和微软坚守。公有云市场基本没有OpenStack的空间。混合云才是OpenStack的战场。但现有的私有云项目和厂商肯定会极力抓住混合云的机会,甚至随着时间推移混合云可能走向边缘。
2016,我们将看到OpenStack是否能在搞VMware的战役中取得第一站的胜利:OpenStack能否在企业的生产环境中得到大量的部署。
2016,我们或许还看不到OpenStack迈开走向混合云的第一步。这也许需要更长的时间,毕竟搞私有云的战役才刚打响。
但OpenStack的影响力,注定要被docker超越。
2 容器和Docker:准备好迎接它的黄金时代
Docker本就和OpenStack不是一个层面,本就不应该发生争吵。但还是发生了,为什么?吃醋。Docker应用的基础技术和工具虽然是老古董,但它一出生就得到了开发者特别是DevOps、Microservice拥护者的青睐,并迅速俘获大批开发者和媒体、观察者的芳心。
Docker太流行了,太引人注目了。OpenStack支持者吃醋了。2014年8月,Linux.com和网站New Stack联合开展,从550多个调查对象那里收集了信息。关于谁是总体上最佳的开源云计算项目的问题:OpenStack、Docker、
KVM、CloudStack、Ceph排名前五。但在此之后不久,通过Google的搜索量显示,Docker的热度全面超过OpenStack。
于是,有了所谓的论战。有人发出战帖:用Docker之后还需要OpenStack吗?当然可以不要。比如:叫板OpenStack:八步用Docker实现私有云。Docker当然非常适合私有云。
甚至在OpenStack峰会上最热门的主题是:Docker以及容器技术是否会替代OpenStack?这压根就是伪命题,太多假设和想当然了。无论将docker看成容器技术还是管理平台,它都与KVM和XEN这些系统虚拟化和OpenStack,不是直接替代关系。当然,间接替代是可以的,但不是必然的。
但是,这些都是Docker发展道路上的插曲。
容器是操作系统虚拟化技术,xen和kvm是系统虚拟化技术,他们在技术堆栈上处于不同的层级。Docker、Kubernets都是管理容器的工具,OpenStack、
CloudStack都是管理系统虚拟化的工具。当然OpenStack、CloudStack还管理这其他的东西,作为比较,暂且忽略。
容器在软件堆栈上,与系统虚拟化KVM和XEN不在一个层面上,即不需要与系统虚拟化竞争,也不需要直接与私有化软件和公有云竞争。事实上,容器离应用和开发者更近,这也是容器快速流行的原因之一。
容器和Docker尽管快速流行,但公 有云服务上门迅速消化了这一趋势,各自推出了自己的容器服务: 2014年11月5日Google Cloud Platform 发布container engine、2014年11月14日亚马逊AWS发布 ECS、2015年12月微软Azure发布 Container Service。但是,所有这些容器服务都是基于它们的IaaS服务之上的。
但是如果真的认为Docker与世无争的话,那就太天真了。虽然Docker现在只是提供镜像相关的服务,而没有基础设施服务,但并不是因为它不想,而是现在云计算基础设施服务的厂家太强大了。但是,看了下面的图,OpenStack、
VMware们怕是要出点汗了,要搞的还是私有云厂商啊。
Datadog在2016年1月的一项面向7000个公司的调查显示,docker如今运行在5%的主机上,一年前这个数字几乎为0,这不包括运行CoreOS等其他容器平台的主机。使用docker用到的排名前十的技术包括:Registry、nginx、
redis、ubuntu、logspout、mongodb、elasticsearch、CAdvisor、Mysql、Postgres。
正如我在penStack和Docker不能,Kubernetes和Mesos也不能, ServerLess能决定云计算胜负吗?》一文中所说,docker诞生与paas服务dotCloud。但独立的PaaS服务至今未能显示出成功的可能,至于原因,看过《云计算时代》一书和我其他文章的,应该很明了原因。
但这并不妨碍容器和docker,如今成为云计算领域,最受瞩目和最有前景的技术和项目。
Docker能如此成功有两个重要原因:
IaaS的兴起。IaaS将基础设施的可扩展性和灵活性,推向了一个新台阶。但位于基础设施之上的应用,其一致性性和可管理性并没有大的改观。而容器的兴起,正好补位。
DevOps的兴起。DevOps在云计算星期后不久,就开始被提出,并受到部分欢迎。DevOps基于IaaS和私有云,当然也能比传统的开发流程更为高效。但,DevOps的流程和工具,配合容器技术,将让应用的生命周期管理更为流畅。
至于经常与容器并提的MicroServcie 微服务,只是容器发展的结果而不是原因,初看是SOA、Mashable落地的另一种表现形式罢了。但微服务将传统的SOA中的服务分解得更细,而且目前的微服务里还没有ESB(Enterprise Service Bus,ESB)和UDDI(Universal Deion, Discovery, and Integration)之类的东西。除此之外,你真的很难从理论和原则上区分SOA和微服务。
但这么多的微服务怎么管理,目前微服务理论还没有告诉我们。
将系统分解为较小的系统,这种做法比起一体性的大规模应用更易于进行错误诊断、变更以及迭代。但是,也只是针对复杂的应用,如果一个基本的简单的应用都要拆分成10个以上微服务,那简直是没事找抽型。
当然, Docker并非没有问题,年轻本身就是问题。Docker还年轻,要想成为一个成熟的IT工具或平台,还有很多问题需要解决。安全、网络、控制,这都是IT管理者对位看重的问题,目前docker刚开始解决这些问题。
但是, docker有过度定位的问题。Docker只是一个OS之上的容器,是否应该承载IaaS层的性能、网络、安全控制,容器从业者和公司们或者都来不及想这个问题,就被需求和野心推着跑过了界限。
另一个过度的,是openstack对docker的恐惧和支持。无论是因为吃醋、恐惧,亦或是拥抱、喜爱,openstack目前在容器上投入了过于多的精力和项目。而且这些项目之间,很难说有多少战略上的兼容和协同考虑。使用OpenStack管理Docker,有3种流行方法: Nova Docker驱动,Heat Docker插件,Ironic、Magnum。
当然,不只是openstack过度支持容器,整个开源社区都是。Docker、
OpenShift、Kubernets、Mesos、OpenStack、CloudFoundry、Cloudify都声称自己是容器管理的利器。没错,不管他们以前是什么,现在,他们都是容器管理,特别的,是docker管理的利器。Cloud Foundry虽不是基于docker的,但也是基于容器的,但是decker项目把两者联系到了一起。容器是要把PaaS变成CaaS(Caitainer as a Service)啊。
目前,在AngelList上至少有20个基于容器或docker的创业公司。Docker自己也收购了一些创业公司,诸如Tutum、Kitematic、SocketPlane、Koality、
Orchard,以及最新的,Unikernal。