Flux 7 tutvustab 8 Dockeri levinud kasutusjuhtumit: lihtsustatud konfiguratsioon, kooditorustiku haldamine, paranenud arendustõhusus, isoleeritud rakendused, konsolideeritud serverid, silumisvõimalused, mitme üürnikuga keskkonnad ja kiire arendus. Oleme rääkinud Dockerist, kuidas seda kasutada ja millistel kordadel? Võib-olla aitab see artikkel sind. Kui on midagi öelda, võid meiega kommentaaride kaudu suhelda.
Mõni nädal tagasi osalesime DockerConil, esimesel Dockeri-kesksel tehnoloogiakonverentsil. See on suunatud arendajatele ja praktikutele, kes on huvitatud hajutatud rakenduste loomisest, tarnimisest ja käivitamisest Dockeri avatud platvormil, olgu see siis nende enda sülearvutites või virtuaalmasinates andmekeskuses. Me osalesime konverentsil ning Flux7 on Docker Foundationsi süsteemiintegratsiooni partner ja külalisesineja.
Meie tegevjuht Aater Suleman rääkis ühe meie kliendiga. Kuigi DockerCon oli väga lõbus, tundus mulle, et konverents keskendus liiga palju Dockeri spetsiifikale ja jättis tähelepanuta Dockeri kasutusvõimalused. Seega soovin selles artiklis tutvustada ja jagada mõningaid Dockeri praktilisi kasutusjuhtumeid.
Enne kui arutame Dockeri kasutusjuhtumeid, vaatame, mis teeb Dockeri nii eriliseks.
Docker pakub kerget virtualiseerimist peaaegu ilma lisakoormuseta, mis on päris lahe.
Esiteks ei pea sa muretsema Dockeri lisakoormuse pärast, samal ajal nautides virtualiseerimise võimalust, mida see pakub. Teiseks saab samal masinal luua suurema arvu konteinereid kui virtuaalmasinas.
Teine Dockeri eelis on see, et konteinerid saab käivitada ja peatada sekunditega. Dockeri asutaja Solomon Hykes rääkis kord, mida Docker on teinud lisaks LXC-le, ja saad seda kindlasti vaadata.
Siin on mõned minu Dockeri kasutusjuhtumid, mis näitavad, kuidas kasutada Dockeri eeliseid, et luua ühtlane keskkond madalate üldkuludega.
1. Lihtsustatud konfiguratsioon
See on Dockeri peamine kasutusjuhtum, mida Docker Company reklaamib. Virtuaalmasinate suurim eelis on võimalus käivitada erinevaid platvorme (tarkvara, süsteeme) oma riistvaraseadmetel ning Docker pakub sama funktsionaalsust väiksema lisakoormusega. See võimaldab panna käitusaja ja konfiguratsiooni koodi ning seejärel juurutada ning sama Dockeri konfiguratsiooni saab kasutada erinevates keskkondades, mis vähendab riistvaranõuete ja rakenduskeskkondade vahelist seost.
2. Koodi torujuhtme haldus
Eelmine stsenaarium aitab suurepäraselt koodi juhtimist. Kood läbib palju vahekeskkondi arendaja masinast kuni lõpliku juurutuseni tootmiskeskkonnas. Igal vahepealsel keskkonnal on oma väiksed erinevused ning Docker pakub keskkonda, mis on arendusest käivitamiseni järjepidev, muutes koodi torujuhtme palju lihtsamaks.
3. Paranda arenduse efektiivsust
See toob kaasa täiendavaid eeliseid: Docker muudab arendajad produktiivsemaks. Kui soovid näha üksikasjalikumat näidet, võid vaadata Aateri ettekannet DevOpsDays Austin 2014 või DockerConil.
Erinevates arenduskeskkondades tahame kõik teha kahte asja hästi. Esiteks tahame muuta arenduskeskkonna võimalikult lähedale tootmiskeskkonnale ja teiseks tahame arenduskeskkonda kiiresti üles ehitada.
Ideaalis peaksime esimese eesmärgi saavutamiseks käivitama iga teenuse eraldi virtuaalmasinas, et jälgida tootmises oleva teenuse tervist. Siiski ei taha me iga kord võrguühendust vajada ja eriti tülikas on iga kord uuesti kompileerides kaugühendus teha. Seda teeb Docker eriti hästi – arenduskeskkonna masinatel on tavaliselt suhteliselt väike mälu ning virtuaalse süsteemi kasutamisel tuleb sageli lisada mälu arenduskeskkonna masinatele, kuid nüüd saab Docker hõlpsasti lasta kümnetel teenustel Dockeris töötada.
4. Isoleeri rakendused
On palju põhjuseid, miks võid valida erinevate rakenduste jooksutamise ühel masinal, näiteks eelnevalt mainitud stsenaariumid, et parandada arenduse efektiivsust.
Sageli tuleb arvestada serverite konsolideerimist kulude vähendamiseks ning monoliitse rakenduse jagamist üheks lõdvalt seotud teenuseks. Kui tahad mõista, miks lõdvalt seotud rakendused on nii olulised, vaata Steve Yege artiklit, mis võrdleb Google'i ja Amazoni.
5. Konsolideeri serverid
Nii nagu mitmed rakendused integreeritakse virtuaalmasinate kaudu, võimaldab Dockeri võime rakendusi isoleerida Dockeril koondada mitu serverit kulude vähendamiseks. Kuna mitme operatsioonisüsteemi mälu puudub ja kasutamata mälu saab jagada mitme instantsi vahel, võib Docker pakkuda paremat serverite konsolideerimise lahendust kui virtuaalmasinad.
6. Silumisvõime
Docker pakub palju tööriistu, mis pole tingimata ainult konteinerite jaoks, vaid töötavad ka konteinerite jaoks. Need pakuvad palju funktsionaalsust, sealhulgas võimalust määrata konteineritele kontrollpunkte, seadistada versioone ja näha kahe konteineri erinevusi, mis aitab vigu siluda. Selle näite leiate Docker Save the World artiklist.
7. Mitme rentnikuga keskkond
Teine huvitav Dockeri kasutusjuhtum on mitme rentnikuga rakendused, mis aitavad vältida kriitiliste rakenduste ümberkirjutamist. Üks konkreetne näide sellest stsenaariumist on kiire ja lihtsasti kasutatava mitme üürnikuga keskkonna arendamine IoT rakendustele. See mitme rentniku põhikood on keeruline ja keeruline käsitleda ning sellise rakenduse ümberplaneerimine on aja ja raha raiskamine.
Dockeriga on lihtne ja odav luua isoleeritud keskkondi mitmele eksemplarile iga üürniku rakenduskihis, tänu Dockeri keskkondade kiirusele ja tõhusatele erinevuskäskudele.
Selle stsenaariumi kohta saad rohkem teada siit.
8. Paiguta kiiresti
Enne virtuaalmasinaid võtab uute riistvararessursside kasutuselevõtt mitu päeva. Dockeri virtualiseerimistehnoloogia vähendab seda aega minutiteks ning Docker loob lihtsalt konteineriprotsessi ilma operatsioonisüsteemi käivitamata, mis võtab vaid sekundeid. Just seda hindavad nii Google kui ka Facebook.
Saad luua oma andmekeskuses hävitamise ressursi, ilma et peaksid muretsema taaskäivitamise lisakoormuse pärast. Tavaliselt on andmekeskustes ressursikasutus vaid 30% ning ressursside kasutust saab parandada Dockeri ja tõhusa ressursside jaotusega. |