毕业刚入职,看到公司的各种发布,部署平台,眼花缭乱,看文档的过程中也看到了很多不懂的名词,了解了之后做一下记录
名词解释
- serverless: 字面意思是“无服务器”,即开发者(开发公司)不用自己的机房服务器,采用云服务器厂商提供的云服务器
- PaaS:platform as a service,平台即服务,指提供一个软件部署平台,用户使用平台部署软件时,无需关心部署的硬件和底层细节,只需关注业务逻辑
- 金丝雀发布:也叫灰度发布。意思是发布新版本时,通过对流量分流,先让一小部分用户能用到新版本(可理解为抢先体验),等到没有大问题之后再推广到全体用户。这和过去下矿时先用金丝雀来检验矿井下面是否有毒气体超标的行为相似,因此得名。
- 微服务:一个整体架构的的应用程序,可能包含了很多功能。举个简单例子,一个图书馆的借书系统,要管理借书卡(比如新增或修改一个账号,查询一个账号借的书),要管理图书(比如借书,还书,增加库存)。这么一个简单的系统,功能不复杂,采用整体架构没问题。但是当一个系统功能多起来,开发和维护的人员肯定也要多。如果这时还采用整体架构,当各个功能都有改动,要发新版本的时候,会很痛苦。微服务就是把系统按照功能拆分开来,使得拆分出的部分互相解耦,每个部分就是一个微服务,例如单独拆出来个微服务管理借书卡,单独拆出来个部分管理图书。这两部分可以通过RESTful API等方式进行通信,但是一个部分做出改动时,不会影响另一个部分的正常使用。这就是微服务
- BFF层:Backend for Frontend,服务于前端的后端。由于微服务的拆分,或者多端(PC,移动等等)需要从后端返回的数据并不一致,使得前端在请求后端的接口时,通常要做聚合(把多个接口返回的数据组合起来)或裁减(对接口返回的数据做过滤,只用到一部分)。为了解决这个麻烦,BFF就相当于一个中间层,代替前端去请求后端的接口,并且对数据做聚合和裁剪等等,然后将直接可用的数据返回给前端,同时还能起到屏蔽后端修改的作用(当后端的接口做出什么改动时,BFF层做出修改,使得前端无需做出改动)