来源:中国电子报
在多云时代的当今,"云原生"逐渐走向了技术舞台的中央。
"这是云原生最好的时代,也是不得不云原生的时代。"KubeSphere容器平台产品经理于爽近日向媒体表示。
提到云原生(Cloud Native),一些人可能并不理解, 殊不知,通过近几年的发展,云原生已经成为解决企业业务落地适应数字化、互联网化趋势时,一个很实用、很有效的解决架构。
CNCF基金会对云原生的定义最精练,就是"云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用"。云原生虽然只有三个字,但里面包含很多东西,它就像浩瀚的宇宙一样,各种星系。云原生的代表技术包括容器、服务网格、微服务、不可变基础实施和声明式API。
于爽认为,云原生的优势在于可以很好地构建容错性好、易于管理、便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师能够轻松地对系统作出频繁、可预测的重大变更。在现实生活中,我们经常会看到很多互联网企业都会做促销活动,很多泛金融类,如银行、保险都在做数字化转型,类似互联网企业线上频繁的活动。这一切都需要基础设施做配合,包括企业的应用架构、业务实现,而云原生技术正是辅助企业完成数字化转型的。
5G时代加速云原生普及
数字化转型1.0时,大家开始迈出上云的第一步。企业会把一些硬件做软件定义、数字化。现在很多传统企业已经实现了数字化转型1.0。目前中国也在大力推广数字化,有73%的企业已经至少采用一个/一项云计算应用或者技术。
而5G时代的到来,数字化技术越来越快,如果企业的业务只是停留在传统的形式(比如线下门店),已经完全不适应现在的发展需求。因此业务需要变革,而IT也在为了支撑这种变革而不断推进。
具体而言,在软件架构层面,以前是单体应用,所有的业务都在一个应用包里,把所有代码打包在一起;后面有了分层,3 Tier、MVC(前端、后端、中间控制器);后来是IBM主导SOA的架构,有服务总线,是一种比较好的解耦方式,但它还是面向集中式的业务;现在谈论更多的是微服务,很多互联网企业已经做到生产业务微服务化了。比如电商系统,把很多业务模块解耦,比如购物车拆分成一个独立的服务,可以独立进行版本迭代和升级上线,它跟电商系统其他平台完全解耦。这可以更好地应对不同的业务需求,比如促销活动,购物车模块需要为这次促销做一些新的功能开发。
在基础设施层面,以前是大机或者传统数据中心,然后发展为集中化IDC数据中心,再后来应用云计算,而现在则要应用云原生。其实在云原生的定义里有详细指标评判云原生:应用是基于容器打包构建的,为了运行一项容器化的业务,需要有支持容器的平台。所以,它也可以叫做容器云、Kubernetes基础设施等。
除此之外,协作流程也发生了变化。以前是很大的团队,开发、测试、美工、项目经理,所有人面对同一个项目、同一个产品,可能需要历时三个月甚至半年时间才发布一个版本,所有人都得参与上线过程。而现在,大家开始往敏捷、DevOps方向发展,团队被拆解,微服务使得项目或产品已经被切割成很小的模块。比如购物车团队可能只需要一个全栈的研发,其不需要了解其他模块的业务,其跟其他模块的沟通是服务与服务之间的API、文档等,是一个很松耦合的团队组织架构。
"到了数字化转型2.0时代,为了应对业务模式非常频繁的变化,企业必须从原来的云模式变成云原生的模式。"于爽表示。
Gartner报告称"到2020年,大概有75%的全球化企业将生产中使用容器化应用。"跑在像Kubernetes这样的基础设施里。
此外,云原生应用架构将在2-5年内达到"Plateau of Productivity",即在企业所有的IT基础设施都可以用云原生阐释和构建。
于爽认为,在这一轮数字化转型中,企业必然走向云原生。这是通过趋势、分析报告和基础设施、应用架构、开发架构的变迁等逐步确认,云原生是最终不得不做的事情。
Kubernetes成为云原生落地的事实标准
谈及云原生,就不得不提及Kubernetes,其已成为云原生落地的事实标准。
Kubernetes最开始是由谷歌开源的虚拟化平台或是支撑云原生的基础设施平台。它源于谷歌内部的一套基础设施borg,里面耦合了很多谷歌自己的业务逻辑。谷歌把它的共性拆出来,开源成Kubernetes。谷歌把它贡献给CNCF基金会,现在很多国际、国内的企业都在致力于推进Kubernetes的演进、迭代,包括我们熟知的微软、IBM,包括青云QingCloud都是这个社区主要的贡献者。
为什么Kubernetes这么受欢迎?用一句话概括就是未来它会统治所有的基础设施。首先,Kubernetes、容器是跨基础设施的,不管是物理机还是云平台,只要你的业务构建于Kubernetes、以容器化的方式交付,就可以跑在不同的平台之上。这意味着你没有被任何服务商锁定,你的业务可以很好的跨基础设施做应用迁移。
同时,Kubernetes社区,不管是个人开发者、企业开发者在上面投入很大,它的版本演进非常快速。在青云公有云上,2017年前就提供了Kubernetes的PaaS服务,当时大概一个季度发布一个大版本。到今年,我们发现一两个月会发一个大版本,明年可能会更快,因为使用它的人越来越多。即使有这么快演进的速度,它也不是破坏性的演进。因为Kubernetes是非常标准的开发架构、API设计,并没有通过快速演进把好的特性破坏,而是向前很好的兼容,业务依然可以持续地跑在上面。
扩展简单和标准。大家可以把Kubernetes理解为容器管理调度的中间很薄一层的平台。Kubernetes在最开始设计时就没有很深入向下和向上做绑定,而是通过标准化的方式开放出来。以存储为例,数据需要最终存储到数据盘里,Kubernetes把它抽象成存储服务的标准接口,不管是青云的存储服务还是其他存储厂商,都可以基于接口标准,把存储服务的API对接进去。这使得Kubernetes的生态非常繁荣。
另外,前几年推进DevOps非常困难,有了Kubernetes之后,即使是运维人员,直接面对的也是企业业务应用,既要了解运维,还要熟悉开发模式,才能很好的适应这套基础设施。这推动运维人员和开发人员互相了解,加强了开发和运维之间的黏度。
开箱即用的KubeSphere应运而生
于爽告诉记者,Kubernetes是云原生最基础的支撑平台。现在构建Kubernetes相对比较简单。但是Kubernetes只是提供了资源运行最基础的平台,你可以把它理解为毛坯房,没有家具和家电,只能保证企业最基础的应用,后续的使用会变得非常复杂。
平台的事情交给平台专业人员做,KubeSphere应运而生。
于爽表示,企业最终要解决业务创新,要把业务跑在Kubernetes上运行起来。在KubeSphere的设计开发过程中,结合青云对于企业客户的经验,由专业的产品设计师优化Kubernetes在使用过程中的体验,从而可以实现平台落地的成本、用户使用成本的降低。
据介绍,KubeSphere被社区用户称为云原生全家桶,因为KubeSphere提供了很多可选的功能组件,用户可以在使用过程中,根据自己的业务需求有选择性的使用这些组件。
其有以下几个特点:
首先,核心功能开箱即用。一是即点即用的DevOps,面向开发测试人员,覆盖了开发测试全链条的发布。从提交代码、构建应用、应用发布到测试环境、测试通过发布到准生态环境及生产环境,这一套流程在KubeSphere平台上可通过可视化界面进行统一的管理。 二是灵活可选的微服务框架:SpringCloud和Istio双核微服务,和完善的治理功能。不管是传统微服务框架还是主流的云原生微服务框架,在KubeSphere平台上都可以得到很好的支持。 三是应用跨平台一键部署。
其次,健壮的容器基础设施。这其中包括商用验证的SDN、SDS产品,还可以无缝对接QingCloud云平台。这个整合并不是强绑定的关系,KubeSphere既可以安装在青云之上,也可以安装在其他云平台、物理机或者VMware之上。。
最后,企业级增强特性。包括极简人机交互、安全多租户、运维友好和安全合规等功能。
据于爽介绍, KubeSphere是在Kubernetes之上构建的分布式操作系统,是用于数据中心的、可插拔的企业级多租户容器平台。
"KubeSphere的很多功能是可插拔的,因为企业的诉求是多种多样的,用户需要什么,直接打开,就可以很好地在平台上无缝的使用。在企业里这个平台肯定是多租户的,因此需要有相应的租户管理体系支撑这个平台。"于爽表示。
记者了解到,KubeSphere从2018年4月开源第一行代码开始,就得到了一些社区用户的关注,并且关注度是持续上升的。从2019年5月,2.0版本开始统计,累计到现在大概有10000+下载量。目前,KubeSphere已经加入CNCF。
对于2020年的发展,于爽表示,2020年将更多地通过社区推进KubeSphere的发展。通过在线下的Meetup、线上GitHub开源社区不断获取社区反馈,把产品更加完善。此外,多集群管理也将是KubeSphere重要的发展方向。
"Kubernetes在向统治一切基础设施的方向迈进,Kubernetes集群规模会越来越大,一个集群已经承载不了企业现有的业务,企业会拥有多个集群,分布式的管理这些业务。多集群管理是一个很大的话题,我们会在KubeSphere 3.0版本中支持多集群。在3.0版本里除了支持多集群外,KubeSphere也会增加网络租户隔离、计量、GPU可观察性、对接vGPU等功能。"于爽表示。