Job 作為一種運(yùn)完即停的負(fù)載類型,在企業(yè)級(jí)開發(fā)中承載著豐富的使用場(chǎng)景。SAE Job 將 Serverless 技術(shù)所帶來的普惠紅利從應(yīng)用領(lǐng)域向外延展至任務(wù)領(lǐng)域,通過結(jié)合 longrun + shortrun 的使用場(chǎng)景和最佳實(shí)踐打造成為Serverless 一體化企業(yè)級(jí)開發(fā)運(yùn)維平臺(tái),以滿足不同行業(yè)的差異化訴求,為用戶提供更加完善多元的能力支持和穩(wěn)定可靠的技術(shù)保障。
目前運(yùn)行Job 的主流方式是采用分布式任務(wù)框架,比如 Quartz、XXLJob 、ElasticJob 等。此類框架作為面世時(shí)間較長(zhǎng)的開源項(xiàng)目,使用企業(yè)眾多,功能成熟。而在云原生時(shí)代,K8S Job 和 CronJob 也逐漸被考慮采用。但是上述方案普遍存在以下痛點(diǎn): 首先,資源利用率低。采用開源的分布式框架需要程序常駐,在云主機(jī)中 7*24 小時(shí)收費(fèi)。而K8S 方案也需要用戶維護(hù)集群節(jié)點(diǎn),造成成本浪費(fèi)。 其次,可觀測(cè)性差。用戶需要完全自建一套日志采集、集群和業(yè)務(wù)監(jiān)控指標(biāo)采集、告警系統(tǒng)來滿足生產(chǎn)環(huán)境的需要。 最后,運(yùn)維復(fù)雜。無論是開源框架還是 K8S ,都需要關(guān)注底層資源的高可用、高并發(fā)下任務(wù)的容量和彈性,其運(yùn)維操作具有較高的技術(shù)復(fù)雜度。
SAE Job 作為首款面向任務(wù)的 Serverless PaaS 平臺(tái),完美解決了以上痛點(diǎn)。SAE Job 重點(diǎn)解決了用戶的效率和成本問題,在兼具傳統(tǒng)任務(wù)使用體驗(yàn)和功能的同時(shí)按需使用,按量計(jì)費(fèi),做到低門檻任務(wù)上云,節(jié)省閑置資源成本。同時(shí),體驗(yàn)上采用了事件驅(qū)動(dòng)加無入侵任務(wù)調(diào)度和管控,用戶零改造即可具備任務(wù)的全生命周期管理及可觀測(cè)等開箱即用的功能。 SAE Job 支持多種調(diào)用方式,包括阿里云標(biāo)準(zhǔn) API/SDK,能夠通過可視化配置 Cron 表達(dá)式實(shí)現(xiàn)定時(shí)任務(wù),通過HTTP/MQ/OSS 等多種觸發(fā)器來拉起 SAE Job 。同時(shí)支持諸多任務(wù)核心特性,包括任務(wù)生命周期管理、執(zhí)行記錄、事件通知、日志監(jiān)控告警、超時(shí)重試、阻塞策略、任務(wù)分片、任務(wù)多并發(fā)等。
SAE Job 提供了三大核心價(jià)值: ① 完備全托管:提供了一站式全托管的管理界面,其任務(wù)生命周期管理、可觀測(cè)性開箱即用,用戶可以低心智負(fù)擔(dān)、零成本地學(xué)習(xí)使用 SAE 。 ② 簡(jiǎn)單免運(yùn)維:屏蔽了底層資源,用戶只需關(guān)注其核心的業(yè)務(wù)邏輯開發(fā),無需操心集群可用性、容量、性能等方面的問題。 ③ 超高性價(jià)比:采用按需使用、按量付費(fèi)的模式,只有任務(wù)執(zhí)行業(yè)務(wù)邏輯時(shí)才會(huì)拉起收費(fèi),其余時(shí)間不收取任何費(fèi)用,極大節(jié)省了資源的成本開銷。 下面演示一下 SAE Job 的整體使用流程:
SAE Job 以任務(wù)為中心,提供傳統(tǒng)的用戶體驗(yàn)。當(dāng)前聚焦支持單機(jī)廣播、并行分片模型的任務(wù),同時(shí)支持事件驅(qū)動(dòng)、并發(fā)策略和超時(shí)重試等諸多特性,提供低成本、多規(guī)格、高彈性的資源實(shí)例來滿足短時(shí)任務(wù)的執(zhí)行。 相比開源的分布式框架,其優(yōu)點(diǎn)在于全托管面運(yùn)維的用戶體驗(yàn),開箱即用的完備功能以及白屏化管控,任務(wù)運(yùn)行完立即釋放資源,不會(huì)浪費(fèi)閑置資源成本。 與 K8S Job 相比,其優(yōu)點(diǎn)除了全托管免費(fèi),還有用戶無需了解 K8S 相關(guān)概念及技術(shù)細(xì)節(jié),無需維護(hù)其復(fù)雜度。
SAE 支持 XXL Job 0 改造遷移,用戶無需任何代碼和配置的修改即可將 XXL JOB 應(yīng)用部署至 SAE Job, 用戶只需為任務(wù)實(shí)際執(zhí)行邏輯過程中付費(fèi)。在此過程中 SAE Job 充當(dāng)了 XXL Job 的調(diào)度中心和執(zhí)行器,用戶只需聚焦任務(wù)代碼和簡(jiǎn)單配置,比如任務(wù)模板、并發(fā)重試等,由 SAE 負(fù)責(zé)無入侵地進(jìn)行任務(wù)調(diào)度和管控。 將 XXL Job 部署到 SAE ,其核心價(jià)值是降本提效: 降本體現(xiàn)在:如果采用原有的 XXL Job,為了保持其高可用,至少需要 MySQL+2ECS+SLB+N*ECS 的常駐費(fèi)用,而部署到 SAE 上則只需要為其任務(wù)執(zhí)行具體業(yè)務(wù)邏輯所消耗的 CPU 內(nèi)存付費(fèi),即 SAE 實(shí)際的資源消耗量。 提效體現(xiàn)在:SAE 全托管面運(yùn)維的體驗(yàn),降低了整體運(yùn)維復(fù)雜度,提升了應(yīng)用可用性。 下面演示一下 XXL Job 0 改造遷移流程:
SAE Job 目前主要聚焦于泛互聯(lián)網(wǎng)、新零售、電商、文化傳媒、制造、 IoT、物流、金融證券、醫(yī)療衛(wèi)健和保險(xiǎn)等行業(yè)。主打的場(chǎng)景包含以下六個(gè): ① 定時(shí)任務(wù):定時(shí)拉取數(shù)據(jù)、爬蟲。 ② 批處理:數(shù)據(jù)清洗、轉(zhuǎn)換、分析。 ③ 異步執(zhí)行:異步進(jìn)行狀態(tài)刷新以及離線查詢。 ④ 傳統(tǒng)框架遷移:XXL Job 0改造遷移等。 ⑤ 微服務(wù)架構(gòu):與原有的微服務(wù)架構(gòu)進(jìn)行調(diào)用通信、流程解耦。 ⑥ CI/CD:用SAE Job 作為構(gòu)建鏡像的載體實(shí)現(xiàn)GitOps ,從而完善 CI/CD 的流程。
最后分享一個(gè)采用 SAE Job 結(jié)合微服務(wù)的客戶案例,用戶的業(yè)務(wù)訴求為:需要通過定時(shí)任務(wù)將酒店產(chǎn)品變化的數(shù)據(jù)定期推送給第三方平臺(tái),比如飛豬等。其任務(wù)有兩個(gè)特點(diǎn):首先,任務(wù)的初始化耗時(shí)久,需要分鐘級(jí);其次,任務(wù)執(zhí)行時(shí)間非常長(zhǎng),需要 5-6 個(gè)小時(shí),并且除了處理業(yè)務(wù)邏輯之外,還需要調(diào)用其他微服務(wù)來獲取元數(shù)據(jù)等信息。 我們?yōu)榇颂峁┑慕鉀Q方案是將訂單中心、產(chǎn)品中心、用戶中心等微服務(wù)直接部署到 SAE應(yīng)用上,將定時(shí)任務(wù)部署到 SAE Job里,用戶無需改造即可通過 SAE 內(nèi)置的注冊(cè)中心實(shí)現(xiàn)通信。 該解決方案為用戶提供了諸多價(jià)值:
- 兩種負(fù)載統(tǒng)一入口操作、應(yīng)用間調(diào)用0改造。
- 任務(wù)運(yùn)完即停,立刻釋放閑置資源,極大節(jié)省了資源成本。
- 超時(shí)失敗自動(dòng)重試,無需人工干預(yù)實(shí)現(xiàn)自愈。
- 提供完善的任務(wù)運(yùn)行時(shí)監(jiān)控報(bào)警機(jī)制。
借助這套解決方案,用戶 0 代碼改造即完成了整個(gè)架構(gòu) Serverless 化,同時(shí)節(jié)省了資源成本和運(yùn)維成本,SAE 將持續(xù)為其應(yīng)用和任務(wù)的可用性保駕護(hù)航。 最后,歡迎大家來使用SAE Job, 首款面向任務(wù)的 Serverless PaaS 平臺(tái), 感受其對(duì)傳統(tǒng)任務(wù)所帶來的新變革。
本文摘自 :https://blog.51cto.com/u