Serverless学习笔记
Serverless
闲言碎语
前段时间看了一些Serverless
的文章,恰好最近又听了一门Serverless
的应用实践课程,就把笔记拿出来和大家分享一下,如表述有误还请各位斧正
大家关心的问题
- Serverless是什么
- 为什么Serverless这么火
- 与前端的关系
- 能帮助前端解决什么问题
- 该不该用Serverless来承载业务
- 扩缩容策略是什么
因笔者能力有限,无法全都回答上,其它的就交给评论区的各位大牛了
Serverless 是什么
Serverless直译为中文是“无服务器”,但是实际上它仍需要服务器,只不过服务器的管理以及资源分配部分对用户不可见
Serverless 架构即“⽆服务器”架构,它是一种全新的架构方式,是云计算时代⼀种⾰命性的架构模式
相关概念
英文 | 中文 | 解释 | 与Serverless联系 |
---|---|---|---|
FaaS ---- Function as a Service |
函数即服务 | 无服务计算的一种形式 是在无状态容器中运行的事件驱动型计算执行模型 |
形式 |
Function Compute | 函数计算 | 事件驱动的全托管计算服务 | 形式 |
Cloud Function | ️云函数 | 放在️上管理的一个函数 | 命名 |
传统开发
开发流程
开发之外的问题
对开发团队的要求越来越高
上线后
- 运维复杂
- 测试复杂
- 扩展复杂
- 稳定安全的运行
解决上述困境的方案:抽象+上云
技术变革,思想先行
名词解释(云计算中的一些概念):
- On-Premise: 本地部署
- IaaS: 基础设施即服务
- CaaS: 通信即服务
- PaaS: 平台即服务
- SaaS: 软件即服务
云原生特点:
- 业务开发变轻,变薄,聚焦业务逻辑
- 基础设施变重,变厚,变标准
云计算的一些特点:
- 节约成本
- 缩短应用部署时间
- 系统自动扩容
- 业务升级不中断
- 故障自动检测定位
- 。。。
“上云”已成为各个行业技术变革的必经之路
云的未来 - Serverless
追求更低的心理成本,就是能力闭环
Serverless 可能是目前资源抽象最高级别,为能力闭环带来了可能性
价值
Serverless 真正的价值不在于节省了成本,而在于节省了时间,真正的价值在于时间效率,而不是成本效率真正的价值在于时间效率,而不是成本效率
传统云计算和Serverless云计算最主要的区别在于客户是否需要为未被使用或者未被充分使用的资源支付费用
以前,无论是内部数据中心还是云上,我们都需要提前预测容量和资源需求,并且提前准备好
在传统开发中,我们需要提前启动服务器以便随时执行调整镜像大小的服务
而在Serverless配置中,只需要调整代码执行的时机,即只在函数被调用时候执行
Serverless计算服务将函数作为输入,执行逻辑,返回输出,之后关闭。即只需要为函数实际执行所消耗的资源付费,即用即付(Pay-as-you-play),只用为实际使用的资源付费.
总结
Serverless是一种思想,不一定是所谓的 FaaS + BaaS(后端即服务)
1. 为什么Serverless这么火
在中国,能算清账的公司已经打败了99%的公司
现代软件开发成本非常的高,主要就在于 “成本意识”
函数即服务(FaaS)作为 Serverless 时代重要的发展⽅向,能够从⼯程效率、可靠性、性能、成本等⽅方⾯给开发者(企业)带来巨大的价值,尤其是能够极大地提升研发效率。
因此,拥抱FaaS成为开发者关心的重要技术领域
2. 能帮助前端解决什么问题
Node.js的出现 让前端开始有了成本意识
是否在项目中使用Node的心理活动:
- 用: 具备全栈视角,参与更多的架构决策,有更多优化手段
- 不用: 担心出问题,维护成本高
本质问题:
生产关系 与 生产力 的问题
Node.js可以解决简单的 能力自治 , 不依赖于后端人员(业务中前期,后端人员少时)
随着业务发展,成熟的业务追求更高的稳定性,会逐渐抛弃 Node.js
Node.js带来了 运维成本高
的问题,是Node.js在企业落地的一个阻碍
理想情况是开发人员只关心业务逻辑:
- 常规应用
- 业务逻辑(开发人员负责)
- 外部服务集成(开发人员负责)
- 基础设施管理(开发人员负责)
- Serverless应用
- 业务逻辑(开发人员负责)
- 外部服务集成(云商负责)
- 基础设施管理(云商负责)
对于前端开发者而言,只是想要个接口,或者是包装一个接口,不一定要了解Node Web框架
Node.js成也Eventloop败也Eventloop,本身Eventloop是黑盒,开发将什么样的代码堆进去你是很难全部覆盖的,偶尔会出现Eventloop阻塞的情况,排查起来是极为痛苦的
利用Serverless,可以有效防止Eventloop阻塞。比如加密是常见场景,但本身执行效率是非常慢的。如果加解密和你的其他任务放到一起,是很容易导致Eventloop阻塞的
Serverless能够让依赖Node服务的前端极大减低成本,开发者只需关注业务逻辑,无需关心运维,扩容,Web框架
本地开发一个函数,然后通过CLI发布到Serverless云上,必然是一个趋势
参考
Serverless学习笔记的更多相关文章
- 学习笔记之Coding / Design / Tool
CODING 学习笔记之代码大全2 - 浩然119 - 博客园 https://www.cnblogs.com/pegasus923/p/5301123.html 学习笔记之编程珠玑 Programm ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- PHP-自定义模板-学习笔记
1. 开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2. 整体架构图 ...
- PHP-会员登录与注册例子解析-学习笔记
1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...
- 2014年暑假c#学习笔记目录
2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...
- JAVA GUI编程学习笔记目录
2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...
- seaJs学习笔记2 – seaJs组建库的使用
原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...
- CSS学习笔记
CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...
- HTML学习笔记
HTML学习笔记 2016年12月15日整理 Chapter1 URL(scheme://host.domain:port/path/filename) scheme: 定义因特网服务的类型,常见的为 ...
- DirectX Graphics Infrastructure(DXGI):最佳范例 学习笔记
今天要学习的这篇文章写的算是比较早的了,大概在DX11时代就写好了,当时龙书11版看得很潦草,并没有注意这篇文章,现在看12,觉得是跳不过去的一篇文章,地址如下: https://msdn.micro ...
随机推荐
- ElasticSearch7.3学习(一)----采用restful风格 基本的增删查改语句
1 .新建图书索引 首先建立图书索引 book 语法:put /index PUT /book 结果 2.新增图书 :新增文档 语法:PUT /index/type/id PUT /book/_doc ...
- Python脚本之批量复制文件并同时支持重命名
import os import shutil import time start_time = time.time() # 需要被复制的文件夹 old_path = r'C:\old_dir' ne ...
- 小知识:Oracle中的层次查询
使用Oracle中的start with .. connect by prior ..语句可以轻松实现. 下面通过scott用户下的emp来做演示,使用自己的一个19c测试环境,结果发现默认并没有sc ...
- 《ASP.NET Core 微服务实战》-- 读书笔记(第6章)
第 6 章 事件溯源与 CQRS 在本章,我们来了解一下随着云平台一同出现的设计模式 我们先探讨事件溯源和命令查询职责分离(CQRS)背后的动机与哲学 事件溯源简介 事实由事件溯源而来 我们大脑就是一 ...
- Hadoop组件兼容性
(1)HBase和Hadoop.zookeeper.JDK兼容版本 参考网址: https://hbase.apache.org/book.html 1)JDK和Hbase的兼容版本 对于JDK,最 ...
- Python-目录下相同格式的Excel文件合并
最近在客户现场接到一个任务,需要将全国所有省份的数据进行合并.目录是分层级的,首先是省份目录.然后地级市目录.最里面是区县目录.需要将每个目录中的数据进行合并,然后添加4列数据,并将某一个列的数据进行 ...
- C++ map自定义比较函数遵守严格弱序
C++ map自定义比较函数遵守严格弱序 问题背景及定位 背景:这个问题是在将tablesaw(一个Java的数据处理项目)迁移到C++时出现的. 问题位置:SplitOn()函数,在数据流水线中的a ...
- NC50454 A Simple Problem with Integers
题目链接 题目 题目描述 给定数列 \(a[1],a[2], \dots,a[n]\) ,你需要依次进行q个操作,操作有两类: 1 l r x:给定l,r,x,对于所有 \(i \in[l,r]\) ...
- NC16696 [NOIP2001]统计单词个数
题目链接 题目 题目描述 给出一个长度不超过200的由小写英文字母组成的字母串(约定;该字串以每行20个字母的方式输入,且保证每行一定为20个).要求将此字母串分成k份( 1 < k ≤ 40 ...
- CSS隐藏元素的方法
CSS隐藏元素的方法 使用CSS隐藏元素的主要方式有diaplay: none;.opacity: 0;.visibility: hidden;.position: absolute; overflo ...