专栏首页一个会写诗的程序员的博客架构师们说的 Serverless 到底是什么?

架构师们说的 Serverless 到底是什么?

无服务器(Serverless)计算是什么

Serverless 领域分层

自下而上分别是资源层、DevOps 层和框架及运行时层。

Serverless = FaaS + BaaS

从技术上看 Serverless 就是 FaaS 和 BaaS 的结合。

简单来讲,FaaS(Function as a Service) 就是一些运行函数的平台,比如阿里云的函数计算、AWS 的 Lambda 等。

BaaS(Backend as a Service)则是一些后端云服务,比如云数据库、对象存储、消息队列等。利用 BaaS,可以极大简化我们的应用开发难度。

Serverless 运行在 FaaS 中,使用了 BaaS 的函数。

Serverless 的主要特点

1、事件驱动

函数在 FaaS 平台中,需要通过一系列的事件来驱动函数执行。

2、无状态 因为每次函数执行,可能使用的都是不同的容器,无法进行内存或数据共享。如果要共享数据,则只能通过第三方服务,比如 Redis 等。

3、无运维

使用Serverless我们不需要关心服务器,也不需要关心运维,这也是serverles思想的核心;

4、低成本

使用 Serverless 成本很低,因为我们只需要为每次函数的运行付费。函数不运行,则不花钱,也不会浪费服务器资源过度

Serverless 开发流程

Serverless 的优点和缺点

无服务器的业务逻辑实现是事件触发的代码,并且在无状态计算容器中执行。 这种架构通常称为功能即服务(FaaS)。

FaaS(Function as a service 函数作为一种服务) 本质上是一个小程序或函数,它执行由事件触发的小任务,而不像单个应用程序那样做很多事情。因此,在FaaS架构中,我们将应用程序分解为小型,自包含的程序或功能,而不是在PaaS上运行并执行多种功能的单一应用程序。例如,API中的每个端点都可以是一个单独的函数,我们可以按需运行这些函数,而不是全时运行应用程序。

常见的方法是在多层体系结构中编写API,类似于三层体系结构,其中代码分解为表​​示,业务和数据层。所有路由都将在业务层中触发相同的处理函数,并且数据将被处理并发送到数据层,数据层可以是数据库或文件。

在FaaS系统中,预计函数将在几毫秒内启动,以便处理各个请求。相比之下,在PaaS系统中,通常有一个应用程序线程可以长时间运行,并处理多个请求。 FaaS服务按功能的每个执行时间收费,而PaaS服务按服务器应用程序运行的线程的每个运行时间收费。

在微服务架构中,应用程序松散耦合,细粒度和轻量级。微服务诞生的原因是将整体应用程序分解为小型服务,以便可以独立开发,管理和扩展。但FaaS更进一步,将事情分解为甚至更小的称为功能的单位。趋势非常明确:工作单位越来越小。

无服务器架构的优点

为什么有人会使用无服务器架构(如AWS Lambda或OpenWhiz)构建应用程序?

主要原因是应用程序的执行效率,扩展速度,以及最重要的成本。让我们看一些重要的专业人士,然后继续前进。

1.更快的上市时间我们可以更快地将应用程序推向市场,因为OPS变得更加简单,并且将帮助开发人员专注于他们的开发。 OPS团队无需编写可以处理扩展或担心底层基础架构的代码。

此外,团队可以在第三方集成的帮助下更快地构建应用程序,例如OAuth,Twitter和Maps等API服务。

2.高度可扩展性每家公司都希望他们的应用程序能够更好地运行,零停机时间,并且随着流量的增加而快速,轻松地扩展,但是通过单一的应用程序开发,它可能变得非常困难。随着应用程序负载的增加,Ops团队必须在扩展底层基础架构时保持警惕。由于交通量的增加,停机时间浪费了大量的时间和金钱。

但无服务器计算具有高度可扩展性,可以在几秒钟内对应用程序进行缩放和缩放。

3.低成本在无服务器计算中,开发人员仅在功能运行时付费,与IaaS和PaaS不同,IaaS和PaaS为每台服务器24/7收费。这对于拥有庞大的应用程序,API或微服务设置的公司来说非常有用,这些应用程序,API或微服务目前全天候运行并且100%的时间使用资源,无论是否需要。但是对于无服务器,我们可以按需执行功能并共享资源,而不是全天候运行应用程序,因此我们可以大大减少空闲时间,并使应用程序运行得更快。

4.延迟和地理定位

改进应用程序的可扩展性取决于三个因素:用户数量,用户位置和网络延迟。在当今世界,应用程序拥有全球受众,这可能会增加延迟。但是无服务器平台可以大大减轻延迟的危险。使用无服务器时,实例化容器以在每个事件调用时运行函数,并且可以在用户的​​地理区域附近创建此容器,这将自动提高应用程序的性能。

无服务器架构的缺点

1.复杂性增加

我们使用应用程序越精细,它就越复杂。每个函数的代码可能会变得更简单,但整个应用程序将变得更加复杂。比如说,我们将应用程序分解为10个不同的微服务。我们必须管理10个不同的应用程序,而在单个应用程序中,它只是一个必须管理的应用程序。

2.缺乏工具支持

假设我们将单片应用程序分解为50种不同的功能。仍然有各种各样的流程和工具来管理,记录,监视和部署整体应用程序。由于无服务器是市场上的新产品,因此监控或记录运行几秒钟的应用程序是有限的并且具有挑战性,但是随着时间的推移,将会有许多有效的方法来实现这一点。

  1. 体系结构的复杂性

很难决定函数的粒度,并且评估,实现和测试以检查我们的首选项是耗时的。

  1. 管理太多功能会很麻烦,同时忽略粒度会导致我们设置迷你巨石。

5.实施中的缺点无服务器的最大挑战是集成测试难。

我们将为应用程序编写许多函数,但是如何将它们集成到应用程序中?当然,在此之前,我们如何测试它们如何有效地协同工作?

DevOps 无服务器DevOps的DevOps是另一个流行语很长一段时间。与无服务器一样,DevOps也是一个令人困惑的术语。很多人对DevOps有很多不同的看法。有人说DevOps只是工具,有些人认为DevOps包含一些流程, 甚至IaaS和PaaS也属于DevOps的范畴。

参考资料

https://blog.csdn.net/happyfreeangel/article/details/83713623 https://www.jianshu.com/p/92632d6c2269

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 第7章 面向对象编程(OOP)

    7.2 类与继承 7.2.1 类 7.2.1.1 抽象类 7.2.1.2 接口 7.2.1.3 枚举 7.2.1.4 注解 7.2.1.5 静态类与...

    一个会写诗的程序员
  • 《Spring Boot开发:从0到1》第11章 Spring Boot应用监控第11章 Spring Boot Actuator与应用监控

    Spring Boot的Actuator 将应用的很多信息暴露出来,如容器中的 bean,自动配置时的决策,运行时健康状态, metrics等等。Actuato...

    一个会写诗的程序员
  • Spring Boot 结合 spring data jpa中的 DTO 映射查询《Spring Boot 开发实战》

    我们知道,在 MyBatis 中直接 DTO 映射查询的时候,写起来非常简单。只要字段对应上即可:

    一个会写诗的程序员
  • 移动应用开发的五个致命的神话

    虽然手机应用程序开发不再是新的,仍然有许多误解应用发展。一些信仰只不过是被误导的,别人是错了。 当企业和企业家把时间和金钱浪费在没有人使用的应用程序,通常因为他...

    用户1289394
  • 「应用架构」应用程序架构的当前趋势

    本文有些不是最最新的,但是方法和思路也有借鉴意义,稍后会介绍Gantner的最新应用架构趋势。

    首席架构师智库
  • 在苹果应用商店的17个应用程序中发现iOS Clicker Trojan

    Wandera Threat Labs研究人员发现有十多个iOS应用程序感染了Clicker Trojan(点击木马)恶意代码并在苹果的应用商店传播。其使用和安...

    FB客服
  • 渐进式Web应用程序的深入概述

    如果您是Web开发人员,您可能已经了解渐进式Web应用程序(PWA)或已经实现了自己的应用程序。 如果您不熟悉,本文将深入概述渐进式Web应用程序的实现原理,以...

    葡萄城控件
  • 云应用程序很慢?原因在应用,而不是云

    上午7点,你早早地赶到办公室,希望在没有他人访问公司公有云的时候,库存应用程序能做好更改的准备。然而,即使早上这段时间只有少量的用户在线,应用的性能仍然乏善可陈...

    静一
  • 企业选择Html5做移动开发要慎之又慎

    从Html5问世的那天起,Html5的神奇功能就被无限放大,曾有分析师认为:Html5将开启移动互联网的无界之争,可是FaceBook抛弃Html5时,人们才幡...

    人称T客
  • IIS7的应用程序池

    最近将原来的系统迁移到IIS7.5上了,发现AspNetUpload只能运行在"程序程序池"的"经典"模式之下,采用"集成"模式后,AspnetUpload....

    菩提树下的杨过

扫码关注云+社区

领取腾讯云代金券