细数Serverless的“配套服务”

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
函数计算FC,每月15万CU 3个月
简介: Serverless开发者工具通通常情况下包括命令行工具,编辑器插件以及其他工具。命令行工具一般情况下有厂商一方工具,和开源建设的三方工具两种,例如AWS Lambda的SAM CLI,阿里云函数计算的Funcruft等就是典型的一方工具。这类工具的特点是和厂商、产品的匹配成都会非常高,一些特性能力的支持会比较迅速,缺点是有的时候比较保守;

开发者工具

Serverless开发者工具通通常情况下包括命令行工具,编辑器插件以及其他工具。

命令行工具一般情况下有厂商一方工具,和开源建设的三方工具两种,例如AWS Lambda的SAM CLI,阿里云函数计算的Funcruft等就是典型的一方工具。这类工具的特点是和厂商、产品的匹配成都会非常高,一些特性能力的支持会比较迅速,缺点是有的时候比较保守;例如Serverless Devs、Serverless Framework就是典型的三方工具,这两个工具都是支持AWS Lambda,阿里云函数计算,腾讯云云函数等多个云厂商的FaaS产品。在客户端表现上来看,这两个开源项目都是Serverless的开发者工具,都是组件化的命令行工具,也都是支持多云;在形态上来看,Serverless Framework更注重部署与运维方向,Serverless Devs更注重Serverless应用的全生命周期,同时Serverless Devs相对Serverless Framework而言,增加了可视化的界面:

通过界面可以快速的部署应用:

也可以快速的管理云上Serverless相关资源:

除了命令行工具之外,为了更好地帮助用户编写代码和在线调试、部署函数,很多厂商都基于不同的编辑器开发了插件。例如AWS提供Visual Studio CodeEclipse插件:

同样提供函数服务的Azure也提供了Visual Studio Code插件。Visual Studio 中的 Azure Functions 项目模板创建一个项目,该项目可发布到 Azure 中的函数应用。可使用函数应用将函数分组为一个逻辑单元,以用于管理、部署和共享资源:

对于国内厂商而言,腾讯云云函数也提供Tencent Serverless Tookit相关的插件:

阿里云在开发者工具层面,同样提供了VSCode插件:

同时阿里云函数计算还提供了Cloud Toolkit工具,实现了本地Jet Brains IDE中运行、下载云端函数,创建、上传本地函数, 以IntelliJ IDEA为例,其函数管理界面如下:

除了上述的命令行工具,编辑器插件之外,其实Serverless的开发者工具还有很多其他形式,例如典型的IaC产品Pulumi也是支持多云Serverless操作的,以Google Cloud Functions为例创建一个Slack bot:

// secure config tokens to use to validate incoming messages as well as authenticate ourself to slack

const config = new pulumi.Config("mentionbot");

const slackToken = config.get("slackToken");

const verificationToken = config.get("verificationToken");


// A topic that we can enqueue slack events to so they can be processed in batch later on

const messageTopic = new gcp.pubsub.Topic("messages");


// Create an http endpoint that slack will use to push events to us.

const endpoint = new gcp.cloudfunctions.HttpCallbackFunction("bot", {

   callbackFactory: () => {

       const app = express();

       app.use(bodyParser.json());

       app.post("/events", (req, res) => {

           // Importantly: This is the code that will run in your serverless GCP cloud function!


           const body = req.body;


           // Process the body as appropriate. If it's something we need to respond to immediately

           // (like a verification request), then do so. Otherwise, add the message to our pubsub

           // topic to be processed later:

           const pubSub = new PubSub();

           const topic = pubSub.topic(messageTopic.name.get());

           topic.publish(Buffer.from(JSON.stringify(body)));


           // Quickly respond with success so that slack doesn't retry.

           res.status(200).end();

       });


       return app;

   }

});


messageTopic.onMessagePublished("processTopicMessage", async (data) => {

   // Actually handle the 'data' in the pubsub message.

   // Importantly: This is the code that will run in your serverless GCP cloud function!

});


// Give this url to slack to let them know where to post their events to.

export const url = endpoint.httpsTriggerUrl;

另外Stackery等产品,也为Serverless赋能,让用户可以像玩scratch一样开发Serverless应用,进一步将Low-Code与Serverless打通:

Serverless Workflow

Serverless工作流Serverless Workflow)是一个用来协调多个分布式任务执行的全托管云服务。

Serverless工作流中,用户可以用顺序、分支、并行等方式来编排分布式任务,Serverless工作流会按照设定好的步骤可靠地协调任务执行,跟踪每个任务的状态转换,并在必要时执行用户定义的重试逻辑,以确保工作流顺利完成。Serverless工作流通过提供日志记录和审计来监视工作流的执行,方便轻松地诊断和调试应用。  Serverless工作流简化了开发和运行业务流程所需要的任务协调、状态管理以及错误处理等繁琐工作,让用户聚焦业务逻辑开发。

Serverless工作流可以协调分布式组件Serverless工作流能够编排不同基础架构、不同网络、不同语言编写的应用,抹平混合云、专有云过渡到公共云或者从单体架构演进到微服务架构的落差;减少流程代码量Serverless工作流提供了丰富的控制逻辑,例如顺序、选择、并行等,让用户以更少的代码实现复杂的业务逻辑;提高应用容错性Serverless工作流用户管理流程状态,内置检查点和回放能力,以确保用户的应用程序按照预期逐步执行。错误重试和捕获可以让您灵活的处理错误;ServerlessServerless工作流根据实际执行步骤转换个数收费,执行结束不再收费。Serverless工作流自动扩展让用户免于管理硬件预算和扩展。

Serverless工作流具有以下能力和特性:

  • 服务编排能力: Serverless工作流可以帮助用户将流程逻辑与任务执行分开,节省编写编排代码的时间。例如图片经过人脸识别函数后,根据人脸位置剪裁图像,最后发送消息通知用户Serverless工作流提供了一个Serverless的解决方案,降低了用户的编排运维成本。
  • 协调分布式组件: Serverless工作流能够协调在不同基础架构上、不同网络内,以不同语言编写的应用。应用不管是从私有云/专有云平滑过渡到混合云或公共云,或者从单体架构演进到微服务架构,Serverless工作流都能发挥协调作用。
  • 内置错误处理: 通过内置错误重试和捕获能力,用户可以自动重试失败或超时的任务,对不同类型错误做出不同响应,并定义回退逻辑。
  • 可视化监控Serverless工作流提供可视化界面来定义工作流和查看执行状态。状态包括输入和输出等。方便用户快速识别故障位置,并快速排除故障问题。
  • 支持长时间运行流程: Serverless工作流可以跟踪整个流程,持续长时间执行确保流程执行完成。有些流程可能要执行几个小时、几天、甚至几个月。例如运维相关的Pipeline和邮件推广流程。
  • 流程状态管理: Serverless工作流会管理流程执行中的所有状态,包括跟踪它所处的执行步骤,以及存储在步骤之间的数据传递。用户无需自己管理流程状态,也不必将复杂的状态管理构建到任务中。

可观测性

Serverless应用的可观测性是被很多用户所关注的。可观测性是通过外部表现判断系统内部状态的衡量方式,在应用开发中,可观测性帮助我们判断系统内部的健康状况。在系统出现问题时,帮助我们定位问题、排查问题、分析问题;在系统平稳运行时,帮助我们评估风险,预测可能出现的问题。在Serverless应用开发中,如果观察到函数的并发度持续升高,很可能是业务推广团队的努力工作导致业务规模迅速扩张,为了避免达到并发度限制触发流控,开发者就需要提前提升并发度,以阿里云函数计算为例,阿里云函数计算在可观测行层面提供了多种纬度,包括Logging、Metrics以及Tracing等内容。

在控制台监控中心,可以查看到整体的Metrics,服务级Metrics以及每个函数的Metrics:

除此之外,还可以看到当前函数的请求记录:

根据不同的请求记录,可以查看到函数的详细信息:

除了在控制台的监控中心处可以查看到函数的日志等信息,在函数详情页面,也可以看到函数的详细日志信息:

以及Tracing相关信息

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
目录
相关文章
|
26天前
|
存储 Serverless 数据库
科普文:云计算服务类型IaaS, PaaS, SaaS, BaaS, Faas说明
本文介绍了云计算服务的几种主要类型,包括IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务)、BaaS(后端即服务)和FaaS(函数即服务)。每种服务模式提供了不同的服务层次和功能,从基础设施的提供到应用的开发和运行,再到软件的交付使用,满足了企业和个人用户在不同场景下的需求。文章详细阐述了每种服务模式的特点、优势和缺点,并列举了相应的示例。云计算服务的发展始于21世纪初,随着互联网技术的普及,这些服务模式不断演进,为企业和个人带来了高效、灵活的解决方案。然而,使用这些服务时也需要注意服务的稳定性、数据安全性和成本等问题。
573 3
|
4月前
|
分布式计算 运维 Serverless
EMR Serverless Spark服务和EMR Serverless StarRocks服务的比较
**EMR Serverless Spark** 以其出色的稳定性、高效性能、减轻运维负担及成本优化著称,适合大规模数据处理。**EMR Serverless StarRocks** 则以高速查询、存算分离架构和灵活扩缩容见长,侧重企业级功能。两者在不同应用场景中有各自优势,选择应基于具体需求。更多详情,参考阿里云官方资源。
|
20天前
|
弹性计算 人工智能 自然语言处理
魔搭社区与函数计算:高效部署开源大模型的文本生成服务体验
在数字化时代,人工智能技术迅速发展,开源大模型成为重要成果。魔搭社区(ModelScope)作为开源大模型的聚集地,结合阿里云函数计算,提供了一种高效、便捷的部署方式。通过按需付费和弹性伸缩,开发者可以快速部署和使用大模型,享受云计算的便利。本文介绍了魔搭社区与函数计算的结合使用体验,包括环境准备、部署应用、体验使用和资源清理等步骤,并提出了改进建议。
|
24天前
|
机器学习/深度学习 监控 物联网
函数即服务(FaaS)
函数即服务(FaaS)
|
3月前
|
消息中间件 关系型数据库 Serverless
【阿里云】一键部署创建函数计算服务以处理多媒体文件
通过阿里云的一键部署功能,轻松创建函数计算服务以处理多媒体文件。首先选择地域并配置资源栈名称及其他必要参数,如登录凭证、实例类型及数据库配置。过程中可能需开通相关服务如消息服务MNS,并确保账户有足够的余额。完成配置后,系统自动创建资源栈。当状态显示“创建成功”即部署完毕。最后,通过提供的URL及凭据访问应用,上传PPTX文件进行处理,并下载处理后的结果。
81 5
|
3月前
|
Kubernetes 安全 Serverless
Kubernetes 的架构问题之Serverless Container中提供对外服务如何解决
Kubernetes 的架构问题之Serverless Container中提供对外服务如何解决
73 5
|
4月前
|
Java Serverless Docker
函数计算产品使用问题之使用Docker镜像部署的Web服务如何获取客户端的真实IP
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
4月前
|
运维 Serverless API
Serverless 应用引擎使用问题之如何开发HTTP服务
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
3月前
|
存储 运维 安全
函数计算产品使用问题之如何获取到访问其他阿里云服务所需的AccessKey、SecretKey或STS Token
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
3月前
|
消息中间件 运维 Serverless
Serverless 支撑赛事转播问题之利用函数计算处理视频直播截帧服务如何解决
Serverless 支撑赛事转播问题之利用函数计算处理视频直播截帧服务如何解决

热门文章

最新文章

相关产品

  • 函数计算