一、啥叫Serverless(无服务器)
Like many trends in software, there’s no one clear view of what Serverless is. For starters, it encompasses two different but overlapping areas:
(就是一般定义为两种不同但交叉的领域:Faas和Baas)
Serverless was first used to describe applications that significantly or fully incorporate third-party, cloud-hosted applications and services, to manage server-side logic and state.
这句话也就是说有一些应用它是完全整合了第三方云的服务,让云相关的服务来管理服务器端的逻辑运行和状态。
These are typically “rich client” applications—think single-page web apps, or mobile apps—that use the vast ecosystem of cloud-accessible databases (e.g., Parse, Firebase), authentication services (e.g., Auth0, AWS Cognito), and so on.
也就是说这些交给云托管的应用,可以使用云生态系统所提供的服务来访问云提供的数据库、云提供的可信服务以及日志服务、面向对象存储等服务,也可以说极大提高了开发的效率。
These types of services have been previously described as “(Mobile) Backend as a Service", and I use “BaaS” as shorthand in the rest of this article.
像这样交给云托管来管理一些服务,而简化开发的这一系列服务就可以理解为BaaS,背靠着服务。
第二点:
FaaS:
Serverless can also mean applications where server-side logic is still written by the application developer, but, unlike traditional architectures, it’s run in stateless compute containers that are event-triggered, ephemeral (may only last for one invocation), and fully managed by a third party.
无服务其实也可以理解为将我们所开发的应用(应用的逻辑层代码还是我们写的放到云上运行,然后我们就不用管了,所有底层资源的调度,以及事件的驱动都交给云函数,或者我们调用API。
One way to think of this is “Functions as a Service” or “FaaS”. (Note: The original source for this name—a tweet by @marak—is no longer publicly available.) AWS Lambda is one of the most popular implementations of a Functions-as-a-Service platform at present, but there are many others, too.
https://martinfowler.com/articles/serverless.html
二、关于腾讯云对云函数的定义
腾讯云云函数(Serverless Cloud Function,SCF)是腾讯云为企业和开发者们提供的无服务器执行环境,帮助您在无需购买和管理服务器的情况下运行代码, 是实时文件处理和数据处理等场景下理想的计算平台。 您只需使用 SCF 平台支持的语言编写核心代码并设置代码运行的条件,即可在腾讯云基础设施上弹性、安全地运行代码。以下视频将为您介绍云函数 SCF
三、计算资源的变迁
随着云服务的发展,计算资源高度抽象化,腾讯云提供了从物理服务器到云函数和横跨各种抽象程度的计算资源供用户选择。
- 黑石物理服务器:以物理机为扩展单位。用户完全拥有整台实体计算资源,安全性最好。
- 云服务器(CVM):以云服务器为扩展单位,虚拟化硬件设备。用户和其他租户共享物理机资源,仍可自行配置 CVM 的各项指标,相对部署和迭代更加简单。
- 容器服务:以服务为扩展单位,虚拟化操作系统。测试和生产环境完全一致,测试和部署非常轻松。
- 云函数:以函数为扩展单位,虚拟化运行时环境(Runtime)。是现有计算资源的最小单位,具有完全自动、一键部署、高度可扩展等特点,是轻量级服务部署非常好的选择。
其实容器服务和云函数区别还是很大:一点是虚拟的资源不一样,一个是OS一个是运行时环境,显然云函数虚拟的对真正应用运行更加有针对性。
四、无服务器介绍
无服务器(Serverless)不是表示没有服务器,而表示当您在使用 Serverless 时,您无需关心底层资源,也无需登录服务器和优化服务器,只需关注最核心的代码片段,即可跳过复杂的、繁琐的基本工作。核心的代码片段完全由事件或者请求触发,平台根据请求自动平行调整服务资源。Serverless 拥有近乎无限的
扩容能力,空闲时,不运行任何资源。代码运行无状态,可以轻易实现快速迭代、极速部署。
五、总结
总的来说,无服务器是一种架构设计,能够更加简化对云计算的使用,而BaaS和FaaS算是Serverless的一种实现吧,其中我们可以来编写简单的、目的单一的云函数即可将它与您的腾讯云基础设施及其他云服务产生的事件关联。
使用云函数时,您只需使用平台支持的语言(Python、Node.js、PHP、Golang、Java 及 Custom Runtime)编写代码。腾讯云将完全管理底层计算资源,包括服务器 CPU、内存、网络和其他配置/资源维护、代码部署、弹性伸缩、负载均衡、安全升级、资源运行情况监控等。但这也意味着您无法登录或管理服务器、无法自定义系统和环境。
Serverless 帮助用户脱离繁冗的开发配置工作,只需关注业务代码逻辑的编写,不用任何的基础设施建设、管理与运维开销。该服务模式降低了研发门槛,提升业务构建效率,获得了大量企业和开发者的支持。
https://cloud.tencent.com/document/product/583/9199