Allokation von Cloud-Ressourcen in verteilten Workflows mittels Datenfluss-Analyse

Thomas Noll

Das Kon­zept Infra­st­ruc­tu­re-as-a-Ser­vice (IaaS) als wich­ti­ge Aus­prä­gung von Cloud- Com­pu­ting beschreibt die unkom­pli­zier­te Nut­zung vir­tu­el­ler Ser­ver- Infra­struk­tur nach Bedarf. Ein Sys­tem zur bedarfs­ge­steu­er­ten Ein­bin­dung und gleich­mä­ßi­gen Aus­las­tung sol­cher Cloud-Res­sour­cen bei der Aus­füh­rung Web­ser­vice­ba­sier­ter BPEL-Work­flows wur­de im Rah­men der Diplom­ar­beit ent­wi­ckelt.

Es ermög­licht die Nut­zung vor­han­de­ner „sta­ti­scher“ Kom­po­nen­ten, wie z.B. eige­ner Ser­ver oder Clus­ter, die je nach Aus­las­tung auto­ma­tisch durch die Allo­ka­ti­on von Cloud-Infra­struk­tur unter­stützt wer­den.

Das Sche­du­ling der ein­zel­nen Work­flow-Schrit­te fin­det unter Berück­sich­ti­gung von Daten­ab­hän­gig­kei­ten statt, da die­se bei der Aus­füh­rung zu Daten­über­tra­gun­gen füh­ren, wenn die jewei­li­gen Schrit­te nicht auf einer Res­sour­ce aus­ge­führt wer­den. Die dar­aus resul­tie­ren­den Ver­zö­ge­run­gen wir­ken sich auf die Aus­füh­rungs­zeit des Pro­zes­ses aus, wes­halb sie bei der Opti­mie­rung der Lauf­zeit berück­sich­tigt wer­den. Zusätz­lich wird bei der Pro­gno­se der Durch­lauf­zei­ten die Rechen­leis­tung und Netz­werk­an­bin­dung der betei­lig­ten Sys­te­me beach­tet. Damit soll ein opti­ma­les Zusam­men­spiel zwi­schen hete­ro­ge­nen sta­ti­schen und dyna­mi­schen Res­sour­cen erzielt wer­den.

Das ent­wi­ckel­te Sche­du­ling-Ver­fah­ren zer­legt den Daten­fluss­gra­phen des Pro­zes­ses in kri­ti­sche Pfa­de. Die­se wer­den mit einem gene­ti­schen Algo­rith­mus opti­miert, der an die spe­zi­fi­sche Pro­blem­stel­lung ange­passt wur­de. Durch den Par­ti­tio­nie­rungs­schritt ent­ste­hen linea­re Vek­to­ren, die sich im Gegen­satz zu einem ver­zweig­ten Gra­phen als Ein­ga­be für einen gene­ti­schen Algo­rith­mus anbie­ten. Durch die gewähl­te Auf­tei­lung kann es, im Gegen­satz zu ande­ren gene­ti­schen Sche­du­ling- Ver­fah­ren, nicht zu Ver­let­zun­gen von Abhän­gig­kei­ten im Gra­phen kom­men. Zur gleich­mä­ßi­gen Aus­las­tung der Res­sour­cen kom­men zusätz­lich Reser­vie­run­gen zum Ein­satz. Durch sie wird auch fest­ge­stellt, ob zusätz­li­che Cloud- Res­sour­cen benö­tigt wer­den. Da BPEL-Work­flows auf­grund des while-Ope­ra­tors nicht-deter­mi­nis­tisch sein kön­nen, wird der Pro­zess­ab­lauf über­wacht, so dass Schlei­fen erkannt wer­den und ein dyna­mi­sches Re-Sche­du­ling für den betrof­fe­nen Teil­gra­phen durch­ge­führt wer­den kann.

Bei zusätz­li­chem Res­sour­cen­be­darf star­tet das Sys­tem Vir­tu­el­le Maschi­nen, die je nach benö­tig­tem Ser­vice-Typ unter­schied­li­che Sys­tem-Images ver­wen­den. Das ent­stan­de­ne Sys­tem ermög­licht die Bereit­stel­lung einer Aus­füh­rungs­um­ge­bung für BPEL-Work­flows auf der Cloud-Ebe­ne Plat­form-as-a-Ser­vice (PaaS). Dem Nut­zer wer­den alle Res­sour­cen­be­lan­ge abge­nom­men, da die Rechen­an­for­de­run­gen der aus­zu­füh­ren­den Pro­zes­se dyna­misch durch die unter­lie­gen­de IaaS-Schicht bedient wer­den. Dadurch wird die Mög­lich­keit eröff­net, kom­ple­xe Work­flows aus­zu­füh­ren, ohne dau­er­haft eine umfang­rei­che Ser­ver-Infra­struk­tur mit ent­spre­chen­den Fix­kos­ten unter­hal­ten zu müs­sen. Vor allem bei Pro­zes­sen, die nur ein­ma­lig oder in unre­gel­mä­ßi­gen Abstän­den aus­ge­führt wer­den müs­sen, erge­ben sich so völ­lig neue Mög­lich­kei­ten in Bezug auf Fle­xi­bi­li­tät und Ska­lier­bar­keit der Rechen­in­fra­struk­tur.