Serverless JOB——传统任务新变革

本文涉及的产品
简介: 运行 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将持续为其应用和任务的可用性保驾护航。

 

相关实践学习
基于函数计算一键部署掌上游戏机
本场景介绍如何使用阿里云计算服务命令快速搭建一个掌上游戏机。
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
21天前
|
监控 Serverless
在函数计算中,如果你设置了每40分钟运行一次任务
【1月更文挑战第23天】【1月更文挑战第111篇】在函数计算中,如果你设置了每40分钟运行一次任务
56 9
|
21天前
|
消息中间件 编解码 运维
阿里云 Serverless 异步任务处理系统在数据分析领域的应用
本文主要介绍异步任务处理系统中的数据分析,函数计算异步任务最佳实践-Kafka ETL,函数计算异步任务最佳实践-音视频处理等。
175390 349
|
21天前
|
Serverless
云效流水线部署函数计算任务时出现了错误
【1月更文挑战第18天】【1月更文挑战第90篇】云效流水线部署函数计算任务时出现了错误
81 1
|
21天前
|
机器学习/深度学习 运维 安全
阿里云 ACK One Serverless Argo 助力深势科技构建高效任务平台
阿里云 ACK One Serverless Argo 助力深势科技构建高效任务平台
101228 8
|
9月前
|
运维 Java Serverless
3分钟创建Serverless Job 定时获取新闻热搜
不用掏手机、不用登微博,使用Serverless Job就能定时获取最新热搜新闻。
87 0
|
11月前
|
Cloud Native 安全 Serverless
“实”力Hackathon大赛赛道二:Serverless性能优化挑战赛 赛题任务提交说明
“实”力Hackathon大赛赛道二:Serverless性能优化挑战赛 赛题任务提交说明
1184 2
|
存储 资源调度 运维
基于 MQ 的分布式 Serverless 多租任务处理系统架构演进
构建一个面向多租场景的 Serverless 异步任务处理系统面临多租隔离、资源需求多样化、任务管理等多种挑战该如何解决?快来查收这份异步任务系统构建实战一起学习吧!
221 0
基于 MQ 的分布式 Serverless 多租任务处理系统架构演进
|
弹性计算 前端开发 JavaScript
如何将传统 Web 框架迁移部署到 Serverless 架构?
与其说 Serverless 架构是一个新的概念,不如说它是一种全新的思路,一种新的编程范式。
199012 0
|
前端开发 架构师 Serverless
人人都是Serverless架构师之传统内容管理系统改造实战一[开篇]
内容管理系统是很常见的一种web应用场景,可以用到个人独立站,企业官网展示等场景,具有很高的实用价值,一个标准的内容管理系统主要由三个部分组成 主站展示部分、后台管理系统、API接口服务,本系列文章会以一个已有内容管理系统的Serverless架构重构展开,介绍改造的基本思路,改造细节,以及性能优化业务可观测设计等。涉及大家关心的Serverless生产遇到的一些问题,比如数据库、日志、动静态分离、调试、维护、灰度方案等。最真实的展现Serverless架构的实施落地细节。 本篇章作为系列文章的开篇,大致讲解一下将传统前端应用重构成Serverless架构的架构设计方案,工程改造思路,以及部署
253 0
人人都是Serverless架构师之传统内容管理系统改造实战一[开篇]
|
运维 Serverless UED
3 分钟创建 Serverless Job 定时获取新闻热搜!
Serverless Job 支持将传统的 XXL-JOB 零改造迁移至SAE中,本场景将采用 XXL-JOB 作为示例。创建并执行 demoJobHandler 和 shardingJobHandler 两个任务,让用户体验整个使用流程。
3 分钟创建 Serverless Job 定时获取新闻热搜!

热门文章

最新文章

相关产品

  • 函数计算