什么是Serverless架构

什么是Serverless架构,第1张

Serverless(无服务器架构)是指服务端逻辑由开发者实现,应用运行在无状态的计算容器中,由事件触发,完全被第三方管理,其业务层面的状态则存储在数据库或其他介质中。

Serverless可以使开发者更聚焦在业务逻辑,而减少对基础设施的关注。

Serverless通常包含了两个领域 BaaS(Backend as a Service)和 FaaS(Function as a Service)

BaaS是一种广泛依赖于第三方应用和服务的无服务器计算方法。BaaS供应商可以提供加密、用户认证、云数据库的使用。这些服务可以通过调用云供应商提供的API进行访问;相比自己重新开发,这些功能可以更方便地整合到各个类型的系统中。

FaaS 是一种事件驱动的由消息触发的服务,FaaS 供应商一般会集成各种同步和异步的事件(如AWS的SNS),通过订阅这些事件,可以触发指定的函数运行,例如当前使用很广泛的 AWS 的 Lambda函数。

Serverless架构的优点

降低运营成本:

Serverless是非常简单的外包解决方案。它可以让您委托服务提供商管理服务器、数据库和应用程序甚至逻辑。由于这个服务使用者的数量会非常庞大,于是就会产生规模经济效应。在降低成本上包含了两个方面,即基础设施的成本和人员(运营/开发/维护)的成本。

降低开发成本:

Serverless作为一种云服务,使得整个应用程序组件被商品化。

扩展能力:

横向扩展是完全自动的、有弹性的、且由服务提供者所管理。从基本的基础设施方面受益最大的好处是,您只需支付您所需要的计算能力。

更简单的管理:

Serverless架构明显比其他架构更简单。更少的组件,就意味着您的管理开销会更少。

有效利用计算资源:

据《福布斯》的统计,在商业和企业数据中心的典型服务器仅提供5%~15%的平均最大处理能力的输出。这无疑是一种资源的巨大浪费。Serverless让服务提供商提供我们的计算能力最大限度满足实时需求,更有效地利用计算资源。

Serverless架构的缺点

状态管理:

要想实现自由的缩放,无状态是必须的,而对于有状态的服务,使用serverless这就丧失了灵活性。

延迟:

Serverless应用程序是高度分布式、低耦合的,这就意味着延迟将始终是一个问题,单纯使用serverless的应用程序是不太现实的。

本地测试:

Serverless应用的本地测试困难是一个很棘手的问题。虽然可以在测试环境下使用各种数据库和消息队列来模拟生产环境,但是对于无服务应用的集成或者端到端测试很困难。

spring的作用

Spring是一个开源的轻量级的应用程序开发框架,其目的是简化企业的应用程序开发,降低侵入性,Spring提供的IOC和AOP功能,可以将组件之间的耦合度降到最低,便于后期的维护和升级,实现了软件的高内聚低耦合思想。

我们使用Spring框架开发的时候不仅可以使用Spring本身提供的功能外,还可以使用第三方框架和技术来整合应用,可以自由的选择采用哪种技术去开发。

spring使用方法

1.下载源码

spring-framework-3.2.5.RELEASE

Spring必须要引入的jar文件有5个,分别是:

commons-logging-1.1.3.jar 日志管理

spring-beans-3.2.5.RELEASE.jar bean节点

spring-context-3.2.5.RELEASE.jar spring上下文节点

spring-core-3.2.5.RELEASE.jar spring核心功能

pring-expression-3.2.5.RELEASE.jar spring表达式相关表

2.配置

核心配置文件是:applicationContext.xml或者bean.xml,一般都是前者,JavaBean对象在这里面被创建,然后在java中调用就可以了。

假设已经存在一个User的JavaBean代码,需要创建对象,然后在java中使用。

3.使用API

随着服务器开发技术的不断发展,微服务架构技术在各个方面都有了很大的技术突破。

今天,电脑培训http://www.kmbdqn.cn/就一起来了解一下,在互联网大环境下的微服务系统架构的发展趋势。

1.服务网格白热化服务网格是一个专注于服务间通信的基础设施层,也是目前受关注的与云原生有关的话题。

随着容器的普及,服务拓扑变得越来越动态化,这对网络功能提出了更多的要求。

服务网格通过服务发现、路由、负载均衡、健康检测和可观察性来管理流量,简化容器与生俱来的复杂性。

随着HAProxy、traefik和NGINX逐步把自己定位成数据平面,服务网格也变得越来越流行。

尽管服务网格还没有得到大规模部署,但确实有些企业已经在生产环境中运行服务网格。

另外,服务网格不仅可以用在微服务或Kubernetes环境中,也可以被用在VM和无服务器架构的环境中。

例如,美国国家生物技术信息中心虽然没有使用容器,但他们使用了Linkerd。

2.事件驱动架构的崛起随着业务场景的不断变化,我们已经看到了基于推送或事件的架构正在成为一种趋势。

服务向订阅事件的观察者容器发送事件,容器异步做出响应,事件发送者可能对此一无所知。

与请求响应式架构不同的是,在基于事件的系统架构中,发起事件的容器并不依赖下游的容器,它们的处理过程和加载的事务与下游容器的可用性或完成情况无关。

这种架构的另一个好处是,开发者可以更加独立地设计各自的服务。

3.安全模型的变化因为对内核访问方面的限制,部署在容器中的应用程序相对安全。

在VM环境中,虚拟设备驱动器是暴露可见性的地方。

而在容器环境里,操作系统提供了系统调用,信号源也变得更加丰富。

之前,管理员需要在VM中安装代理,但那样太复杂了,需要管理太多的东西。

容器提供了更清晰的可见性,相比VM,与容器的集成会更加容易。

4.从REST到GraphQLGraphQL是Facebook于2012年创建并于2015年开源的一套查询语言API规范。

GraphQL的类型系统允许开发者自己定义数据schema,可以增加新字段,也可以删除旧字段,这些都不会影响已有的查询,也不需要修改客户端。

GraphQL非常强大,因为它没有与特定的数据库或存储引擎绑定在一起。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/369898.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-12
下一篇2023-05-12

发表评论

登录后才能评论

评论列表(0条)

    保存