Serverless 架构如何演进详细介绍

Serverless 架构演进

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)

相关推荐

  • Serverless 架构如何演进详细介绍

    Serverless 架构演进 Serverless架构风格挑战了软件设计和软件部署基础的现状,以实现最佳开发.最优运营和最优的管理开销.虽然它继承了微服务架构MSA的基本概念,但它已被赋予了新的架构模式,尽可能实现最高效的硬件利用. 尽管Serverless架构有显著的进步,但适应这种架构需要一个周全的过程,把企业解决方案精确映射到Serverless架构上. 部署在物理服务器上的软件系统,其初始实现不能最佳地利用底层硬件的计算能力,因为在给定时间内只能有一个操作系统实例运行.随后的改造中,在

  • 解读Serverless架构的前世今生

    一.Serverless简介 Serverless架构的出现,带来了跨越式的变革.Serverless下主机管理.操作系统管理.基础软件的部署运维.资源分配和扩缩容能力全部由云厂商提供,把计算能力做成像水电煤一样的公共服务,这就意味着基于Serverless服务构建应用,开发者只需要专注在产品代码上,而无需管理和操作云端服务运行环境,计算资源从过去购买"服务器"转向购买对应的"服务". Serverless = Faas (Function as a service

  • 反向代理缓存的详细介绍

    反向代理缓存的详细介绍  传统代理: 用户隐藏在代理服务器之后.代理服务器工作在应用层,它只转发它支持的协议的数据.    反向代理(Reverse Proxy): 这种机制是Web服务器隐藏在代理服务器之后,实现这种机制的服务器称作反向代理服务器(Reverse Proxy Server).此时,Web服务器成为后端服务器,反向代理服务器称为前端服务器. 引入反向代理服务器的目的之一就是基于缓存的加速.我们可以将内容缓存在反向代理服务器上,所有缓存机制的实现仍然采用HTTP/1.1协议. 反向

  • Docker 存储驱动详细介绍

    Docker 存储驱动详细介绍 最近做项目,期间对Docker 存储驱动不会,于是在网上找资料,并解决了,这里就记录下. 目的 理解docker的存储方式 docker的image和container在host上的目录结构 docker image和container的内容与配置不同存储 Docker是一个开源的应用容器引擎,主要利用Linux内核namespace实现沙盒隔离,用Cgroup实现资源限制.Docker用于统一开发和部署的轻量级 Linux 容器,试图解决"依赖地狱"问

  • IOS 打包静态库详细介绍

    IOS 打包静态库详细介绍 一.前言 前段时间看的一本书上说:"隔着一段距离看,很多有趣的知识看起来都很唬人."比如说这篇我要总结的"静态库知识",在我初出茅庐的时候着实觉得那些后缀名为".frameworke".".a".".dylib"的文件很神秘,很高冷.那时我虽然知道只要导入一个库就能引用库里面很多封装好的东西,但对这个"库"究竟是什么"鬼",一直都是云里雾里

  • jsp 自动编译机制详细介绍

     jsp 自动编译机制详细介绍 总的来说,Jasper的自动检测实现的机制比较简单,依靠某后台线程不断检测JSP文件与编译后的class文件的最后修改时间是否相同,若相同则认为没有改动,但倘若不同则需要重新编译.实际上由于在Tomcat部署的项目的JSP可能引入了其他页面,或者引入了其他jar包,而且这些资源都可能是远程的资源,所以实际处理会比较复杂,同样要遍历检测这些引入的不同资源是否做了修改. 上图是一个形象的示意图,我们知道Tomcat架构中有四个级别的容器,Engine.Host.Con

  • Spring的Ioc模拟实现详细介绍

    简单来说就是当自己需要一个对象的时候不需要自己手动去new一个,而是由其他容器来帮你提供:Spring里面就是IOC容器. 例如: 在Spring里面经常需要在Service这个装配一个Dao,一般是使用@Autowired注解:类似如下 public Class ServiceImpl{ @Autowired Dao dao; public void getData(){ dao.getData(); } 在这里未初始化Dao直接使用是会报出空指针异常的,那么在Spring里面的做法就是通过反

  • JAVA中Context的详细介绍和实例分析

    最熟悉的陌生人--Context 刚刚学android或者js等,都会看见这个频繁的字眼--Context. 意为"上下文". 本文主要记述,Context到底是什么.如何理解Context.一个APP可以有几个Context.Context能干啥.Context的作用域.获取Context.全局获取Context技巧. 思考: Java:万物皆对象.Flutter:万物皆组件. 俗语:"没对象吗?自己new一个啊~" 既然大多数情况可以new一个实例,那么,我们在

  • Java中批处理框架spring batch详细介绍

    spring batch简介 spring batch是spring提供的一个数据处理框架.企业域中的许多应用程序需要批量处理才能在关键任务环境中执行业务操作. 这些业务运营包括: 无需用户交互即可最有效地处理大量信息的自动化,复杂处理. 这些操作通常包括基于时间的事件(例如月末计算,通知或通信). 在非常大的数据集中重复处理复杂业务规则的定期应用(例如,保险利益确定或费率调整). 集成从内部和外部系统接收的信息,这些信息通常需要以事务方式格式化,验证和处理到记录系统中. 批处理用于每天为企业处

  • 关于Anemometer图形化显示MySQL慢日志的工具搭建及使用的详细介绍

    介绍:Anemometer 是一个图形化显示MySQL慢日志的工具.结合pt-query-digest,Anemometer可以很轻松的帮你去分析慢查询日志,让你很容易就能找到哪些SQL需要优化 This is the Box Anemometer, the MySQL Slow Query Monitor. This tool is used to analyze slow query logs collected from MySQL instances to identify proble

随机推荐