云原生(Cloud Native)
云原生(Cloud Native)是构建和运行应用程序的一套技术体系和方法论。它是基于分布式部署和统一运营的分布式云,以容器化(Docker )、微服务(DDD方法论)、DevOps,持续交付(CI、CD)为基础,而建立的一套云技术产品体系。云原生是一种新型技术体系,是云计算未来发展方向
Serverless
Serverless 是云计算的一种模型 [1]。以平台即服务(PaaS)为基础,无服务器运算提供一个微型的架构,终端客户不需要部署、配置或管理服务器服务,代码运行所需要的服务器服务皆由云端平台来提供 [1], Serverless computing(无服务器运算,又被称为函数即服务 Function-as-a-Service,缩写为 FaaS) [1],以 Amazon Lambda 为典型服务
作为云计算的一种演进方式,无服务器Serverless具有如下四个特性 [1]:no server management (用户不需要管理服务器),pay-for-value services (按价值付费) [1], continuous scaling (能自动持续扩容),和 built-in fault tolerance (内置高可用和容错能力)
Serverless 是指 “无服务器架构”,这里的 “无服务器” 并不是指程序不需要服务器运行,而是指我们的开发工作不需要关注服务器底层的资源,就仿佛服务器不存在一样。
而 Serverless 具有极致弹性、按量付费、低成本运维等特性,Serverless 实际上是 BaaS 与 FaaS 的组合
Service mesh
服务网格(service mesh)是一个专用的基础设施层,它的目标是 “在微服务架构中实现可靠、快速和安全的服务间调用”。 它不是一个“服务的网格”,而是一个服务可以插入其中的“代理的网格”,以实现网络的完全抽象化。在典型的服务网格中,这些代理作为sidecar(边车)注入到每个服务部署中。服务不直接通过网络调用服务,而是调用它们的本地sidecar代理,后者代表服务管理请求,从而封装了服务间调用的复杂性。相互连接的sidecar代理实现了所谓的“数据平面”。这与用于配置代理和收集指标的服务网格组件形成对比,这些组件称为服务网格控制平面
Sidecar 是分布式架构中云设计模式的一种,比如日志记录、监控、流量控制、服务注册、服务发现、服务限流、服务熔断等在业务服务中不需要实现的控制面功能,可以交给“边车”,业务服务只需要专注实现业务逻辑即可。如上图那样,应用服务你只管开好你的车,打仗的事情就交给边车上的代理就好。这与分布式和微服务架构完美契合,真正的实现了控制和逻辑的分离与解耦。
就好像一个厨师不是必须去关心食材的产地、饭店的选址、是给大厅的客人上菜还是给包房的客人上菜…他只需要做好菜就好,虽然上面的这些事他都可以做。而传统的软件工程就像是一个小饭店的厨师,他即是老板又是厨师,既需要买菜又需要炒菜,所有的事情都要他一个人做,如果客人一多,就会变的手忙脚乱;而控制与逻辑分离的软件,其逻辑部分就像是高档酒店的厨师,他只需要将菜做好即可,其他的事情由像”边车“这样的成员帮其处理。
Service Mesh(服务网格),是如何力挽狂澜,近乎完美地解决微服务之间的通讯问题了。
把微服务的各个service(服务)节点,用一张mesh(网格)连接起来。就这