Serverless JOB——传统任务新变革

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
函数计算FC,每月15万CU 3个月
简介: 运行 job 的主流方式是采用分布式任务框架,比如 Quartz、XXLJob 、ElasticJob等。此类框架作为面世时间较长的开源项目,使用企业众多,功能成熟。

Serverless JOB——传统任务新变革

——竞宵

阿里云Serverless团队

运行 job 的主流方式是采用分布式任务框架,比如QuartzXXLJob ElasticJob等。此类框架作为面世时间较长的开源项目,使用企业众多,功能成熟。

image.png

而在当前的在云生时代,K8Sjob Cronjob也逐渐被考虑采用。但是此方案普遍存在一些痛点:


首先,资源利用率低。采用开源的分布式框架需要程序常驻,在云主机中 7*24 小时收费。而K8S 方案也需要用户维护集群节点,造成成本浪费。


其次,可观测性差。用户需要完全自建一套日志采集、集群和业务监控指标采集、告警系统来满足生产环境的需要。


最后,运维复杂。无论是开源框架还是 K8S 都需要关注底层资源的高可用、高并发下任务的容量和弹性,运维操作具有较高的技术复杂度。


SAE JOB 作为首款面向任务的 Serverless PaaS 平台完美解决了以上痛点。它重点解决了用户的效率和成本问题,其作为 SAE 最新“运完即停”负载类型,能够聚焦任务场景,在兼具传统任务使用体验和功能的同时按需使用,按量计费,做到低门槛任务上云,节省闲置资源成本。同时,采用了事件驱动加无入侵任务调度和管控,用户零改造,即可具备任务的全生命周期管理及可观测等开箱即用的功能。

image.png

   上图为SAE Job的产品架构图。它支持多种调用方式,包括阿里云标准API/SDK,能够通过配置和 Cron 表达式实现定时任务,通过MQ/OSS 触发器来拉起 SAE Job 。同时支持很多任务的核心特性,包括任务生命周期管理、执行记录、事件通知、日志监控告警、超时重试、阻塞策略、任务分片、任务多并发等。

image.png

SAE Job 提供了三大核心价值:


完备全托管:提供了一站式全托管的管理界面,其任务生命周期管理、可观测性开箱即用,用户可以低心智负担、零成本地学习使用 SAE


②  简单免运维:屏蔽了底层资源,用户只需关注其核心的业务逻辑开发,无需操心集群可用性、容量、性能等方面的问题。


③  超高性价比:采用按需使用、按量付费的模式,只有任务执行业务逻辑时才会拉起收费,其余时间不收取任何费用,极大节省了资源的成本开销。


SAE Job使用流程演示

image.png

首先,创建新的任务模板。

image.png

选择计算派大小的镜像并配置齐使用参数。

image.png

完成任务相关的配置,比如配置定时周期以及任务高级设置。

image.png

至此,任务创建完毕,手动执行任务。查看任务执行记录,可以看到已经拉起实例。任务执行完毕后可查看实时日志。


通过上述体验,可以看到 SAE的使用非常顺畅且简单,保证用户能够低智负担、零成本来使用 SAE

image.png

SAE Job 以任务为中心,提供传统的用户体验。当前聚焦支持单机广播、并行分片模型的任务,同时支持事件驱动、并发策略和超时重试等诸多特性,提供低成本、多规格、高弹性的资源实例来满足短时任务的执行。


相比开源的分布式框架,其优点在于全托管面运维的用户体验,开箱即用的完备功能以及白屏化管控,任务运行完立即释放资源,不会浪费闲置资源成本。


K8S Job相比,其优点除了全托管免费,还有用户无需了解 K8S 相关概念及技术细节,无需维护其复杂度。

image.png

SAE Job 充当了 XXL Job 的调度中心和执行器,用户只需聚焦它的任务代码和简单配置,比如任务模板、并发重试等,由 SAE 负责无入侵地进行任务调度和管控。


XXL Job 部署SAE ,其核心价值是降本提效。


降本体现在:如果采用原有的XXL Job,为了保持其高可用,需要MySQL+2ECS+SLB+N*ECS 作为执行器,而部署到SAE 上则只需要为其任务执行具体业务逻辑所消耗的 CPU 内存付费,即 SAE 实际的资源消耗量。


提效体现在:SAE 全托管面运维的体验,降低了整体运营复杂度,提升了可用性。


XXL Job 0改造迁移,用完即停”演示

image.png

首先创建任务模板,配置相关网络信息,选择jar包部署,将 XXL Job demo 进行部署。

image.png

同时通过环境变量来标识所需要执行的Handler,比如 jar 包中的 Handler,以及任务的执行参数。配置文件采集,采集对应的XXL Job 文件日志。

image.png

完成任务的相关配置。 SAE提供了可视化的方式为用户生成 Cron 表达式。将并发实例数设为2,高级设置保持默认。


至此,任务模板创建完成。因为采用了 jar 包上传的方式,所以 SAE 首先会为用户构建镜像。

image.png

任务触发完毕,手动执行任务,可以看到已经拉起 Job,启动了两个实例。完成后,可以查看实时日志和文件日志。

image.png

新建分片 Handler Job,引用部署包的方式,并修改对应的 handler 名字。

image.png

在高级设置里启动分片。


至此,整个配置完成。任务触发完毕后,手动执行。

image.png

可以看到拉起了两个实例,由于启用了分片,实例名称里有 index

image.png

SAE Job目前主要聚焦于泛互联网、新零售、电商、文化传媒、制造、 IoT物流、金融证券、医疗卫健和保险等行业。主打的场景包含以下六个:


定时任务:定时拉取数据、爬虫。


②  批处理:数据清洗、转换、分析。


③  异步执行:异步进行状态刷新以及离线查询。


④  传统框架迁移:XXL Job 0改造迁移等。


⑤  微服务架构:与原有的微服务架构进行调用通信、流程解耦。


⑥  CI/CD:用SAE Job 作为构建镜像的载体实现GitOps 从而完善 CI/CD 的流程。

用户案例介绍:

image.png

用户的业务诉求为:需要通过定时任务将酒店产品变化的数据定期推送给第三方平台,比如飞猪等。其任务有两个特点:


首先,任务的初始化耗时久,需要分钟级;其次,任务执行时间非常长,需要5-6个小时,并且除了处理业务逻辑之外,还需要调用其他微服务来获取元数据等信息,这也意味着任务重要性极高。


我们为此提供的解决方案是将订单中心、产品中心、用户中心等微服务直接部署到 SAE应用上,将定时任务部署到 SAE job 里,用户无需改造即可通过 SAE 内置的注册中心实现通信。


该解决方案为用户提供了诸多价值:


  • 两种负载统一入口操作、应用间调用0改造。
  • 任务运完即停,立刻释放闲置资源,极大节省了资源成本。
  • 超时失败自动重试,无需人工干预实现自愈。
  • 提供完善的任务运行时监控报警机制。


借助这套解决方案,用户0代码改造即完成了整个架构Serverless 化,同时节省了资源成本和运维成本。


未来,SAE将持续为其应用和任务的可用性保驾护航。

 

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
6月前
|
监控 Serverless
在函数计算中,如果你设置了每40分钟运行一次任务
【1月更文挑战第23天】【1月更文挑战第111篇】在函数计算中,如果你设置了每40分钟运行一次任务
228 9
|
3月前
|
运维 Serverless 测试技术
函数计算产品使用问题之支持10个并发任务需要多少资源
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
5月前
|
运维 Serverless 数据库
函数计算产品使用问题之如何并行运算函数计算任务,并对任务计算后的结果再进行聚合运算
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
5月前
|
分布式计算 运维 Serverless
EMR Serverless Spark PySpark流任务体验报告
阿里云EMR Serverless Spark是一款全托管的云原生大数据计算服务,旨在简化数据处理流程,降低运维成本。测评者通过EMR Serverless Spark提交PySpark流任务,体验了从环境准备、集群创建、网络连接到任务管理的全过程。通过这次测评,可以看出阿里云EMR Serverless Spark适合有一定技术基础的企业,尤其是需要高效处理大规模数据的场景,但新用户需要投入时间和精力学习和适应。
7179 43
EMR Serverless Spark PySpark流任务体验报告
|
4月前
|
分布式计算 Java Serverless
EMR Serverless Spark 实践教程 | 通过 spark-submit 命令行工具提交 Spark 任务
本文以 ECS 连接 EMR Serverless Spark 为例,介绍如何通过 EMR Serverless spark-submit 命令行工具进行 Spark 任务开发。
387 7
EMR Serverless Spark 实践教程 | 通过 spark-submit 命令行工具提交 Spark 任务
|
4月前
|
分布式计算 运维 Serverless
EMR Serverless Spark 实践教程 | 通过 EMR Serverless Spark 提交 PySpark 流任务
在大数据快速发展的时代,流式处理技术对于实时数据分析至关重要。EMR Serverless Spark提供了一个强大而可扩展的平台,它不仅简化了实时数据处理流程,还免去了服务器管理的烦恼,提升了效率。本文将指导您使用EMR Serverless Spark提交PySpark流式任务,展示其在流处理方面的易用性和可运维性。
262 7
EMR Serverless Spark 实践教程 | 通过 EMR Serverless Spark 提交 PySpark 流任务
|
3月前
|
分布式计算 Serverless 数据处理
EMR Serverless Spark 实践教程 | 通过 Apache Airflow 使用 Livy Operator 提交任务
Apache Airflow 是一个强大的工作流程自动化和调度工具,它允许开发者编排、计划和监控数据管道的执行。EMR Serverless Spark 为处理大规模数据处理任务提供了一个无服务器计算环境。本文为您介绍如何通过 Apache Airflow 的 Livy Operator 实现自动化地向 EMR Serverless Spark 提交任务,以实现任务调度和执行的自动化,帮助您更有效地管理数据处理任务。
192 0
|
4月前
|
人工智能 运维 安全
函数计算产品使用问题之设置了每40分钟运行一次任务,没有按照预期执行,是什么原因
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
6月前
|
消息中间件 编解码 运维
阿里云 Serverless 异步任务处理系统在数据分析领域的应用
本文主要介绍异步任务处理系统中的数据分析,函数计算异步任务最佳实践-Kafka ETL,函数计算异步任务最佳实践-音视频处理等。
175658 349
|
5月前
|
分布式计算 运维 Serverless
通过Serverless Spark提交PySpark流任务的实践体验
EMR Serverless Spark服务是阿里云推出的一种全托管、一站式的数据计算平台,旨在简化大数据计算的工作流程,让用户更加专注于数据分析和价值提炼,而非基础设施的管理和运维。下面就跟我一起通过Serverless Spark提交PySpark流任务吧。
208 1

热门文章

最新文章

相关产品

  • 函数计算