写点什么

Serverless Job——传统任务新变革

  • 2022 年 6 月 01 日
  • 本文字数:2198 字

    阅读完需:约 7 分钟

Serverless Job——传统任务新变革

Job 作为一种运完即停的负载类型,在企业级开发中承载着丰富的使用场景。SAE Job 将 Serverless 技术所带来的普惠红利从应用领域向外延展至任务领域,通过结合 longrun + shortrun 的使用场景和最佳实践打造成为 Serverless 一体化企业级开发运维平台,以满足不同行业的差异化诉求,为用户提供更加完善多元的能力支持和稳定可靠的技术保障。


1.png


目前运行 Job 的主流方式是采用分布式任务框架,比如 Quartz、XXLJob 、ElasticJob 等。此类框架作为面世时间较长的开源项目,使用企业众多,功能成熟。而在云原生时代,K8S Job 和 CronJob 也逐渐被考虑采用。但是上述方案普遍存在以下痛点:


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


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


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


2.png


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


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


3.png


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


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


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


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


下面演示一下 SAE Job 的整体使用流程:


点击查看: https://developer.aliyun.com/live/249288


5.png


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


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


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


6.png


SAE 支持 XXLjob 0 改造迁移,用户无需任何代码和配置的修改即可将 XXL JOB 应用部署至 SAE Job,用户只需为任务实际执行逻辑过程中付费。在此过程中 SAE Job 充当了 XXL Job 的调度中心和执行器,用户只需聚焦任务代码和简单配置,比如任务模板、并发重试等,由 SAE 负责无入侵地进行任务调度和管控。


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


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


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


下面演示一下 XXL Job 0 改造迁移流程:


点击查看: https://developer.aliyun.com/live/249289


8.png


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


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


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


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


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


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


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


9.png


最后分享一个采用 SAE job 结合微服务的客户案例,用户的业务诉求为:需要通过定时任务将酒店产品变化的数据定期推送给第三方平台,比如飞猪等。其任务有两个特点:首先,任务的初始化耗时久,需要分钟级;其次,任务执行时间非常长,需要 5-6 个小时,并且除了处理业务逻辑之外,还需要调用其他微服务来获取元数据等信息。


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


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


  • 两种负载统一入口操作、应用间调用 0 改造。

  • 任务运完即停,立刻释放闲置资源,极大节省了资源成本。

  • 超时失败自动重试,无需人工干预实现自愈。

  • 提供完善的任务运行时监控报警机制。


借助这套解决方案,用户 0 代码改造即完成了整个架构 Serverless 化,同时节省了资源成本和运维成本,SAE 将持续为其应用和任务的可用性保驾护航。


最后,欢迎大家来使用 SAE Job, 一款面向任务的 Serverless PaaS 平台, 感受其对传统任务所带来的新变革。


点击此处,了解更多 SAE 详情~

发布于: 刚刚阅读数: 3
用户头像

阿里巴巴云原生 2019.05.21 加入

还未添加个人简介

评论

发布
暂无评论
Serverless Job——传统任务新变革_阿里云_阿里巴巴云原生_InfoQ写作社区