Serverless

无服务器计算是一种云计算执行模式,其中云提供商按需分配机器资源,并代替客户维护服务器。无服务器计算不在易失性内存中保留资源;而是在短时间内完成计算,并将结果持久化到存储中。当一个应用不被使用时,没有计算资源分配给该应用。
Serverless并非真的没有服务器,因为云服务提供商仍然使用服务器来为开发者执行代码。Serverless无服务器的“无”是相对开发者而言的,无服务器应用的开发者并不关心容器、虚拟机或物理服务器的容量规划、配置、管理、维护、容错或扩展,只需要专注于他们的代码。

发展阶段

裸机 Bare Metal

bare metal服务器是一个真实存在的独立物理硬件,是一个独立的功能性服务器。它们不是运行在多个共享硬件中的虚拟服务器。
bare metal服务器的开发者需要承担诸如管理硬件及驱动、安装维护操作系统、搭建开发环境等繁杂的工作,因此企业此时往往需要雇佣大量人员承担这些不同的工作,消耗较大的管理成本才能使服务上线运营。

虚拟机 Virtual Machine

虚拟机(英语:virtual machine),在计算机科学中的体系结构里,是指一种特殊的软件,可以在计算机平台终端用户之间创建一种环境,而终端用户则是基于虚拟机这个软件所创建的环境来操作其它软件。虚拟机(VM)是计算机系统的仿真器,通过软件模拟具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,能提供物理计算机的功能。

此阶段的开发者不需要管理硬件,操作系统的维护工作相比起bare metal阶段也减轻了许多。虚拟化技术已经成为一种被大家广泛认可的服务器资源共享方式,它可以在按需构建操作系统实例的过程当中为系统管理员提供极大的灵活性。

容器 Container

由于hypervisor虚拟化技术仍然存在一些性能和资源使用效率方面的问题,因此出现了一种称为容器(Container)的新型虚拟化技术来帮助解决这些问题。
容器是轻量级的操作系统级虚拟化,可以让我们在一个资源隔离的进程中运行应用及其依赖项。运行应用程序所必需的组件都将打包成一个镜像并可以复用。执行镜像时,它运行在一个隔离环境中,并且不会共享宿主机的内存、CPU 以及磁盘,这就保证了容器内进程不能监控容器外的任何进程。

容器与虚拟机之间的差别

虚拟机通常包含整个操作系统及其应用程序,同时也需要运行一个 hypervisor 来控制虚拟机。

因为虚拟机包括操作系统,所有大小一般是几个 G。使用虚拟机的缺点之一是启动操作系统以及初始化托管应用会花费几分钟的时间,但是,容器是轻量级的而且大小在 M 以内。性能方面,与 VM 相比,容器表现更加出色,并且几乎可以秒启动。

image.png

无服务器 Serverless

Serverless阶段仍有服务器,但它们被抽象出了应用开发的范畴。云供应商负责处理服务器基础设施的配置、维护和扩展等日常工作。开发者可以简单地将他们的代码打包到容器中进行部署。

Serverless 与边缘计算(edge computing)

边缘计算

是一种分布式运算的架构,将应用程序、数据资料与服务的运算,由网络中心节点,移往网络逻辑上的边缘节点来处理[1]。边缘运算将原本完全由中心节点处理大型服务加以分解,切割成更小与更容易管理的部分,分散到边缘节点去处理。边缘节点更接近于用户终端设备,可以加快资料的处理与发送速度,减少延迟)。在这种架构下,资料的分析与知识的产生,更接近于数据资料的来源,因此更适合处理大数据

image.png
边缘计算的重要目的是提供靠近请求的低延时服务(delivers low latency nearer to the requests),Karim Arabi在IEEE DAC 2014的主题演讲以及随后的2015年麻省理工学院MTL研讨会的特邀演讲中,将边缘计算广义地定义为发生在网络边缘的所有云之外的计算,更具体地说,是需要实时处理数据的应用。在他的定义中,云计算操作的是大数据,而边缘计算操作的是 “即时数据”,即由传感器或用户产生的实时数据
根据The State of the Edge报告,边缘计算专注于“靠近最后一英里网络”的服务器,ETSI MEC ISG标准委员会主席Alex Reznik对该术语进行了宽泛的定义。”任何不属于传统数据中心的东西都可以成为某人的’边缘’”