Flux 7 uvaja 8 pogosto uporabljenih primerov uporabe Dockerja, in sicer poenostavljeno konfiguracijo, upravljanje tokov kode, izboljšano učinkovitost razvoja, izolirane aplikacije, združene strežnike, zmožnosti odpravljanja napak, večnajemniška okolja in hiter razvoj. Pogovarjali smo se o Dockerju, kako ga uporabljati in ob katerih priložnostih? Morda vam bo ta članek lahko pomagal. Če je kaj za sporočiti, nam lahko sporočite preko komentarjev.
Pred nekaj tedni smo se udeležili DockerCona, prve tehnološke konference, osredotočene na Docker. Namenjen je razvijalcem in praktikom, ki jih zanima gradnja, dostava in poganjanje distribuiranih aplikacij na odprti platformi Docker, ne glede na to, ali ta teče na njihovih lastnih prenosnikih ali virtualnih strojih v podatkovnem centru. Udeležili smo se konference, Flux7 pa je partner za sistemsko integracijo pri Docker Foundations in gostujoči govorec.
Naš izvršni direktor, Aater Suleman, se je pogovarjal z enim od naših naročnikov. Čeprav je bil DockerCon zelo zabaven, sem imel občutek, da se je konferenca preveč osredotočila na podrobnosti Dockerja in zanemarila primere uporabe Dockerja. Zato želim v tem članku predstaviti in deliti nekaj praktičnih primerov uporabe Dockerja.
Preden se pogovorimo o primerih uporabe Dockerja, si poglejmo, kaj naredi Docker tako posebnega.
Docker ponuja lahkotno virtualizacijo skoraj brez dodatnega obremenitve, kar je precej kul.
Prvič, ni vam treba skrbeti za dodatne stroške Dockerja, medtem ko uživate v virtualizacijski moči, ki jo prinaša. Drugič, na istem računalniku lahko ustvarite več kontejnerjev kot na virtualnem stroju.
Še ena prednost Dockerja je, da je mogoče kontejnerje zagnati in ustaviti v nekaj sekundah. Solomon Hykes, ustanovitelj Dockerja, je nekoč govoril o tem, kaj je Docker naredil poleg LXC, in si lahko oglejte.
Tukaj je nekaj mojih primerov uporabe Dockerja, ki vam prikazujejo, kako izkoristiti prednosti Dockerja za ustvarjanje doslednega okolja z nizkimi stroški.
1. Poenostavljena konfiguracija
To je glavni primer uporabe Dockerja, ki ga oglašuje podjetje Docker. Največja prednost virtualnih strojev je možnost poganjanja različnih platform (programske opreme, sistemov) na vaših strojnih napravah, Docker pa zagotavlja enako funkcionalnost z manj dodatnimi stroški. Omogoča ti, da vneseš čas izvajanja in konfiguracijo v kodo ter ju nato namestiš, konfiguracija istega Dockerja pa se lahko uporablja v različnih okoljih, kar zmanjša povezavo med strojnimi zahtevami in aplikacijskimi okolji.
2. Upravljanje cevovodov kode
Prejšnji scenarij je zelo koristen pri upravljanju tokova kode. Koda gre skozi veliko vmesnih okolij od računalnika razvijalca do končne namestitve v produkcijskem okolju. Vsako vmesno okolje ima svoje majhne razlike, Docker pa zagotavlja okolje, ki je dosledno od razvoja do zaizida, kar naredi proces kode veliko lažji.
3. Izboljšati učinkovitost razvoja
To prinaša dodatne prednosti: Docker naredi razvijalce bolj produktivne. Če želite videti bolj podroben primer, si lahko ogledate Aaterjev govor na DevOpsDays Austin 2014 ali DockerCon.
V različnih razvojnih okoljih si vsi želimo dobro delati dve stvari. Prvič, želimo, da je razvojno okolje čim bližje produkcijskemu okolju, in drugič, želimo hitro zgraditi razvojno okolje.
Idealno je, da za dosego prvega cilja vsako storitev poganjamo v ločenem virtualnem stroju, ki spremlja stanje storitve v produkciji. Vendar pa ne želimo vsakič potrebovati omrežne povezave, še posebej pa je težavno vsakič, ko ponovno prevajamo, oddaljeno povezavo. To je tisto, kar Docker počne še posebej dobro, računalniki v razvojnem okolju imajo običajno razmeroma majhen pomnilnik, in pri virtualnem načinu pogosto potrebujemo dodajati pomnilnik strojem v razvojnem okolju, zdaj pa lahko Docker zlahka dovoli, da v Dockerju teče več deset storitev.
4. Izolirane aplikacije
Obstaja veliko razlogov, zakaj se lahko odločite za poganjanje različnih aplikacij na enem računalniku, kot so prej omenjeni scenariji za izboljšanje učinkovitosti razvoja.
Pogosto moramo razmisliti o konsolidaciji strežnikov za zmanjšanje stroškov in razdelitvi monolitne aplikacije v eno ohlapno povezano storitev. Če želite razumeti, zakaj so ohlapno povezane aplikacije tako pomembne, si oglejte ta članek Steva Yegeja, ki primerja Google in Amazon.
5. Konsolidacija strežnikov
Tako kot je več aplikacij integriranih prek virtualnih strojev, Dockerjeva sposobnost izolacije aplikacij omogoča Dockerju konsolidacijo več strežnikov za znižanje stroškov. Ker ni pomnilnika več operacijskih sistemov in omogoča deljenje neuporabljenega pomnilnika med več instancami, lahko Docker ponudi boljšo rešitev za konsolidacijo strežnikov kot virtualni stroji.
6. Sposobnost odpravljanja napak
Docker ponuja veliko orodij, ki niso nujno namenjena samo kontejnerjem, ampak delujejo tudi za vsebnike. Ponujajo veliko funkcionalnosti, vključno z možnostjo nastavitve kontrolnih točk za kontejnerje, nastavitev različic in opazovanja razlik med dvema vsebnikoma, kar lahko pomaga pri odpravljanju napak. Primer tega lahko najdete v članku Docker Save the World.
7. Večnajemniško okolje
Še en zanimiv primer uporabe Dockerja so večnajemniške aplikacije, ki se lahko izognejo prepisovanju kritičnih aplikacij. Poseben primer tega scenarija je razvoj hitrega in enostavnega večnajemniškega okolja za IoT aplikacije. Ta osnovna koda za več najemov je kompleksna in težko obvladljiva, preoblikovanje takšne aplikacije pa je izguba časa in denarja.
Z Dockerjem je enostavno in poceni ustvariti izolirana okolja za več instanc aplikacijske plasti vsakega najemnika, zahvaljujoč hitrosti Dockerjevih okolij in njihovim učinkovitim ukazom za razlikovanje.
Več o tem scenariju lahko izveste tukaj.
8. Hitro razporeditev
Pred virtualnimi stroji traja več dni, da se uvedejo novi strojni viri. Dockerjeva virtualizacijska tehnologija ta čas skrajša na minute, Docker pa preprosto ustvari kontejnerski proces brez zagona operacijskega sistema, kar traja nekaj sekund. To je točno tisto, kar cenita tako Google kot Facebook.
V svojem podatkovnem centru lahko ustvarite uničujoč vir, ne da bi vas skrbeli stroški ponovnega zagona. Običajno imajo podatkovni centri le 30 % izkoriščenost virov, izkoriščenost virov pa je mogoče izboljšati z uporabo Dockerja in učinkovito razporeditvijo virov. |