Öko­sys­tem Do­cker

Rund um die Con­tai­nerTech­nik ent­ste­hen blü­hen­de Land­schaf­ten.

Computerwoche - - Vorderseite - Von Re­né Büst, Se­ni­or Ana­lyst und Cloud Prac­tice Le­ad bei Crisp Re­se­arch

Knapp drei Jah­re sind seit dem initia­len Re­lease von Do­cker ver­gan­gen. Wie in ei­nem Rausch hat es die Open-Sour­ceCon­tai­ner-Tech­nik in­ner­halb kür­zes­ter Zeit auf die No­tiz­zet­tel von CTOs welt­weit ge­schafft. Nur noch sel­ten blei­ben Do­cker-Con­tai­ner und de­ren Vor­zü­ge in tech­ni­schen Keyno­tes, Ap­pli­ka­ti­ons-fo­kus­sier­ten Leit­ar­ti­keln und in Be­ra­tungs­man­da­ten un­er­wähnt.

Doch Do­cker ist in­zwi­schen weit mehr als nur ei­ne Platt­form für das Ap­pli­ka­ti­ons-De­ploy­ment in­ner­halb von vir­tua­li­sier­ten Con­tai­nern. Do­cker hat zu ei­ner neu­en Be­we­gung in der Open-Sour­ce-Ge­mein­de ge­führt und sich da­durch selbst ein ge­wal­ti­ges Öko­sys­tem aus Tools und Lö­sun­gen ge­schaf­fen. Über 20.000 neue Open-Sour­ce-Pro­jek­te (Stand: Ja­nu­ar 2015) sind rund um Do­cker ent­stan­den, dar­un­ter Be­nut­zer­ober­flä­chen, Ma­nage­ment-Frame­works und Mo­ni­to­ring-Tools.

Do­cker nimmt Fahrt auf

Bei Do­cker han­delt es sich um ei­ne Lö­sung, die sich für die au­to­ma­ti­sier­te Be­reit­stel­lung von Ap­pli­ka­tio­nen, die in ei­nem Con­tai­ner or­ga­ni­siert sind, ein­set­zen lässt. Do­cker nutzt hier­zu die Ei­gen­schaf­ten des Li­nux-Ker­nels. Da­bei wer­den Res­sour­cen wie Pro­zes­sor, RAM, Netz­werk oder Block­spei­cher von­ein­an­der iso­liert. Auf die­se Wei­se las­sen sich Ap­pli­ka­tio­nen

voll­stän­dig von der je­wei­li­gen Um­ge­bung in­klu­si­ve der Pro­zes­se, Da­tei­sys­te­me oder des Net­zes tren­nen und au­to­nom be­trei­ben. So kön­nen Ap­pli­ka­tio­nen au­to­nom über Sys­te­me hin­weg ver­scho­ben wer­den. Do­cker kap­selt die ei­gent­li­che An­wen­dung und ih­re not­wen­di­gen Ab­hän­gig­kei­ten wie Bi­b­lio­the­ken in ei­nem vir­tu­el­len Con­tai­ner, der sich dann auf je­dem be­lie­bi­gen Li­nux Ser­ver aus­füh­ren lässt (sie­he auch „Do­cker in a Nuts­hell“, www.co­wo. de/a/3218380).

Do­cker lässt sich über Schnitt­stel­len mit al­len füh­ren­den In­fra­struk­tur­um­ge­bun­gen und -Tools in­te­grie­ren, dar­un­ter Ama­zon Web Ser­vices (AWS), Mi­cro­soft Azu­re, Goog­le Cloud Plat­form, IBM Blu­emix, OpenSt­ack Nova, Pup­pet, Salt, Chef und An­si­ble. Wei­ter­hin wer­den die Plat­form-as-a-Ser­vice-(PaaS-) Sys­te­me Cloud Found­ry, OpenShift Ori­gin und App­ren­da un­ter­stützt.

Die wach­sen­de Be­deu­tung von Do­cker be­zie­hungs­wei­se Con­tai­ner-Tech­no­lo­gi­en wird zu­dem durch die im Ju­ni 2015 ge­grün­de­te „Open Con­tai­ner Initia­ti­ve“(OCI) un­ter­stri­chen. Un­ter Fe­der­füh­rung der „Li­nux Foun­da­ti­on“hat sich ein Kon­sor­ti­um von Tech­no­lo­gie­füh­rern ge­bil­det. Hier­zu ge­hö­ren et­wa AWS, Goog­le, Me­so­s­phe­re, Pi­vo­tal, Cis­co, IBM, Mi­cro­soft, In­tel, Red Hat, Ora­cle und VM­wa­re. Die Initia­ti­ve hat es sich zur Auf­ga­be ge­macht, ge­mein­sa­me Stan­dards für Con­tai­ner, ih­re For­ma­te und Run­ti­me-Um­ge­bun­gen zu ent­wi­ckeln und zu eta­blie­ren.

Ei­nes bleibt je­doch fest­zu­hal­ten. Mit dem Ein­satz ei­ner Con­tai­ner-Tech­nik wer­den Ap­pli­ka­tio­nen erst ein­mal „nur“in ei­ne por­ta­ble Form ver­packt, näm­lich in Con­tai­ner. Dies reicht noch nicht aus, um ei­ne kom­ple­xe, auf Mi­cro­ser­vice-Ar­chi­tek­tu­ren ba­sie­ren­de Ap­pli­ka­ti­on oder gar ei­ne gro­ße Ap­pli­ka­ti­ons­land­schaft zu ver­wal­ten. Hier­für sind mäch­ti­ge Ma­nage­men­tTools und Ent­wick­lungs­platt­for­men not­wen­dig, um et­wa das Con­ti­nuous De­li­very so­wie Kon­zep­te wie De­vOps zu un­ter­stüt­zen. Die­ser Her­aus­for­de­rung ist ei­ne Tech­no­lo­gie wie Do­cker al­lei­ne nicht ge­wach­sen. Viel­mehr ist ein Öko­sys­tem von Lö­sun­gen er­for­der­lich, das sich die­sen The­men wid­met. Vie­le Tools rund um das Do­cker-oder Con­tai­ner-Uni­ver­sum ha­ben sich im Open Con­tai­ner Eco­sys­tem (vor­mals Do­cker Eco­sys­tem) ver­sam­melt. Hier fin­den sich An­wen­dun­gen, Ser­vices und Platt­for­men zu den The­men Si­cher­heit, Mo­ni­to­ring, Net­wor­king, Orches­tra­ti­on, Ma­nage­ment, Con­tai­ner OS, Hos­ting und Ser­vice-Pro­vi­der, Ent­wick­ler-Tools, Ent­wick­ler­platt­for­men und vie­les mehr.

Markt­über­blick: Das Do­cker-Öko­sys­tem

Im Lau­fe der letz­ten knapp drei Jah­re hat sich rund um Do­cker ei­ne Com­mu­ni­ty ge­bil­det, die zu ei­nem pas­sa­blen Öko­sys­tem ge­führt hat. Zu den be­kann­tes­ten und wich­tigs­ten Tools und Lö­sun­gen zäh­len un­ter an­de­rem:

1. Do­cker Tool­box: Im Fe­bru­ar 2015 hat Do­cker selbst ei­ne Rei­he von Orches­tra­ti­on-Tools ver­öf­fent­licht. Hier­zu ge­hö­ren bis­her:

Do­cker Com­po­se: Da­mit las­sen sich Mul­tiCon­tai­ner-Ap­pli­ka­tio­nen mit al­len ih­ren Ab­hän­gig­kei­ten in­ner­halb ei­ner ein­zi­gen Da­tei de­fi­nie­ren und an­schlie­ßend mit ei­nem ein­zi­gen Be­fehl aus­rol­len.

Do­cker Ma­chi­ne sorgt für die au­to­ma­ti­sier­te In­stal­la­ti­on ei­ner Do­cker-Um­ge­bung auf dem lo­ka­len Com­pu­ter, der In­fra­struk­tur ei­nes Cloud-An­bie­ters oder der ei­ge­nen Re­chen­zen­trums­in­fra­struk­tur. Do­cker Ma­chi­ne stellt die Hosts be­reit, in­stal­liert die Do­cker En­gi­ne und kon­fi­gu­riert den Do­cker Cli­ent.

Do­cker Ki­te­ma­tic lässt ei­ne Do­cker-Um­ge­bung auf den lo­ka­len Be­triebs­sys­te­men für Macs und Win­dows aus­füh­ren und bie­tet ei­ne gra­fi­sche Be­nut­zer­ober­flä­che zur Ver­wal­tung der Con­tai­ner.

Do­cker En­gi­ne ist die grund­le­gen­de Tech­nik­platt­form für den Auf­bau und Be­trieb ei­ner Do­cker-Con­tai­ner-Um­ge­bung.

Do­cker Tu­tum ist ein Tool für die Be­reit­stel­lung und das Ma­nage­ment von Con­tai­ner- Ap­pli­ka­tio­nen. Zum Leis­tungs­um­fang ge­hö­ren ein Dash­board, Mo­ni­to­ring, Log­ging, Ap­pli­ka­ti­ons­his­to­rie etc. Wei­ter­hin las­sen sich dar­über die Ap­pli­ka­tio­nen star­ten, stop­pen und ska­lie­ren.

Do­cker Hub ist ein Cloud-ba­sier­ter Ser­vice von Do­cker, mit dem sich Con­tai­ner-Ap­pli­ka­tio­nen und -Ser­vices ent­wi­ckeln, aus­rol­len und ver­wal­ten las­sen.

Do­cker Swarm stellt ei­nen Clus­ter zur Ver­fü­gung, auf dem sich ei­ne Grup­pe aus Do­cker En­gi­nes zu ei­nem ein­zi­gen vir­tu­el­len Do­cker Host zu­sam­men­fas­sen las­sen.

2. Ku­ber­ne­tes ist ein Open-Sour­ce-Do­ckerMa­nage­ment-Tool, das von Goog­le ent­wi­ckelt wur­de, um Do­cker-Con­tai­ner-Ap­pli­ka­tio­nen in ei­ner Clus­ter-Um­ge­bung zu ver­wal­ten. Hier­zu ge­hö­ren et­wa die Kom­mu­ni­ka­ti­on zwi­schen den Con­tai­nern so­wie die gleich­mä­ßi­ge Ver­tei­lung von Con­tai­nern über den Clus­ter hin­weg.

3. Me­so­s­phe­re be­zeich­net sich selbst als „Da­ta Cen­ter Ope­ra­ting Sys­tem“. Me­so­s­phe­re bün­delt hier­zu je­de Ser­ver-Art (phy­si­ka­lisch, vir­tu­ell) zu ei­nem gro­ßen Pool von ge­teil­ten Res­sour­cen – ei­nem Clus­ter. An­hand des „Do­cker Exe­cu­tor for Me­sos“las­sen sich in­ner­halb ei­nes Me­so­s­phe­re-Clus­ters eben­falls Do­cker-Con­tai­ner be­trei­ben.

4. OpenSt­ack ist das füh­ren­de Be­triebs­sys­tem, wenn es um den Auf­bau und Be­trieb ei­ner Open-Sour­ce-ba­sier­ten Cloud-In­fra­struk­tur­land­schaft geht. Mit dem „Do­cker Dri­ver“für „OpenSt­ack Nova Com­pu­te“las­sen sich auch Do­cker-Con­tai­ner auf ei­ner OpenSt­ack-In­fra­struk­tur be­trei­ben.

5. Shi­p­y­ard ist ei­ne eben­falls quell­of­fe­ne Do­cker-Ma­nage­ment-Lö­sung, mit der sich Do­cker-Res­sour­cen wie Con­tai­ner, Images, Hosts etc. über ei­ne ein­zi­ge zen­tra­le Ma­nage­ment-Ober­flä­che ver­wal­ten las­sen.

6. Pa­na­max ist ein Tool für die Ent­wick­lung, das Be­reit­stel­len und Tei­len von Con­tai­ner­ba­sier­ten An­wen­dun­gen. Da­zu ge­hört auch ein Open-Sour­ce-Ap­pli­ka­ti­ons-Mark­platz, der auf Git­hub ge­hosted wird.

7. Dro­ne ist ei­ne Con­ti­nuous In­te­gra­ti­on Plat­form für Do­cker. Die Platt­form lässt sich auf ei­nem lo­ka­len Lap­top oder in­ner­halb ei­ner ei­ge­nen IT-In­fra­struk­tur be­trei­ben.

Con­tai­ner-Tech­no­lo­gi­en als Be­stand­teil der Di­gi­tal In­fra­struc­tu­re Plat­form

Con­tai­ner-Tech­no­lo­gi­en sind zu­dem ein wich­ti­ger Be­stand­teil der „Di­gi­tal In­fra­struc­tu­re Plat­form“. Sie ste­hen re­prä­sen­ta­tiv für die „Dy­na­mic IT“im tech­ni­schen di­gi­ta­len Ab­bild ei­nes Un­ter­neh­mens, von dem in Zu­kunft im­mer mehr Ge­schäfts­mo­del­le un­ter­stützt wer­den. Do­cker-Con­tai­ner hel­fen nicht nur da­bei, Lega­cy-Ap­pli­ka­tio­nen und an­de­re Wor­kloads aus der „Sta­tic IT“in die „Dy­na­mic IT“zu über­füh­ren, son­dern sie ver­bes­sern auch:

D Die Ge­schwin­dig­keit: Do­cker-Con­tai­ner sind leicht­ge­wich­ti­ger als Hy­per­vi­sor. Sie be­nö­ti­gen kein Gast­be­triebs­sys­tem, und auch der Res­sour­cen­ver­brauch für Spei­cher ist deut­lich ge­rin­ger. Zu­dem las­sen sich Con­tai­ner schnel­ler be­reit­stel­len, da der Boot-Pro­zess, wie ihn ei­ne vir­tu­el­le Ma­schi­ne be­nö­tigt, ent­fällt.

D Die Si­cher­heit: Je­der Con­tai­ner ver­fügt über ei­nen ei­ge­nen Netz­werk-St­ack, des­sen

Ports und Zu­griffs­rech­te sich un­ab­hän­gig kon­trol­lie­ren las­sen. Ap­pli­ka­tio­nen, die in ei­nem be­stimm­ten Con­tai­ner lau­fen, kön­nen so kon­fi­gu­riert wer­den, dass sie mit an­de­ren Con­tai­nern oder ex­ter­nen Sys­te­men über be­stimm­te Netz­schnitt­stel­len kom­mu­ni­zie­ren. Da­mit las­sen sich Ap­pli­ka­tio­nen von­ein­an­der iso­lie­ren, die auf dem­sel­ben Host-Sys­tem lau­fen.

D Das De­ploy­ment: Do­cker-Con­tai­ner ver­ein­fa­chen das De­ploy­ment, in­dem sie ge­mein­sam mit al­len ih­ren Ab­hän­gig­kei­ten zu Bi­b­lio­the­ken, Be­triebs­sys­te­men und an­de­ren Res­sour­cen in ei­nen ein­zel­nen Con­tai­ner ver­packt wer­den. Da­mit lässt sich ein Con­tai­ner auf je­dem be­lie­bi­gen Sys­tem oh­ne Kom­pa­ti­bi­li­täts­pro­ble­me aus­füh­ren, auf dem Do­cker läuft.

D Die Per­for­mance: In­ner­halb ei­ner Con­tai­ner-Ar­chi­tek­tur lau­fen al­le Con­tai­ner auf ei­nem ein­zi­gen Be­triebs­sys­tem be­zie­hungs­wei­se des­sen Ker­nel. Das be­deu­tet, dass sich auf je­der be­lie­bi­gen Hard­ware­platt­form da­mit mehr Con­tai­ner be­trei­ben las­sen, als auf ei­ner ver­gleich­ba­ren vir­tu­el­len Um­ge­bung vir­tu­el­le Ma­schi­nen lau­fen kön­nen. Ein phy­si­ka­li­scher Ser­ver-Host, der ty­pi­scher­wei­se Platz für zehn bis 100 vir­tu­el­le Ma­schi­nen bie­tet, kann et­wa 100 bis 1000 Con­tai­ner be­her­ber­gen. Hin­zu kommt, dass bei ei­ner Con­tai­ner-Mi­gra­ti­on le­dig­lich die Bi­na­ries der Ap­pli­ka­ti­on und de­ren Da­ten ko­piert wer­den müs­sen, aber nicht das ge­sam­te Gast­be­triebs­sys­tem, wie es bei ei­ner vir­tu­el­len Ma­schi­ne der Fall ist.

D Das Chan­ge-Ma­nage­ment: Do­cker-Con­tai­ner ar­bei­ten ähn­lich wie ein GIT Re­po­si­to­ry, bei dem Nut­zer ih­re Än­de­run­gen an Do­ckerI­mages mit­tei­len. Da Con­tai­ner stark mit den Ab­hän­gig­kei­ten ei­ner be­stimm­ten Ap­pli­ka­ti­on in­te­griert sind, kann je­des Up­date in­ner­halb der Con­tai­ner-Ar­chi­tek­tur zu Sta­bi­li­täts­pro­ble­men füh­ren. Soll­te es da­zu kom­men, müs­sen Ad­mi­nis­tra­to­ren re­agie­ren und ei­nen Roll­back zu ei­ner lauf­fä­hi­gen Ver­si­on der Ap­pli­ka­ti­on und ih­rer Ab­hän­gig­kei­ten an­sto­ßen.

Newspapers in German

Newspapers from Germany

© PressReader. All rights reserved.