无服务器架构的简单介绍

该文讨论了无服务器架构的演变,帮助你了解它是如何工作的以及最佳实践和可用的框架。

无服务器架构风格挑战了软件设计和部署的现状,它能实现最佳开发效率、提高系统运营和管理节省开销。虽然它继承了微服务架构(MSA)的基本概念,但它是当前架构模式的最前沿,实现了最低水平的硬件空闲可能。

尽管它是一个显着的进步,但是采取它以及适应它将需要一个周密的研究过程,需要精确将企业解决方案要求映射到无服务器计算上。

下面我们看看无服务器架构的演变,最初我们是直接将软件系统部署运行在物理机器上,但是这种部署在物理服务器上的初始实现并不能最佳地利用底层硬件的计算能力,因为在指定时间内只能有一个操作系统实例运行。

后来,认识到计算资源具有时间上的共享能力之后,在相同硬件上同时运行多个计算机(虚拟主机/云主机)能够在CPU和I / O操作之间来回切换。

这种技术的演进导致了行业中的许多创新,最重要的是云的诞生。此时,虚拟机是用于部署软件并隔离计算环境的,是一种易于管理,可扩展和可编程的单元。Linux容器技术出现在2006年左右,当时Google实现了符合Linux内核特性的控制组(control groups)。

Linux容器自那时以来一直存在。然而,只有大规模的、技术上超越的企业,如谷歌才能够用到它的规模性。在2012年,微服务架构的概念由一组软件架构师在欧洲引入。在2013年晚些时候,Docker巧妙地填补了容器生态系统中的可访问性,可用性和支持服务的空白,因此,容器开始变得流行起来。

Linux容器打开了一个新的视野,将大型单片系统分解成独立的自包含服务,并以细粒度的资源利用来执行它们。为了加快这些进展, 容器集群管理系统(如Kubernetes和Mesosphere)在同一时期开始提供端到端的容器即服务(CaaS)能力。

2015年晚些时候,AWS通过引入AWS Lambda实现了另一个飞跃,这可以通过按需运行微服务进一步节省软件部署成本,并在无负载时停止。该概念类似于节能车辆中的停止 - 启动特征,在停车时能够自动熄火,自动关闭内燃机以降低燃料消耗。

Serverless是如何工作的?
尽管术语“无服务器”乍一看是荒谬的,但其实际意义是基于部署软件而不涉及基础设施的能力。无服务器平台根据需要自动构建,部署和启动服务的整个过程。用户只需要注册所需的业务功能及其资源需求。



这些功能可以分为两种主要类型:由客户端请求触发的功能和需要由时间触发器或事件的后台执行的功能。通常,这种无服务器系统可以使用具有动态路由器的容器群集管理器(CCM)来实现,该动态路由器可以按需调整容器。然而,它还需要考虑路由器的延迟,容器创建时间,语言支持,协议支持,功能接口,函数初始化时间,配置参数传递,提供证书文件等问题。

即使这种部署方式要求在没有负载时停止容器,但实际上在服务请求之后很快就会终止容器,这将是昂贵的,因为在短时间间隔内可能有更多请求进入。因此,更经常地,在无服务器计算容器中将保留预先配置的时间段以重用应付更多的请求。这就类似于PaaS平台中的自动缩放行为。一旦服务被扩展,实例将被保留一定时间段以处理更多请求,而不立即终止它们。

Adapting Serverless Architecture - DZone Cloud