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