BaaS(Backend as a Service)后端即服务:
应用架构由大量第三方云服务器和API组成的,使应用中关于服务器的逻辑和状态都由服务提供方来管理的。比如典型的Web应用和移动APP客户端应用,前后端交互主要是以RestAPI调用为主。只必要调用服务提供方的API即可完成相应的功能,比如常见的身份验证,云端数据/文件存储,消息推送,应用数据分析等。
FaaS(Function as a Service)函数即服务: 是一种实现无服务器盘算的方法,服务商提供一个平台,答应客户开发、运行和管理应用程序功能,而无需构建和维护通常与开发和启动应用程序相关的基础架构的复杂性。 按照此模子构建应用程序是实现“无服务器”体系结构的一种方式,通常在构建微服务应用程序时使用。
容器云:云原生里边核心概念容器云,容器云里边的两个核心,一个是Docker容器,一个是k8s的容器资源调度和编排。单纯的Docker容器只是一个IaaS资源层的东西。容器本身是比虚拟机更轻量化的资源隔离单位,虚拟机是独享具体的一个操纵体系,容器本身是架在操纵体系上面的,多个容器可以共享操纵体系,这是容器和虚拟机最大的区别。正是这个缘故起因容器本身的体积会比虚拟机小,创建、销毁、调度的速率也更比传统的虚拟机更快。容器本身是IaaS层的内容,所以必要联合k8s举行容器的资源调度和编排,来向上层提供PaaS层的服务能力。(当把容器和容器的编排、调度一起谈的时候就会变成Paas概念,当前最火的基于k8s和Docker形成的PaaS容器调度平台)。容器本身是共享底层的操纵体系,同时又能更好的做到CPU、内存、网络等资源的隔离。
1.4 Service Mesh
Service Mesh(服务网格):一个去中央化的服务管理框架。原来必要对服务、Api接口举行管理和管控,一般会用API网关将api接口注册和接入到api网关,由于 API网关本身是一个中央化的架构 ,所以所有的请求流量都可以通过API网关,这个时候API网关就很容易对流量举行拦截,同时对拦截以后的流量举行安全、日记、限流、熔断、链路监控等各种管控管理。当在去中央化的架构下面就没有这种会合化的流量管控点 ,所有对于流量的拦截就从API网关下沉到各个微服务中去,这就意味着必要在每个微服务端增加一个代理包,通过代理包来做流量的拦截,同时实现对流量的管控。当前在微服务服务网格的微服务管理里面也是同样的思路,比方开源Istio微服务管理框架,它会在为服务端下方一个sidecar(边车)代理,通过代理实现流量的拦截和管控。去中央化的管理仍然会有一个控制中央,控制中央仍然是中央化的,但是 实际的控制流和接口数据访问的消息流实现了分离,控制流只管服务的注册发现,实际的接口调用、服务访问是不通过控制中央的,纵然控制中央宕机也不会影响到接口服务的调用。
1.5 Serverless
Serverless(无服务器架构):起首在云原生发展到后期以后。云原生的核心就是实现从资源到服务不断的向上抽象,开发职员越来越不会接触到底层的IT基础设施,只会接触各种技术服务能力,这些技术服务能力在Serverless架构里叫做BaaS(后端能力即服务)。
Serverless带来的另外一个变化是:在传统的云原生架构开发下,基于DevOps、微服务和容器云开发应用仍然会选择一个开发框架,仍然会涉及到开发应用的数据层、逻辑层以及上层的展现层,比方三层架构、五层架构。到了Serverless无服务器化以后,开发框架、开发情况、多层架构这些内容全部扬弃。任何一个功能的实现的核心全部变成一个个代码片断,通过各个代码片断去实现功能。通过代码片断组合、组装来实现复杂业务流程,这是Serverless未来盼望达到的效果。这一块在Serverless里边对于FaaS层(Function as a Service)功能函数即服务。 注意:Serverless 是指 “无服务器架构”,这里的 “无服务器” 并不是指程序不必要服务器运行,而是指我们的开发工作不必要关注服务器底层的资源。