一、什么是Serverless

  定义:Serverless是一种无服务器的架构,区别于传统的Baas,SAAS,作为FAAS(函数即服务)而存在,函数由事件驱动触发并按需调用。

   按需调用:区别于传统的7x24小时运行的服务,Serverless只会在特定事件触发时运行,并按需收费。

   无需关注基础设施和底层资源:虽然称为无服务器的架构,但并不是完全的无服务器,只是人们不再操心运行所需的资源,只需关注自己的业务逻辑,即函数,并且为实际消耗的资源付费,而对于VM,容器和资源(如CPU,内存等资源)则完全交由第三方服务或平台去自动化管理。

二、Serverless特性

  (1)降低启动成本:区别传统的服务启动一堆初始化等动作,Serverless只需快速拉取容器部署准备一个函数的资源并启动。

  (2)新一代微服务:粒度细化至函数的服务

  (3)安全性高:对于虚拟机,容器,网络等资源的安全问题,完全由第三方采用高可靠的方式实现,用户无需关心。

  (4)提高开发效率:开发者只需关心自己的函数实现,免去了其他后顾之忧。

  (5)拓展性强:Serverless具备的弹性伸缩能力,为函数的自拓展和容灾提供了便利。

三、业界主流产品

  (1)AWS :提供一系列完全托管的服务,可以使用它们构建和运行无服务器应用程序。并提供了计算、API网关适配协议,数据库、存储、流处理、消息排队,公共服务等能力

  

  (2)Microsoft Azure:AWS 支持 Serverless 架构一段时间之后,Azure 作为竞品正稳步发展中。除了支持Serverless的众多特性外,Azure 提供快速构建Web端,移动端应用程序,以及实时流数据处理,文件处理和计划任务的自动化,更多内容请参考https://azure.microsoft.com/en-us/services/functions/

  

  (3)OpenWhisk :OpenWhisk 是一个开源项目,具有完整的可视性 FaaS 功能,可扩展也可定制。由于开源可拓展这一特性,自发布以来得到了广大开发者的欢迎,但是目前OpenWhisk的产品和社区还在不断完善中。

  

四、Serverless弊端

  (1)不适合业务逻辑复杂的应用:Serverless比较适合简单,运行时间短的应用或小程序,目前也没有成功的复杂系统的案例。

  (2)冷启动时间:函数在执行之前,都需要经过拉取容器,制作镜像并部署的过程,此过程占用函数调用的时间较长。

  (3)代码调试困难:目前已有的Serverless云开发平台,都面临一个巨大的问题,即在线debug代码,这是很多云开发平台共同的瓶颈。

  (4)CI/CD困难:在应用自动构建,代码自动构建上都有不小的难度。

五、Serverless设计原则

  (1)单一责任:函数应尽量保持执行责任单一,尽量少的对众多其他服务或函数形成依赖。

   (2)执行时长控制:Serverless是按需执行,按调用次数和时长来收费,所以设计的函数应尽量在毫秒或秒以内,减少递归等,避免造成资金浪费

认识与设计Serverless(一)的更多相关文章

  1. 认识与设计Serverless(二)

    一.设计Serverless的功能模块 第一节讲了Serverless一些概念与特性,废话居多,概念的东西了解过后要有设计与构思,才能学到精髓,一个Serverless平台的形成,涉及到很多模块的架构 ...

  2. 【转】OpenStack和Docker、ServerLess能不能决定云计算胜负吗?

    还记得在十多年前,SaaS鼻祖SalesForce喊出的口号『No Software』吗?SalesForce在这个口号声中开创了SaaS行业,并成为当今市值460亿美元的SaaS之王.今天谈谈『No ...

  3. Serverless 架构:用服务代替服务器

    Serverless 架构:用服务代替服务器 转载本文需注明出处:EAII企业架构创新研究院(微信号:eaworld),违者必究.如需 加入微信群参与微课堂.架构设计与讨论直播请直接回复此公众号:&q ...

  4. 腾讯云微计算实践:从Serverless说起,谈谈边缘计算的未来

    欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 作者:黄文俊,腾讯云高级产品经理,曾经历过企业级存储.企业级容器平台等产品的架构与开发,对容器.微服务.无服务器.DevOps等都有浓厚兴趣. ...

  5. 精读《Serverless 给前端带来了什么》

    1. 引言 Serverless 是一种 "无服务器架构",让用户无需关心程序运行环境.资源及数量,只要将精力 Focus 到业务逻辑上的技术. 现在公司已经实现 DevOps 化 ...

  6. 《Serverless架构-无服务单页应用开发》读后感

    本书的作者是[美]Ben Rady,译者郑赞美.简传挺,书中作者详细的介绍了如何使用html.js以及amazon提供的诸多云服务(Simple Storage Service(S3).Cognito ...

  7. 华为云对Kubernetes在Serverless Container产品落地中的实践经验

    华为云容器实例服务,它基于 Kubernetes 打造,对最终用户直接提供 K8S 的 API.正如前面所说,它最大的优点是用户可以围绕 K8S 直接定义运行应用. 这里值得一提是,我们采用了全物理机 ...

  8. InfoQ 趋势报告:架构和设计领域技术演变详解

    https://www.infoq.cn/article/R7lWXd0R4VFf3E0bB*38 本文概述了我们对当前“架构和设计”领域的看法,这个领域侧重于基础设施模式.技术框架模式的实现,以及软 ...

  9. 【译】Serverless架构 - 3

    原文: https://martinfowler.com/articles/serverless.html 消息驱动型应用 后台数据处理服务是一个不同的例子. 你要写一个需要快速响应UI请求的以用户为 ...

随机推荐

  1. linux定时任务cron 安装配置

    名词解释: cron是服务名称,crond是后台进程,crontab则是定制好的计划任务表. 软件包安装: 要使用cron服务,先要安装vixie-cron软件包和crontabs软件包,两个软件包作 ...

  2. Maven配置默认使用的JDK版本

    问题: 创建maven项目的时候,jdk版本是1.7版本,而自己安装的是1.8版本,从而导致无法使用lambda等Java8新特性. 每次右键项目名-maven->update project ...

  3. 虚幻4 - ARPG实战教程(第一季)

    在广受欢迎的的<虚幻4高速开发入门>视频教程之后.我收到了许多的反馈,当中大量的同学想要一个实战类的教程.于是,我花了一段时间准备之后,推出了新的一系列实战教程. 希望以深入浅出的方式.解 ...

  4. 超全面的JavaWeb笔记day05<xml&dtd&jaxp>

    0.表单提交方式(*****) button提交 超链接提交 事件 1.xml简介和应用(了解) 2.xml文档声明和乱码解决(*****) 文档声明 必须放在第一行第一列 设置xml编码和保存编码一 ...

  5. ios 6以后,UILabel全属性

    一.初始化 1 UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectMake(40, 40, 120, 44)]; 2       3 [s ...

  6. Android:控件布局(相对布局)RelativeLayout(转)

    相对布局常用属性: 子类控件相对子类控件:值是另外一个控件的id android:layout_above----------位于给定DI控件之上android:layout_below ------ ...

  7. 在map中一个key中存多个值

    一说到map都想到key-value键值队存在.key可以为最多一个null的key. 今天开发中一个业务需求,在map中一个key中存多个对象. 我首先想到Map<String,List> ...

  8. 如果我们的MCU调试不通过,我们该如何测试?(未完待续)

    我们拿到一款MCU,首先在选型的时候对他们都会有一个大概的了解,首先我们知道它多大与的FLASH,多大的RAM,是否与我们的项目适合,资源上是否足够,内频是否足够,运行速率能否达到标准,性能怎么样,比 ...

  9. 怎样安装Linux操作系统

    linux是免费的.其实这里的免费只是说linux的内核免费.在linux内核的基础上而产生了众多linux的版本.Linux的发行版说简单点就是将Linux内核与应用软件做一个打包.较知名的发行版有 ...

  10. 将display设置为inline-block之后产生间隙然后换行问题的解决方法

    在我们会用display的时候,inline-block肯定不陌生吧,我今天在做项目的时候,用了inline-block,使a标签可以自定义宽度,但是随之而来的问题就是换行的BUG,如下图 特地加了一 ...