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