什么是微服务(Microservice)

目录

什么是微服务(Microservice)

微服务是完美的解决方案吗

名词解释

云计算三层架构

应用层(SaaS)

平台层(PaaS)

基础设施层(IaaS)

服务网格(ServiceMesh)

Sidecar

鸣谢

bilibili       


什么是微服务(Microservice)

微服务是一种现代化的软件架构,让应用代码以可管理的小段形式进行交付,彼此独立。

传统架构(单体架构)遇到的问题:

  • 开发效率低,维护难,部署不灵活(生产效率低)
  • 一个服务出现故障会导致整个应用下线(稳定性不高)
  • 无法满足高并发情况下的业务需求(扩展性不够)

微服务是完美的解决方案吗

引入服务治理成本

  • 服务发现:服务发现

原先的服务聚集在一块,明确知道彼此存在。现在引入一个新的微服务,部署在网络的一个点上,其他服务要调用,首先要找到这个新服务,因此需要一个服务发现的能力。

  • 服务调用:使用RPC/Restful协议进行通信

原先在本地,现在在网络的角落里,需要进行网络的通信。引入通信的成本

  • 服务追踪:链路追踪

若干个小服务需要梳理之间的关系。一个服务调用多次,若出错,要能追踪到哪个环节出错。

  • 服务容错:重试/熔断/服务降级

系统的弹性增强了,但是一个服务出错了,其他的服务并不是完全不受影响。如支付服务挂掉了,订单服务肯定受到影响。

  • 服务安全:服务鉴权
  • 服务部署:顺序部署/滚动部署/蓝绿/金丝雀

原先都在一块,直接部署就行。现在拆分若干个,可能存在顺序问题。

  • 数据调用:分布式事务

原先可能只有一个数据库,现在每个服务可能各有一个数据库。

  • 分组限流:路由/限流

因此各微服务框架应运而生

名词解释

云计算三层架构

SaaS、PaaS、IaaS。

以做披萨比喻,四种方式

  • 买厨房、做披萨饼皮、烤披萨。(家庭手工自制)
  • 用别人的厨房、做披萨饼皮、烤披萨。(厨房即服务)
  • 用别人的厨房、用别人的披萨饼皮、烤披萨。(烘焙即服务)
  • 买披萨吃。(披萨即服务)

四种方式对应

  • 传统本地部署:什么都自己做
  • 基础设施即服务(IaaS):服务器等硬件部分选择外包,租用别人的
  • 平台即服务(PaaS):包括服务器,数据库、操作系统等也搭建好了,可以直接开发软件
  • 软件即服务(SaaS):软件开发完成,买来直接用

aaS = as a service  ,xx 即服务

应用层(SaaS)

Software as a Service,软件即服务

比喻:直接买炒鸡蛋。

举例:百度网盘

平台层(PaaS)

Platform as a Service,平台即服务

纯PaaS平台越来越少,出现更多的xx+PaaS,这些平台处在PaaS和SaaS两者中间,既比SaaS要灵活,又比PaaS简单。

  • aPaaS,如无代码
  • iPaaS,打通了各个SaaS之间的API,让数据和流程可以在不同SaaS之间流转

比喻:一个厨房有蒸炸炒的功能,只要给材料,就能得到成果。比如给一个鸡蛋,选择蒸就得到一个蒸鸡蛋,选择炒就得到一个炒鸡蛋。这个多功能的厨房就是一个平台。

提供PaaS服务的公司做好了这些基础功能,我们不需要自己实现这些功能,只要给材料,就能得到自己想要的东西。

基础设施层(IaaS)

Infrastructure as a service,基础设施即服务

租用一个服务器,如阿里云服务器。并不会收到一个服务器,而是通过远程来访问租用的服务器。

通过远程操控服务器,如硬盘不够用,则多租一块硬盘。

服务网格(ServiceMesh)

服务网格是一个工具,在平台层向应用程序增加可观察性、安全性、可靠性功能,而不是应用层。

服务网格是可配置的、低延迟基础设施层,旨在处理基于API的应用架构服务之间的大量网络通信。(显然此处的基础设施层的含义应该为平台层更为合理)

本质是将服务治理能力下沉到基础设施的过程。

Sidecar

边车,抗日剧中摩托车驾驶座旁边的位置。

在服务网格中搭载在微服务旁边。

 

鸣谢

bilibili       

假正经的矫情少年

王壮-先进版

十分钟变大师-Moon
        

你可能感兴趣的:(微服务,架构,云原生)