>serverless技术特点<
-首先我们知道,原本来说,固定的服务器(一般有物理机器、虚拟机等)就相应的固定了资源(包括内存、CPU、磁盘等等。)
**serverless并非真的没有服务器!
“无服务器”提供Serverless服务的平台拥有的物理无尽大(相对于单个或者一批业务),那么,完全处于一种按需分配的状态,这个点云原生也是类似的,那为什么不叫原来的云原生,而是我们产生新的技术serverless呢?
那是因为,在这套技术下,服务器与应用不再捆绑,将应用与物理机器尽可能解耦,并且,要求就是实现对服务器资源对用户的透明,随时起,随时用。那么,就产生了以下几个明确的特点:
1.由 事务需求 驱动,并且产生相应的 装卸操作
这里的事务包括,Http请求到达、或者存储服务文件更新等。
-在serverless构架下,应用不需要always online! 事务来了,那我就按照需求去加载和执行,因此,Online的产生,完全有事务操纵。而事务的种类不同,就关联不同的函数Function,产生事务驱动的构架。
-而之前说过了,应用与我们可怜的服务器解耦了,那么服务器好比“光杆司令”,空有资源,没有部署和配置。
-就好像一栋样板间,你需要拿来临时当医院,于是迅速给你购置床和医疗机器,配备医生。 需要拿来当宾馆,那就给你装载床、电视机和衣柜等。但是,这些操作必须要等具体“事务”过来,我才知道给你装载什么,不然我就不做,空着样板间,把买材料等等布置的钱省下来。
并且部署以后,这个布置不会长期存在,比如我们某个著名传染疾病,他被控制住了,那么床、医疗设备和医生就会被转出,这部分维持费用不再需要。(当然这个需要评估短时间内会不会再次用,进行合理的“下线”安排,这个以后再说)。评估之后,该停止停止,该卸载卸载,而这些都是自动的!
2.状态不在本地持久化
上文提到,为了省钱,我们把 样板房——光杆司令服务器 里面的配置啥的(应用等)全卸载了,那么自然,上一次产生的状态就没办法保存,也没地儿保存,服务器被用过之后再次重回大海(我们的平台),不再拥有姓名,因此,传统意义上的状态持久化将不复存在。(说到这里,当我们反复重新起新的服务器,无比就会产生冷启动延迟和状态找回的问题,这个后面再说)
3.会话不保持
上文提到,我们的状态不持久化,事务曾经拜托过的服务器已经重回大海,杳无音讯,那么,我们的新事务(比如一个新的请求)到来,
找到的可能是一个新的服务器,也可能永远也遇不上原来的服务器,这对一些事务(比如依赖无状态应用的)来说是无所谓的,但是对有一些来说,其实不太合适。
-就好比,我的事务是需要去便利店买一瓶水,那么随便哪个便利店,里面随便什么设置,我都能买瓶水;但是,当我要不断去复诊我的疑难杂症,我就必要找到我的主治医生,非他不可,那么,我就需要我的专属医生 服务器,某医院,会操作某技术,配备有些仪器(装置),以及,了解我情况,有我的治疗记录(状态)
根据业界的统计,在商业和企业数据中心里的典型服务器,日常仅仅只提供了5%~15%的平均最大处理能力的输出。这是一种算力资源的巨大浪费。
从服务提供成层级来看,serverless比其他的服务多一层函数:
缩扩容 --> 算力效率