"Flux 7" pristato 8 dažniausiai naudojamus "Docker" naudojimo atvejus, būtent supaprastintą konfigūraciją, kodo srauto valdymą, patobulintą kūrimo efektyvumą, izoliuotas programas, konsoliduotus serverius, derinimo galimybes, kelių nuomininkų aplinką ir greitą plėtrą. Mes kalbėjome apie "Docker", kaip juo naudotis ir kokiomis progomis? Galbūt šis straipsnis gali jums padėti. Jei yra ką bendrauti, galite susisiekti su mumis komentaruose.
Prieš kelias savaites dalyvavome "DockerCon", pirmojoje į "Docker" orientuotą technologijų konferenciją. Jis skirtas kūrėjams ir praktikams, norintiems kurti, pristatyti ir paleisti paskirstytas programas "Docker" atviroje platformoje, nesvarbu, ar ji veikia jų nešiojamuosiuose kompiuteriuose, ar virtualiose mašinose duomenų centre. Mes dalyvavome konferencijoje, o "Flux7" yra "Docker" fondų sistemų integravimo partneris ir kviestinis pranešėjas.
Mūsų generalinis direktorius Aateris Sulemanas kalbėjosi su vienu iš mūsų klientų. Nors "DockerCon" buvo labai smagu, jaučiau, kad konferencijoje per daug dėmesio buvo skiriama "Docker" specifikai ir nepaisoma "Docker" naudojimo atvejų. Taigi, šiame straipsnyje noriu pristatyti ir pasidalinti kai kuriais praktiniais "Docker" naudojimo atvejais.
Prieš aptardami "Docker" naudojimo atvejus, pažvelkime, kuo "Docker" toks ypatingas.
"Docker" siūlo lengvą virtualizaciją beveik be papildomų išlaidų, o tai yra gana šaunu.
Pirma, jums nereikia jaudintis dėl papildomų "Docker" pridėtinių išlaidų, mėgaujantis jo teikiama virtualizacijos galia. Antra, tame pačiame kompiuteryje galite sukurti didesnį konteinerių skaičių nei virtualioje mašinoje.
Kitas "Docker" privalumas yra tas, kad konteinerius galima paleisti ir sustabdyti per kelias sekundes. Solomonas Hykesas, "Docker" įkūrėjas, kartą kalbėjo apie tai, ką "Docker" padarė tik LXC, ir jūs galite tai patikrinti.
Štai keletas mano "Docker" naudojimo atvejų, parodančių, kaip išnaudoti "Docker" privalumus, kad sukurtumėte nuoseklią aplinką su mažomis pridėtinėmis išlaidomis.
1. Supaprastinta konfigūracija
Tai yra pagrindinis "Docker" naudojimo atvejis, kurį reklamuoja "Docker Company". Didžiausias virtualių mašinų privalumas yra galimybė paleisti skirtingas platformas (programinę įrangą, sistemas) savo aparatinėje įrangoje, o "Docker" teikia tas pačias funkcijas su mažesnėmis papildomomis išlaidomis. Tai leidžia įdėti vykdymo laiką ir konfigūraciją į kodą ir tada jį įdiegti, o to paties "Docker" konfigūraciją galima naudoti skirtingose aplinkose, o tai sumažina aparatinės įrangos reikalavimų ir programų aplinkų susiejimą.
2. Kodo vamzdyno valdymas
Ankstesnis scenarijus yra puiki pagalba valdant kodo srautą. Kodas pereina per daugybę tarpinių aplinkų nuo kūrėjo kompiuterio iki galutinio diegimo gamybos aplinkoje. Kiekviena tarpinė aplinka turi savo nedidelių skirtumų, o "Docker" suteikia aplinką, kuri yra nuosekli nuo kūrimo iki paleidimo, todėl kodo vamzdynas yra daug lengvesnis.
3. Pagerinkite kūrimo efektyvumą
Tai suteikia papildomų privalumų: "Docker" daro kūrėjus produktyvesnius. Jei norite pamatyti išsamesnį pavyzdį, galite peržiūrėti "Aater" pokalbį "DevOpsDays Austin 2014" arba "DockerCon".
Skirtingose kūrimo aplinkose visi norime gerai atlikti du dalykus. Pirma, norime, kad kūrimo aplinka būtų kuo arčiau gamybos aplinkos, antra, norime greitai sukurti kūrimo aplinką.
Idealiu atveju, norėdami pasiekti pirmąjį tikslą, turime paleisti kiekvieną paslaugą atskiroje virtualioje mašinoje, kad galėtume stebėti paslaugos būklę gamyboje. Tačiau nenorime, kad kiekvieną kartą reikia tinklo ryšio, o kiekvieną kartą iš naujo kompiliuojant prisijungti nuotoliniu būdu yra ypač varginanti. Tai "Docker" daro ypač gerai, kūrimo aplinkoje esančios mašinos paprastai turi palyginti mažą atmintį, o naudojant virtualią dažnai turime pridėti atminties prie kūrimo aplinkoje esančių mašinų, tačiau dabar "Docker" gali lengvai leisti dešimtims paslaugų veikti "Docker".
4. Izoliuokite programas
Yra daug priežasčių, kodėl galite pasirinkti paleisti skirtingas programas viename kompiuteryje, pvz., anksčiau minėtus scenarijus, kad pagerintumėte kūrimo efektyvumą.
Dažnai turime apsvarstyti serverių konsolidavimą, kad sumažintume išlaidas, ir monolitinės programos padalijimą į vieną laisvai susietą paslaugą. Jei norite suprasti, kodėl laisvai susietos programos yra tokios svarbios, peržiūrėkite šį Steve'o Yege'o straipsnį, kuriame lyginamos "Google" ir "Amazon".
5. Konsoliduokite serverius
Kaip kelios programos yra integruotos per virtualias mašinas, "Docker" galimybė izoliuoti programas leidžia "Docker" konsoliduoti kelis serverius, kad sumažėtų išlaidos. Neturėdama atminties iš kelių operacinių sistemų ir galimybės dalytis nenaudojama atmintimi keliuose egzemplioriuose, "Docker" gali pasiūlyti geresnį serverių konsolidavimo sprendimą nei virtualios mašinos.
6. Derinimo galimybė
"Docker" siūlo daugybę įrankių, kurie nebūtinai skirti tik konteineriams, bet ir konteineriams. Jie siūlo daug funkcijų, įskaitant galimybę nustatyti konteinerių kontrolinius taškus, nustatyti versijas ir pamatyti skirtumus tarp dviejų konteinerių, o tai gali padėti derinti klaidas. To pavyzdį galite rasti straipsnyje "Docker Save the World".
7. Kelių nuomininkų aplinka
Kitas įdomus "Docker" naudojimo atvejis yra kelių nuomininkų programos, kurios gali išvengti svarbių programų perrašymo. Vienas konkretus šio scenarijaus pavyzdys yra greitos, lengvai naudojamos kelių nuomininkų aplinkos kūrimas daiktų interneto programoms. Šis kelių nuomininkų pagrindinis kodas yra sudėtingas ir sunkiai valdomas, o tokios programos perplanavimas yra laiko ir pinigų švaistymas.
Naudojant "Docker", lengva ir nebrangu sukurti izoliuotą aplinką keliems kiekvieno nuomininko programos sluoksnio egzemplioriams dėl "Docker" aplinkų greičio ir efektyvių skirtumų komandų.
Daugiau apie šį scenarijų galite sužinoti čia.
8. Greitai diekite
Prieš virtualias mašinas reikia kelių dienų, kol pristatomi nauji aparatinės įrangos ištekliai. "Docker" virtualizacijos technologija sumažina šį laiką iki minučių, o "Docker" tiesiog sukuria konteinerio procesą nepaleisdamas operacinės sistemos, o tai užtrunka kelias sekundes. Būtent tai vertina ir "Google", ir "Facebook".
Galite sukurti sunaikinti išteklius savo duomenų centre, nesijaudindami dėl paleidimo iš naujo išlaidų. Paprastai duomenų centrai naudoja tik 30 % išteklių, o išteklių panaudojimą galima pagerinti naudojant "Docker" ir efektyvų išteklių paskirstymą. |