我先来打个比方。我早上从北京过来,在北京,树上的叶子已经掉光了;来到这边之后,却发现自己穿的有点多,梧桐树上还满是绿叶;而前年的这个时候我去广州,那边还是鸟语花香。从地域的维度看,同一个时间点,三个地方,出现三种不同的状况。相应的,如果从时间的维度来观察技术发展的脉络,我们一样也可以从这个历史中借鉴出,未来技术的发展趋势。
93年的时候Linux刚刚出现,那个时候互联网还处于起步阶段。到99年的时候,Linux在国内有一个热潮,这主要是因为资本的力量带动了基础设施的繁荣。来到07年,在这之前有一个开源的组织运作Linux社区的发展,这主要是为了避免出现unix多版本分裂的可能性,这需要以一个基金会的方式控制整个技术的发展还有社区的繁荣。2007年的时候Linux的基金会成立,从而推动整个Linux的技术发展。事实上,Linux现在已经是非常稳定的技术,大家会毫不犹豫地使用它。
在2010年的7月开始出现开源的云平台。实际上在之前是AWS率先推出开源的云服务。在2012年的9月份,仅仅用了两年,和Linux成立foundation一样,OpenStack Foundation也成立了来运作OpenStack的发展。基金会的工作主要有两个方面,第一个是从技术层面,有委员会把握整个技术的发展;第二就是繁荣生态,生态包括技术生态和企业生态。其实OpenStack有4个开源的竞争对手,但是经过7年的发展,最后OpenStack胜出。现在如果大家选择开源的云平台技术,OpenStack是唯一的选择。
其实从Linux到OpenStack已经印证了开源技术发展的思路。
2013年的7月份,Docker把自己的技术开源了。时间来到第二年2014年的7月份,谷歌就把其内部使用的系统Kubernetes开源出来,立刻就有一些大的厂商对其进行支持,比如说微软。并在随后的第二年就宣布成立了Foundation。参照以前开源技术的发展脉络,我们可以看到,有基金会的运作,能够让这个技术发展更加成熟:有一个规范的方式,有一个合理的方向,以稳妥的方式发展。另外,有基金会的运作,大家把生态,包括技术生态和企业生态,做好,能够让这个项目做越做好,越做越大。因此,基于之前Linux和OpenStack的经验,Kubernetes的后发优势时间会相对缩短。对比一下,OpenStack在之前的时候实际上并没有先发优势,但是由于有Foundation的运作,组织这个技术的发展,繁荣技术生态和企业生态,这个事情是可以做成的。
刚才说到的三个不同的开源技术,它们的定位层次是不一样的。Linux操作系统,毫无疑问是服务器端开源操作系统的首选,它属于对单个物理机器的管理。来到OpenStack,它实际上是数据中心的操作系统,它把所有物理机器管理起来,同时把所有网络、存储也管理起来。。而Kubernetes,实际上是基于对服务的管理。
我们公司基于对于不同开源技术的理解,用开源技术来打造我们的产品。我们主要是结合了openstack和Kubernetes来打造一种能提供给企业不同场景的云服务平台。
这是之前的一个统计,一些形态的演讲,包括一些数字,我们可以参考一下。企业的形态实际上是多种多样的。对于一些传统企业来说,他们的需求没有像互联网企业这么快,为了在统一平台下提供云服务,需要考虑多种场景和形态,包括混合云和多云管理能力。
对于K8S和openstack的结合,我们可以分别从用户和组织架构两个角度来考虑。它们两者的结合非常适配CI/CD 以及Devops的场景。OpenStack就是在底层默默地进行管理,方便用户的使用,而K8S就是把上层的服务做好。
这里列出了14个Foundation(基金会),实际上情况应该是还要比这个更多。而这个社区,cncf社区的话主要有两个,一个就是有比较强话语权的Kubernetes,还有就是其它。这主要是因为这个组织实际上是由Google发起的,它自然而然就在这个组织中拥有比较强的话语权。而其它就是围绕它相关的周边来进行的。其实这跟OpenStack一样的。OpenStack最核心的是什么?是创建的虚机。不管是存储还是网络,实际上最终都是为了服务虚机的。
这里面做一下kubercon的介绍。
1、谷歌主导和引领,投入了大量的力量在K8S社区,是项目走向的实际控制人。
2、微软让K8S更易用。
3、亚马逊,深度融合AWS已有基础设施服务。
这里主要是两点:社区保证K8S本身的稳定,以及兼容性的保证。OpenStack为什么能够建立好比较好的企业生态?就是因为它有非常好的架构,能够让所有的企业都融入其中。在未来的数据中心里面,每个公司都能有所贡献,这个相当于众人拾柴火焰高。而标准化的力量远大于单个厂商和产品,K8S实际上就是以一个非常健康的方式发展。
最终是希望形成一种乐高式的平台。如果有人熟悉AWS这个服务的话,它在中国的服务可能只有二三十个,但是在美国的话已经接近上千,包括它的服务和各种应用。用户可以把各种各样的服务组装起来形成一个应用系统,让你的东西跑上去,这就是这种乐高积木式的发展方式。
很多的发展规律是类似的,我们可以通过这个东西反过来看,这同时也是我们ECUE组织提供机会让大家坐下来一起探讨的初衷。任何一个领域,都会有人去探索。探索的过程,都会需要一段时间,大家不断发掘热点,互补,成长,相互借鉴经验,最后会突出来一家。很多的发展方式都是这样的。
KubeCon上有几个热度比较高的,一个是Service Mesh,一个是Servless,还有一个是Hybrid Cloud。
Service Mesh就是说,服务还是服务,Service Mesh会把其它的都管好,比如流量的管控等。
Service Mesh从去年开始,去年6月份是0.3版本。1.0版本是比较高的,算是稳定版本。kubernetes应该是15年7月份发布1.0版本,现在kubernetes来到了1.9版本,这个速度非常快。实际上每个开源软件都会有这样子的一个过程。
这里是不同的企业提出来的一些不同的概念,都是对Service Mesh提出的一些要求和希望。
这里解释了对各个层次完成抽象之后,我们为什么需要一个旁路的服务来做这个事情。
这相当于是Service Mesh的4大特性。首先,资源是我们使用的核心。虽然我们从服务层、资源层等各个层次观察到的东西是不一样的。但Service Mesh作为本身运行服务的载体来看,我关注的点就是图中这么多。比如刚才提到的虚拟机,可能需要监控,需要日志,甚至将来需要有工单。这些跟我们的虚拟机实际上是完全没有关系的,但是作为整体业务来看就有关系了。因为知道这些以后,会更方便我们运维,更方便我们去完善。
Kubecon热点之hybrid cloud。hybrid它愿意跟外面合作做所谓的混合云,凡是给我带来客户的都是我的合作伙伴,后面会提到我们的方式是什么样子的。
这里是混合云实现的一些形态,一些特定的场景,比如访问量激增,比如出海等。而中国的国情不太一样,包括微信,包括数据安全,都有一些和国外不太相同的对于私有云的要求,这就需要一种混合云的能力来让我们来帮助去实现这些。在我们客户里面,由于O2O的兴起,TCL在14年底就完成了这种云的建设。再比如说在运营商领域,在不远的将来会比较大规模地使用混合云,将之前所有固化的硬件软件化,最终实现成本降低。
谷歌实际上是希望借助K8S来推广它自己的混合云,这是它的理念。
谷歌通过kubernetes实现混合云应用管理。你管你的服务好了,服务可以直接搭出来。
并不是所有的服务都是由一个机器来做,肯定需要多机型的。在我们的云上之后,可以方便的管理这些不同类别的集群,附带的话就需要认证等。
这是我们产品的简单介绍,简单说两点:第一点就是我们在平台上提供统一的操作方式和体验,而承载这个平台的,可以是裸机容器,也可以是虚机。做企业业务的都知道,企业业务是比较复杂的,最主要的就是各种各样的合规性、各种各样的部门和各种各样的流程。对于互联网企业来说,就是流量非常大,对性能要求比较高。还有其他类型的客户,比如金融类,对安全方面的要求尤其苛刻,需要各种级别的保护等。我们这里统一的管理界面、统一编排和统一应用中心,可以实现各种功能,方便实现各种服务。另外就是我们跟OpenStack和kubernetes本身有一个结合。实际上大家都在努力的探索,最终也会做出来一种,正确、可用、性能可以保证的,这种一级一级提高。这是一个不断迭代演进的过程。
我们会提供一个Adapter,以一种插件的方式,去和不同的Cloud对接。而它们必定存在不同的区域,比如有中国的、美国的。我们可以用不同的帐号去对接。我们会根据客户的情况,提供特定的Adapter,填写必要的对接信息,就可以实现对混合云的统一管控。
如果还有将服务层面打通的需求。我们会需要将连线打通,可以是vpn,可以是专线,这取决于你对服务质量的要求。然后是从K8S层面,会对底层进行标记,来区分出公有亦或是私有,包括计费,包括审计都会涉及得到。再上层就是对应的服务,即对应的使用过程。这是混合云加上kubernetes的一种方式。
关于微服务,它本身有很多的设计原则。对应到我们的产品本身,实际上是以微服务的设计原则本身来实现相应的功能支持,并提供对于场景的一些支持。
这里首先是容器技术本身带来的好处。其实对于容器技术的好处,不同企业有不同的看法,互联网企业在这方面做得比较靠前,规模上做的比较大,也有经验的积累,这是不断深耕的过程。但是我们公司主要是将其做成产品,因此我们首先是考虑它的共性,然后根据这些特性,比较全地进行覆盖。