Serverless JOB | 傳統任務新變革

Serverless發表於2022-06-01

zhang_d-XgIiMF9u0Go-unsplash.jpg

Job 作為一種運完即停的負載型別,在企業級開發中承載著豐富的使用場景。SAE Job 將 Serverless 技術所帶來的普惠紅利從應用領域向外延展至任務領域,通過結合 longrun + shortrun 的使用場景和最佳實踐打造成為Serverless 一體化企業級開發運維平臺,以滿足不同行業的差異化訴求,為使用者提供更加完善多元的能力支援和穩定可靠的技術保障。

image.png

目前執行Job 的主流方式是採用分散式任務框架,比如 Quartz、XXLJob 、ElasticJob 等。此類框架作為面世時間較長的開源專案,使用企業眾多,功能成熟。而在雲原生時代,K8S Job 和 CronJob 也逐漸被考慮採用。但是上述方案普遍存在以下痛點:

首先,資源利用率低。採用開源的分散式框架需要程式常駐,在雲主機中 7*24 小時收費。而K8S 方案也需要使用者維護叢集節點,造成成本浪費。

其次,可觀測性差。使用者需要完全自建一套日誌採集、叢集和業務監控指標採集、告警系統來滿足生產環境的需要。

最後,運維複雜。無論是開源框架還是 K8S ,都需要關注底層資源的高可用、高併發下任務的容量和彈性,其運維操作具有較高的技術複雜度。

image.png

SAE Job 作為首款面向任務的 Serverless PaaS 平臺,完美解決了以上痛點。SAE Job 重點解決了使用者的效率和成本問題,在兼具傳統任務使用體驗和功能的同時按需使用,按量計費,做到低門檻任務上雲,節省閒置資源成本。同時,體驗上採用了事件驅動加無入侵任務排程和管控,使用者零改造即可具備任務的全生命週期管理及可觀測等開箱即用的功能。

SAE Job 支援多種呼叫方式,包括阿里雲標準 API/SDK,能夠通過視覺化配置 Cron 表示式實現定時任務,通過HTTP/MQ/OSS 等多種觸發器來拉起 SAE Job 。同時支援諸多工核心特性,包括任務生命週期管理、執行記錄、事件通知、日誌監控告警、超時重試、阻塞策略、任務分片、任務多併發等。

image.png

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

① 完備全託管:提供了一站式全託管的管理介面,其任務生命週期管理、可觀測性開箱即用,使用者可以低心智負擔、零成本地學習使用 SAE 。
② 簡單免運維:遮蔽了底層資源,使用者只需關注其核心的業務邏輯開發,無需操心叢集可用性、容量、效能等方面的問題。
③ 超高價效比:採用按需使用、按量付費的模式,只有任務執行業務邏輯時才會拉起收費,其餘時間不收取任何費用,極大節省了資源的成本開銷。
下面演示一下 SAE Job 的整體使用流程:

競霄demo 01.mp4

image.png

SAE Job 以任務為中心,提供傳統的使用者體驗。當前聚焦支援單機廣播、並行分片模型的任務,同時支援事件驅動、併發策略和超時重試等諸多特性,提供低成本、多規格、高彈性的資源例項來滿足短時任務的執行。

相比開源的分散式框架,其優點在於全託管面運維的使用者體驗,開箱即用的完備功能以及白屏化管控,任務執行完立即釋放資源,不會浪費閒置資源成本。

與 K8S Job 相比,其優點除了全託管免費,還有使用者無需瞭解 K8S 相關概念及技術細節,無需維護其複雜度。

image.png

SAE 支援 XXL Job 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 改造遷移流程:
競霄demo 02.mp4
image.png

SAE Job 目前主要聚焦於泛網際網路、新零售、電商、文化傳媒、製造、 IoT、物流、金融證券、醫療衛健和保險等行業。主打的場景包含以下六個:

① 定時任務:定時拉取資料、爬蟲。
② 批處理:資料清洗、轉換、分析。
③ 非同步執行:非同步進行狀態重新整理以及離線查詢。
④ 傳統框架遷移:XXL Job 0改造遷移等。
⑤ 微服務架構:與原有的微服務架構進行呼叫通訊、流程解耦。
⑥ CI/CD:用SAE Job 作為構建映象的載體實現GitOps ,從而完善 CI/CD 的流程。

image.png

最後分享一個採用 SAE Job 結合微服務的客戶案例,使用者的業務訴求為:需要通過定時任務將酒店產品變化的資料定期推送給第三方平臺,比如飛豬等。其任務有兩個特點:首先,任務的初始化耗時久,需要分鐘級;其次,任務執行時間非常長,需要 5-6 個小時,並且除了處理業務邏輯之外,還需要呼叫其他微服務來獲取後設資料等資訊。

我們為此提供的解決方案是將訂單中心、產品中心、使用者中心等微服務直接部署到 SAE應用上,將定時任務部署到 SAE Job裡,使用者無需改造即可通過 SAE 內建的註冊中心實現通訊。

該解決方案為使用者提供了諸多價值:

  • 兩種負載統一入口操作、應用間呼叫0改造。
  • 任務運完即停,立刻釋放閒置資源,極大節省了資源成本。
  • 超時失敗自動重試,無需人工干預實現自愈。
  • 提供完善的任務執行時監控報警機制。

藉助這套解決方案,使用者 0 程式碼改造即完成了整個架構 Serverless 化,同時節省了資源成本和運維成本,SAE 將持續為其應用和任務的可用性保駕護航。

最後,歡迎大家來使用SAE Job, 首款面向任務的 Serverless PaaS 平臺, 感受其對傳統任務所帶來的新變革。

更多內容關注 Serverless 微信公眾號(ID:serverlessdevs),彙集 Serverless 技術最全內容,定期舉辦 Serverless 活動、直播,使用者最佳實踐。

相關文章