在最近的AWS Re:Invent大會上,Amazon發(fā)布了AWS Batch的預(yù)覽版。通過AWS Batch,用戶可以對他們云端的調(diào)度服務(wù)和工作負(fù)載進(jìn)行優(yōu)化。Amazon推出這項服務(wù)是為了滿足大量AWS客戶的需求,他們基于EC2實(shí)例、容器和CloudWatch建立他們自己的批處理平臺。
批次和作業(yè)調(diào)度器并不是什么新的模式。一直以來,調(diào)度器都是運(yùn)行在固定的本地基礎(chǔ)設(shè)施集群上。人們要么過度構(gòu)建基礎(chǔ)設(shè)施,不能物盡其用,要么基礎(chǔ)設(shè)施構(gòu)建不足,造成機(jī)會的流失,這些都是不可避免的。AWS首席布道師Jeff Barr看到了基于云平臺構(gòu)建現(xiàn)代化調(diào)度平臺的機(jī)會:
我們相信云計算可以讓批處理計算模型變得更好,讓它可以更快地訪問更多不同類型的EC2實(shí)例,可以根據(jù)具體需求彈性地伸縮,并帶來新的計費(fèi)模型,這個計費(fèi)模型根據(jù)實(shí)際處理能力來計費(fèi),經(jīng)濟(jì)實(shí)惠。
AWS Batch不需要在服務(wù)器端安裝任何東西,而且可以動態(tài)分配計算資源,它可以加入Amazon Spot實(shí)例,這樣就可以搶占Amazon EC2空閑的計算資源。AWS Batch服務(wù)還提供了作業(yè)優(yōu)先級和依賴管理特性。Amazon希望客戶可以把精力集中在業(yè)務(wù)需求上,讓AWS Batch來處理剩下的事情。
在AWS re:Invent大會的“AWS Batch:在AWS上運(yùn)行簡單高效的批處理計算”討論環(huán)節(jié),AWS首席產(chǎn)品經(jīng)理Jamie Kinney介紹了有關(guān)AWS Batch的幾個概念:
Jobs是作業(yè)單元,它們被提交到Job Queues,并按照優(yōu)先級排序,一直待在隊列里直到有計算資源來執(zhí)行它們。 Job Definitions指定如何執(zhí)行Jobs。每個作業(yè)都需要引用一個Job Definition,Job Definition的參數(shù)可以被覆蓋,包括vCPU、內(nèi)存、掛載點(diǎn)和容器屬性。 Job Queues用來保存Jobs,直到它們被執(zhí)行。Jobs會等待它們所依賴的Jobs執(zhí)行完畢,或者等待分配系統(tǒng)資源。 Compute Environments包括托管和非托管兩種環(huán)境。在托管環(huán)境里,你可以提出業(yè)務(wù)需求(比如實(shí)例類型、對vCPU的需求量,等等),AWS將會為你啟動和擴(kuò)展資源。而在非托管環(huán)境里,你可以啟動和管理自己的資源,比如容器。 Scheduler對已提交到Job Queue的Jobs進(jìn)行評估,評估它們在何時、何處以及如何被執(zhí)行。Jobs幾乎是按照它們提交的順序來執(zhí)行的,只要它們所依賴的條件得到滿足。Amazon提供了AWS Batch適用性指南。對于需要大量傳遞數(shù)據(jù)的場景,比如ETL或大數(shù)據(jù)處理,Amazon建議客戶使用EMR、數(shù)據(jù)管道、Redshift或其它相關(guān)的數(shù)據(jù)處理工具。而對于存在很多小型調(diào)度作業(yè)的場景,可以使用AWS,不過Kinney認(rèn)為客戶“需要一個工作流或作業(yè)調(diào)度系統(tǒng)來管理這些作業(yè)。”
Kinney認(rèn)為AWS Batch就是一個理想的工具,它特別適用于
那些在異構(gòu)計算機(jī)上運(yùn)行大量大大小小計算任務(wù)的客戶。
AWS Batch目前還處在預(yù)覽版階段,只在美國東部(弗吉尼亞北部)地區(qū)可用。等到服務(wù)的可用性達(dá)到通用標(biāo)準(zhǔn),就會在其它地區(qū)開放。根據(jù)AWS Batch的路線圖,AWS Batch將在后期支持作業(yè)數(shù)組,并且可以使用AWS Lambda來執(zhí)行作業(yè)。
查看英文原文:Amazon Introduces AWS Batch Preview