Skip to content

Uvod

Izzivi

Večkrat se zgodi, da porabimo precej časa za vzpostavitev okolja, v katerem lahko izvajamo želeno uporabniško programsko opremo. Prej ali slej moramo programsko opremo znati zagnati drugje, bodisi na računalniku sodelavca, bodisi na superračunalniku1.

Na drugem računalniku lahko teče drug operacijski sistem, lahko so nameščene druge verzije knjižnic in ostalih orodij, s katerimi naša programska oprema ne deluje. Na superračunalniku verjetno tudi nimamo dovolj pravic za nameščanje programske opreme in moramo za nameščanje in vse spremembe prositi skrbnika.

Superračunalnik uporablja veliko uporabnikov, vsak z drugačnimi željami in potrebami. Skrbnik težko takoj ugodi vsem, saj je nameščanje programskega paketa marsikdaj kompleksno in dolgotrajno, različna programska oprema lahko zahteva različne verzije iste knjižnice, nameščanje programske opreme med rednim delovanjem sistema ni vedno mogoče, nepreverjena programska oprema lahko vpliva na stabilnost delovanja superračunalnika.

Lahko da smo napisali aplikacijo, ki jo želimo deliti z drugimi. Manj tehnično podkovani uporabniki imajo lahko pri nameščanju aplikacije velike težave. Zgodi se, da jim aplikacija ne deluje, ali pa vrača drugačne rezultate, kot nam.

Mnogo naštetih težav lahko premostimo, če znamo vzpostaviti robustno izvajalno okolje, ki je delno izolirano od operacijskega sistema, in za to izvajalno okolje pripraviti enostavne recepte, s katerimi na zanesljiv in predvidljiv način v okolje vključimo potrebne knjižnice, orodja in seveda želene aplikacije.

Rešitve

Danes sta na voljo dve tehnologiji, ki nam pomagata pri reševanju naštetih problemov:

  • navidezni stroji (angl. virtual mahines) za virtualizacijo strojne opreme in
  • vsebniki (angl. containers) za virtualizacijo operacijskega sistema.

Virtualizacija je elegantna rešitev, ki zagotavlja sobivanje najrazličnejše uporabniške programske opreme in zato lažje upravljanje s sistemom. Zmogljivost sistema je zaradi virtualizacije nekoliko manjša, seveda na račun večje robustnosti in enostavnosti vzdrževanja.


  1. A. Kashev, Working with Containers, ISPDC 2018 Tutorial, University of Bern 2018.