Serverless架构的演进

标签: 架构Serverless微服务单片架构架构演进
2852人阅读 评论(0) 收藏 举报
分类:

Serverless架构的演进

作者:chszs,未经博主允许不得转载。经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs

Serverless架构风格挑战了软件设计和软件部署基础的现状,以实现最佳开发、最优运营和最优的管理开销。虽然它继承了微服务架构MSA的基本概念,但它已被赋予了新的架构模式,尽可能实现最高效的硬件利用。

尽管Serverless架构有显著的进步,但适应这种架构需要一个周全的过程,把企业解决方案精确映射到Serverless架构上。

这里写图片描述

部署在物理服务器上的软件系统,其初始实现不能最佳地利用底层硬件的计算能力,因为在给定时间内只能有一个操作系统实例运行。随后的改造中,在计算资源中识别时间共享能力之后,多个虚拟计算机能够通过在它们之间切换CPU和I/O操作从而实现在相同硬件上的同时运行。

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

这里写图片描述

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

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

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

它是如何工作的?

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

这里写图片描述

显然,这样的功能可以分为两种主要类型:由客户端请求触发的功能,和需要通过时间触发器或事件触发的后台执行的功能。

通常,这种Serverless系统可以使用具有动态路由器的容器集群管理器(CCM)来实现,该动态路由器可以按需调整容器。然而,还需要考虑路由器的延迟、容器的创建时间、语言支持、协议支持、功能接口、函数初始化时间、配置参数的传递、提供证书文件等。

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

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:5409315次
    • 积分:49777
    • 等级:
    • 排名:第65名
    • 原创:781篇
    • 转载:23篇
    • 译文:24篇
    • 评论:1156条
    一名路过的黑客

    大家好,我是黑客,专门盗账号的。现在这个人的帐号被我盗了,但看这个人平时的博客空间,一直过着艰苦努力、持之以恒的技术研究生活,勤奋刻苦,积极分享,无私奉献,我被深深的感动了,这是一个纯粹的人,人品这样的高尚,希望大家看到我这条消息后,可以私聊他,多鼓励他,不缺钱的就多给他一些经济上的资助,让他再接再厉!就这样吧,我下线了,眼框湿湿的难受。

    文章存档