云原生架构白皮书学习笔记(6):主要云原生技术-Serverless

主要云原生技术

Serverless

Kubernetes 成为了云计算的新一代操作系统,面向特定领域的后端云服务(BaaS)则是这个操作系统上的服务 API,存储、数据库、中间件、大数据、AI等都开始变为全托管的云形态,用户不再需要搭建存储系统、部署数据库软件,无需关注同质化的、负担繁重的基于服务器等基础设施的开发、运维、安全、高可用等工作。
当这些 BaaS 云服务日趋完善时,Serverless 因为屏蔽了服务器的各种运维复杂度,让开发人员可以将更多精力用于业务逻辑设计与实现。
Serverless 计算包含以下特征:

  • 全托管的计算服务
  • 通用性
  • 自动的弹性伸缩
  • 按量计费

函数计算(Function as a Service)

函数计算(Function as a Service)是 Serverless 中最具代表性的产品形态。通过把应用逻辑拆分多个函数,每个函数都通过事件驱动的方式触发执行,并且每个环节都是弹性和高可用的,通过与中间件的集成,客户能够快速实现大规模消息、数据的实时并行处理。
函数计算这种 Serverless 形态在普及方面仍存在一定困难,例如:

  • 函数编程以事件驱动方式执行,这在应用架构开发习惯方面,以及研发交付流程上都会有比较大的改变;
  • 函数编程的生态仍不够成熟,应用开发者和企业内部的研发流程需要重新适配;
  • 细颗粒度的函数运行也引发了新技术挑战,比如冷启动会导致应用响应延迟,按需建立数据库连接成本高等。

其他:基于容器的 Serverless 技术

通过和容器技术进行融合创新,借助良好的可移植性,使容器化的应用能够无差别地运行在开发机、自建机房以及公有云环境中,容器工具链能够加快解决 Serverless 的交付。代表作有:

  • 阿里云提供了弹性容器实例(ECI)以及更上层的 Serverless 应用引擎(SAE);
  • Google 提供了 CloudRun 服务,这都帮助用户专注于容器化应用构建,而无需关心基础设施的管理成本。此外 Google 也开源了基于 Kubernetes 的 Serverless 应用框架 Knative。
    相对函数计算,这类 Serverless 应用服务支持容器镜像作为载体,无需修改即可部署在 Serverless 环境中,可以享受到 Serverless 带来的全托管免运维、自动弹性伸缩、按量计费等优势。

Serverless 技术常见场景

  • 小程序 /Web/Mobile/API 后端服务
  • 大规模批处理任务
  • 基于事件驱动架构的在线应用和离线数据处理
  • 开发运维自动化

技术关注点

  • 计算资源弹性调度:调度算法应满足容错、资源利用率、性能、数据驱动等多方面目标。
  • 负载均衡和流控
  • 安全性:用户代码的安全是不可逾越的底线,系统应从权限管理、网络安全、数据安全、运行时安全等各个维度全面保障应用的安全性。

你可能感兴趣的:(云原生)