云原生植物的其本质和最后效用
要知道甚么是云原生植物,要是先弄知道云计算是甚么,有甚么痛点。云计算将计算天然资源、互联网、储存等此基础建设标准化管理工作,透过天然资源品牌化和智能化管理工作,与此同时实现减少天然资源的生产成本和提升天然资源的管理工作效率。
云计算其本质上化解的是天然资源的智能化管理工作痛点,但互联网化和信息技术的关键性在应用领域,云计算没有化解应用领域的管理工作痛点,应用领域的管理工作和互联网管理是痛点,利皮扬卡依存度极高,云原生植物的再次出现是为的是化解应用领域的管理工作痛点。
应用领域管理工作比天然系统管理工作繁杂许多,牵涉到应用领域合作开发、应用领域构架、应用领域交货和应用领域互联网管理等应用领域层的管理工作,更要相互配合应用领域化解天然资源智能化管理工作痛点,云原生植物其本质是化解应用领域的智能化管理工作痛点。
从效用上看,云原生植物的终极目标是让合作开发人员著眼她们的销售业务,销售业务以外(此基础建设、应用领域构架、应用领域互联网管理)的事不必重视,只须要懂销售业务就能缔造出她们想的应用领域,并能按需交货顾客。
—?2—
采用Kubernetes破冰云原生植物举步维艰
现阶段云原生植物有关的控制技术许多,当中最关键性是罐子、微服务项目构架、Kubernetes,她们摒弃式的化解了应用领域管理工作智能化痛点。
罐子控制技术化解了应用领域装箱和布署智能化痛点。?透过罐子装箱确保了应用领域此基础自然环境的连续性,与此同时实现了一场装箱,时时运转。与此同时罐子能表述应用领域运转天然资源,布署时按需挤占天然资源,与此同时实现从应用领域视角化解天然系统管理工作智能化。
微服务项目构架化解了繁杂应用领域的解耦和自然环境治理痛点。?当销售业务越大越繁杂,微服务项目构架将销售业务分拆庭外和解耦成数个组件,并透过服务项目自然环境治理与此同时实现微服务项目运转和管理工作的智能化。
Kubernetes化解了应用领域选曲和运维智能化痛点。?它是应用领域智能化管理工作最关键性的拼图,底层基于罐子、SDN、SDS,能与此同时实现各类型应用领域和微服务项目布署和互联网管理过程智能化。
为的是与此同时实现应用领域管理工作智能化,还有许多云原生植物有关的控制技术,像SDN(互联网智能化管理工作)、SDS(储存智能化管理工作)、Helm(繁杂应用领域交货智能化)、Service Mesh(无侵入扩展服务项目自然环境治理能力)、Monitoring(监控智能化)、Logging(日志智能化)、Tracing(性能分析智能化)、Chaos engineering(容错智能化)、Gateway(网关智能化)、SPIFFE (应用领域访问安全智能化)等等,这些控制技术能跟Kubernetes结合起来采用,化解应用领域各个互联网管理特征的管理工作智能化痛点。
上面这些控制技术主要围绕着Kubernetes,所以破冰过程主要是Kubernetes破冰。?Kubernetes破冰过程一般分为两部分,Kubernetes的搭建和Kubernetes的采用。
对于Kubernetes搭建,基于以上控制技术自主搭建完整的Kubernetes集群非常繁杂,既要学习这些控制技术更要了解她们的原理,最困难的是要把她们有机的组装起来。不过大多公司有专职的维护工程师,能抽出大把时间来学习和尝试。或者,选择公有云厂商提供的Kubernetes商业服务项目,所以,搭建Kubernetes是有路径破冰的。
相比搭建Kubernetes,Kubernetes的采用一般是合作开发人员,合作开发人员人数众多,采用习惯和学习门槛决定了合作开发人员的接受度,而云原生植物平台的采用不仅要改变合作开发习惯,更要学习许多新控制技术,破冰过程举步维艰。
须要学习许多新概念和控制技术。?元原生植物有关的控制技术和概念有许多,光 Kubernetes就有许多捷伊概念和抽象,像Workload、Pod、Service、Ingress、ConfigMap、PV等,如果要用好还须要学习Kubernetes周边的许多概念和控制技术。
已有应用领域须要改造,合作开发习惯须要改变。?已有的应用领域要运转在Kubernetes上,须要会写Dockerfile和YAML,如果要改造成微服务项目构架,还须要按照框架的SDK改造代码,跟之前的合作开发习惯会有很大变化。
如何将应用领域高效交货给顾客,Kubernetes及上面这些控制技术并没有化解。?应用领域只有交货给顾客才能产出价值,现阶段交货顾客的智能化程度不高,Kubernetes并没有化解交货过程智能化的痛点。在To C的场景,销售业务频繁迭代,交货的频率极高,须要保质保量。在To B场景,交货更加繁杂,不同的顾客有不同的要求,须要针对不同顾客有不同的交货模式,比如SaaS、私有交货、离线交货、个性化交货等,交货也是生产成本里的大头。
—?3—
应用领域抽象模型是云原生植物可破冰的关键性(与此同时实现思路)
云原生植物破冰的难点在采用,如果能将云原生植物底层繁杂的控制技术包装成合作开发人员熟悉的应用领域层属性和动作,合作开发人员就不必学习捷伊概念和控制技术;如果能将销售业务跟互联网管理能力解耦,跟微服务项目框架解耦,就能与此同时实现合作开发人员按需扩展互联网管理能力和切换微服务项目框架,与此同时实现对销售业务按需赋能;如果能与此同时实现根据不同顾客类型,自表述交货流程和智能化交货,就能大大减少交货生产成本,提升顾客满意度。
当以上三点都能化解,就能让合作开发人员著眼在销售业务本身,销售业务以外的事不必重视,有更多精力关注顾客价值输出。
基于以上思考,透过应用领域抽象模型是个化解思路,对应用领域整体进行包装和抽象,包含应用领域运转所需的全部运转表述,与底层控制技术和概念隔离。?向上用户不须要再学习和了解系统级概念和控制技术,应用领域内部把销售业务和扩展能力解耦,采用应用领域级概念合作开发和管理工作,须要扩展服务项目自然环境治理、互联网管理、安全等能力时按需开启插件。向下则包装Kubernetes的概念和抽象,屏蔽掉底层此基础建设的差异,与此同时实现应用领域抽象模型能运转在各类此基础建设上。
应用领域抽象模版核心设计在三方面:
应用领域级抽象
构架充分解耦
采用应用领域模版交货
应用领域级抽象能简化认知和采用
应用领域级抽象是以应用领域为核心的抽象模型,对用户暴露应用领域级的概念、属性和动作,底层Kubernetes和系统级的概念和控制技术,要么完全与此同时实现智能化,要么包装成应用领域级的属性和动作。
为的是与此同时实现灵活的应用领域选曲和智能化运维,Kubernetes表述了许多概念,提供丰富的扩展机制,并以YAML的方式跟它交互,Kubernetes的这些可编程的体验,对管理工作和扩展Kubernetes的人来说,是非常好的特性,但对于普通合作开发人员,门槛太高,并且许多概念和控制技术跟她们合作开发的销售业务并没有直接关系,所以对于普通合作开发人员来说须要更加友好的操作体验,不须要学习就能采用。
应用领域级抽象和Kubernetes概念粗粒度的对应关系:
应用领域级抽象并不是要将Kubernetes概念全部隐藏起来,而是对于不同的采用者,职责不同展现不同的交互界面。对普通合作开发人员职责是合作开发销售业务,只须要重视应用领域级的概念,提供应用领域级的操作界面。
但对于云原生植物平台的管理工作人员,除了重视应用领域级的概念,更要重视Kubernetes的管理工作和维护,有能力的话还能扩展平台的能力,所以对于平台管理工作人员,提供高级的暴露Kubernetes概念的操作界面,或者直接操作Kubernetes也能管理工作平台上的应用领域,透过这种方式也规避了,由于包装概念产生的黑箱导致对平台的可观测性和可掌控性不足。
构架充分解耦,根据采用场景按需组合
基于应用领域级的抽象,应用领域模型透过标准的Kubernetes API与此同时实现跟此基础建设的解耦,所有符合标准Kubernetes API 的此基础建设都能与此同时实现对接和布署,比如各公有云厂商的Kubernetes与此同时实现、K3s、KubeEdge等,透过这样的解耦,合作开发人员只须要重视销售业务和能力扩展,不必在重视此基础建设的差异,对接应用领域模型的应用领域不须要改动就能透明布署到公有云、私有云和边缘设备上,与此同时实现了应用领域级多云。
通常在应用领域里,还会包括一些跟销售业务无关的功能,她们的作用是为的是让应用领域更好的运转。?比如:服务项目自然环境治理、微服务项目框架、互联网管理工具、安全工具等,这些能力跟应用领域有强耦合关系的,须要改代码扩展能力,将这部分能力解耦,应用领域就只须要关注在销售业务了,而且扩展的能力有很强的复用性,其他应用领域也须要。
应用领域中扩展能力的解耦采用Kubernetes的Pod,Pod中包含一个或数个罐子,所有罐子共享互联网、储存,应用领域运转在一个罐子,扩展的能力透过扩展罐子的方式运转,透过共享的互联网和储存与此同时实现了应用领域和扩展能力的解耦,这种解耦方式对销售业务完全无侵入,扩展的能力用插件的形式包装,就能与此同时实现应用领域按需安装和启动插件,根据互联网流向和罐子启动顺序能表述几种类型插件:
按照Pod机制与此同时实现的插件只能扩展单个销售业务罐子的能力,而要对应用领域扩展微服务项目构架能力,须要对每一个销售业务罐子扩展服务项目自然环境治理的插件,这跟Service Mesh的与此同时实现机制一致。
Service Mesh的Data Plane须要对每个销售业务罐子注入Proxy,对于完整应用领域是扩展Service Mesh能力,对完整应用领域扩展的能力是应用领域级插件,根据注入Proxy的差异能支持多种类型的Service Mesh与此同时实现,比如:Istio、Linkerd、Dapr,应用领域能按需开启Service Mesh能力,或更换与此同时实现框架。?当应用领域跟微服务项目构架解耦,每一个销售业务罐子不再受微服务项目框架和合作开发语言限制,每个销售业务罐子只须要专注销售业务本身,销售业务罐子之间也同步与此同时实现了解耦。
透过将构架充分的解耦,解耦后的销售业务、插件、对接多云的能力都能与此同时实现随意组合,合作开发人员选择喜欢的合作开发语言合作开发销售业务组件,根据销售业务契约选曲依赖关系,根据服务项目自然环境治理和运转稳定性要求,按需开启Service Mesh插件和其他互联网管理插件,运转的此基础建设自然环境,也根据实际须要自动对接。
应用领域模版成为能力复用和应用领域交货的载体
应用领域模型以应用领域模版的形式具象化展现和储存,应用领域由源码、罐子镜像和插件拼装而成,然后一键导出成应用领域模版,应用领域模版设计主要围绕采用者,让采用者能用起来,让应用领域交货并产出价值,从而拉动应用领域的迭代和合作开发。
从采用体验上,应用领域模版能一键安装和一键升级,透过拖拉拽的方式与此同时实现销售业务拼装。?应用领域模版有很强灵活性,应用领域模版支持不同颗粒度大小,模版和模版能拼装出捷伊模版,捷伊模版还能持续拼装,颗粒的大小由采用者决定,由采用者赋予它意义。应用领域模版能交货到兼容Kubernetes API的分支版本,与此同时实现一键安装和升级,或将应用领域模版存放到应用领域市场,与此同时实现即点即用的效用。
应用领域模版须要具备四个特点:
组件化,能形成可复用的能力单元,按需拼装采用场景。
自治,自给自足,能独立安装、升级和管理工作,确保组合的灵活性。
可选曲,模版和模版能拼装出新模版,具备无限拼装能力。
可发现,透过内部服务项目和外部服务项目两种方式体现,可供销售业务和控制技术、合作开发人员和其他应用领域访问。
透过应用领域模版与此同时实现可复用组件和能力的装箱。?应用领域的构架充分解耦后,销售业务组件和扩展插件理论上能复制到其他应用领域中,但直接复制代码或镜像非常低效,而且还有许多运转自然环境有关的配置须要考虑,将销售业务组件和扩展插件装箱成应用领域模版,并将应用领域模版发布到应用领域市场供其他人采用,能最大程度与此同时实现组件和能力的复用,减少重复造轮子。
透过应用领域模版与此同时实现SaaS、私有化和离线自然环境的智能化交货,和个性化场景组件拼装。?应用领域模板中包含应用领域运转态所需的全部天然资源,对接到顾客运转自然环境,就能与此同时实现一键安装和运转,屏蔽了顾客自然环境差异,一套产品模版能交货所有类型顾客,对于离线自然环境,应用领域模版以文件的形式导出,到顾客离线自然环境再导入运转即可。
对于功能须要个性化的场景,利用应用领域模版对销售业务模版装箱的能力,先拼装已经组件化的能力,然后再定制化合作开发,新合作开发的功能,如果可复用还能继续发布成应用领域模版,供后续复用。
—?4—
不懂Kubernetes与此同时实现云原生植物的体验
基于以上的设计思路,让合作开发人员专注于销售业务本身,回到用户效用和价值体现的原点上,不必重视底层繁杂的控制技术和不有关的概念,全面与此同时实现应用领域智能化。
合作开发应用领域的体验:
代码无需改动,就能变成云原生植物应用领域。?对于新销售业务或已有销售业务,代码不须要改动就能将其罐子化。不须要懂Docker 、Kubernetes等控制技术,就能将应用领域布署起来,具备云原生植物应用领域的全部特性。
销售业务积木式拼装选曲。?可复用的销售业务组件积累到应用领域市场,当由新销售业务须要合作开发,基于应用领域市场已经销售业务组件,透过拖拉拽的方式拼装,然后再合作开发没有的销售业务能力,当积累的销售业务组件越多,合作开发新销售业务的速度越快。
开箱即用的Service Mesh微服务项目构架,并可一键更换Service Mesh框架。?不必学习微服务项目框架的SDK,透过无侵入的方式与此同时实现Service Mesh微服务项目构架,主流的Service Mesh框架以插件的形式存在,须要时开启,如果觉得不好还能随时更换。
采用应用领域的体验:
像安装手机App一样安装云原生植物应用领域。?云原生植物应用领域以应用领域模版的形式存放到应用领域市场,当对接各种此基础建设或云天然资源,与此同时实现应用领域即点即用或一键安装/升级。
普通合作开发人员不须要学习就能与此同时实现应用领域互联网管理。?透过应用领域级抽象,普通合作开发人员了解应用领域级属性就能与此同时实现应用领域互联网管理,并透过插件扩展监控、性能分析、日志、安全等互联网管理能力,应用领域互联网管理不再须要专用的SRE。
繁杂应用领域一键交货顾客自然环境。?繁杂应用领域发布成应用领域模版,当顾客自然环境能联网,对接顾客自然环境一键安装运转,当顾客自然环境不能联网,导出离线应用领域模版,到顾客自然环境导入并一键安装运转。
—?5—
与此同时实现方案
基于上面的设计思路,好雨云在Kubernetes此基础上与此同时实现了Rainbond,并将它开源(http://github.com/goodrain/rainbond)。Rainbond提供开箱即用的体验,采用简单,不须要懂罐子和Kubernetes,支持管理工作多种Kubernetes集群,提供企业级应用领域的全生命周期管理工作。主要功能包括应用领域合作开发自然环境、应用领域市场、微服务项目构架、应用领域交货、应用领域互联网管理、应用领域级多云管理工作等。
发表评论