Flux 7 introducerer 8 almindeligt anvendte Docker-anvendelsestilfælde, nemlig forenklet konfiguration, kodepipeline-styring, forbedret udviklingseffektivitet, isolerede applikationer, konsoliderede servere, fejlsøgningsmuligheder, multi-tenant miljøer og hurtig udvikling. Vi har talt om Docker, hvordan man bruger det, og ved hvilke lejligheder? Måske kan denne artikel hjælpe dig. Hvis der er noget at kommunikere, kan du kommunikere med os gennem kommentarer.
For et par uger siden deltog vi i DockerCon, den første tech-konference med fokus på Docker. Det henvender sig til udviklere og praktikere, der er interesserede i at bygge, levere og køre distribuerede applikationer på Docker open platform, uanset om den kører på deres egne notebooks eller virtuelle maskiner i datacentret. Vi deltog i konferencen, og Flux7 er systemintegrationspartner for Docker Foundations og gæstetaler.
Vores CEO, Aater Suleman, talte med en af vores kunder. Selvom DockerCon var meget sjov, følte jeg, at konferencen fokuserede for meget på Dockers specifikke detaljer og forsømte Dockers brugsscenarier. Så i denne artikel vil jeg introducere og dele nogle praktiske brugsscenarier for Docker.
Før vi diskuterer Dockers anvendelsestilfælde, lad os se på, hvad der gør Docker så specielt.
Docker tilbyder letvægtsvirtualisering med næsten ingen ekstra overhead, hvilket er ret fedt.
For det første behøver du ikke bekymre dig om den ekstra overhead ved Docker, samtidig med at du nyder virtualiseringskraften, det giver. For det andet kan du oprette et større antal containere på den samme maskine end på en virtuel maskine.
En anden fordel ved Docker er, at containere kan startes og stoppes på få sekunder. Solomon Hykes, grundlægger af Docker, talte engang om, hvad Docker har gjort ud over bare LXC, og du kan tjekke det ud.
Her er nogle af mine Docker-anvendelsestilfælde, der viser dig, hvordan du kan udnytte fordelene ved Docker til at skabe et ensartet miljø med lav overhead.
1. Forenklet konfiguration
Dette er hovedbrugsscenariet for Docker, som Docker Company reklamerer med. Den største fordel ved virtuelle maskiner er muligheden for at køre forskellige platforme (software, systemer) på dine hardwarefaciliteter, og Docker tilbyder samme funktionalitet med mindre ekstra overhead. Det giver dig mulighed for at sætte runtime og konfiguration i kode og derefter deploye det, og konfigurationen af den samme Docker kan bruges i forskellige miljøer, hvilket reducerer koblingen mellem hardwarekrav og applikationsmiljøer.
2. Styring af kodepipelines
Det forrige scenarie er en stor hjælp til at styre kodepipelinen. Koden går gennem mange mellemliggende miljøer fra udviklerens maskine til den endelige implementering i produktionsmiljøet. Hvert mellemmiljø har sine egne små forskelle, og Docker leverer et miljø, der er konsistent fra udvikling til start, hvilket gør kodepipelinen meget nemmere.
3. Forbedre udviklingseffektiviteten
Dette medfører nogle ekstra fordele: Docker gør udviklere mere produktive. Hvis du vil se et mere detaljeret eksempel, kan du se Aaters oplæg på DevOpsDays Austin 2014 eller DockerCon.
I forskellige udviklingsmiljøer ønsker vi alle at gøre to ting godt. For det første vil vi gøre udviklingsmiljøet så tæt på produktionsmiljøet som muligt, og for det andet vil vi hurtigt bygge udviklingsmiljøet.
Ideelt set skal vi for at nå det første mål køre hver service i en separat virtuel maskine for at overvåge tjenestens tilstand i produktion. Vi ønsker dog ikke at skulle have en netværksforbindelse hver gang, og det er især besværligt at forbinde eksternt hver gang vi genkompilerer. Det er netop det, Docker gør særligt godt; maskinerne i udviklingsmiljøet har normalt relativt lille hukommelse, og når vi bruger virtuelt, skal vi ofte tilføje hukommelse til maskinerne i udviklingsmiljøet, men nu kan Docker nemt lade dusinvis af tjenester køre i Docker.
4. Isoler applikationer
Der er mange grunde til, at du kan vælge at køre forskellige applikationer på én maskine, såsom de tidligere nævnte scenarier for at forbedre udviklingseffektiviteten.
Vi er ofte nødt til at overveje serverkonsolidering for at reducere omkostninger og opdele en monolitisk applikation i en enkelt løst koblet tjeneste. Hvis du vil forstå, hvorfor løst koblede apps er så vigtige, så tjek denne artikel af Steve Yege, der sammenligner Google og Amazon.
5. Konsolider servere
Ligesom flere applikationer integreres gennem virtuelle maskiner, gør Dockers evne til at isolere applikationer det muligt for Docker at konsolidere flere servere for at reducere omkostningerne. Uden hukommelsesbehov fra flere operativsystemer og med mulighed for at dele ubrugt hukommelse på tværs af flere instanser, kan Docker tilbyde en bedre serverkonsolideringsløsning end virtuelle maskiner.
6. Debugging-evne
Docker tilbyder mange værktøjer, som ikke nødvendigvis kun er til containere, men de virker til containere. De tilbyder mange funktioner, herunder muligheden for at sætte checkpoints for containere, sætte versioner og se forskellene mellem to containere, hvilket kan hjælpe med at fejlfinde fejl. Du kan finde et eksempel på dette i artiklen om Docker Save the World.
7. Multi-lejer miljø
Et andet interessant brugstilfælde for Docker er i multi-tenant applikationer, hvilket kan undgå at omskrive kritiske applikationer. Et særligt eksempel på dette scenarie er udviklingen af et hurtigt, brugervenligt multitenant-miljø til IoT-applikationer. Denne fler-leje grundlæggende kode er kompleks og svær at håndtere, og at omplanlægge en sådan ansøgning er spild af tid og penge.
Med Docker er det nemt og billigt at skabe isolerede miljøer for flere instanser af hver lejers applikationslag, takket være hastigheden i Docker-miljøer og deres effektive diff-kommandoer.
Du kan lære mere om dette scenarie her.
8. Udsend hurtigt
Før virtuelle maskiner tager det flere dage at introducere nye hardwareressourcer. Dockers virtualiseringsteknologi reducerer denne tid til minutter, og Docker opretter blot en containerproces uden at starte operativsystemet, hvilket tager sekunder. Det er præcis det, både Google og Facebook værdsætter.
Du kan oprette en destroy-ressource i dit datacenter uden at bekymre dig om overheaden ved en genstart. Typisk har datacentre kun 30% ressourceudnyttelse, og ressourceudnyttelsen kan forbedres ved at bruge Docker og effektiv ressourceallokering. |