Flux 7 introducerar 8 vanliga användningsfall för Docker, nämligen förenklad konfiguration, kodpipelinehantering, förbättrad utvecklingseffektivitet, isolerade applikationer, konsoliderade servrar, felsökningsmöjligheter, multi-tenant-miljöer och snabb utveckling. Vi har pratat om Docker, hur man använder det, och vid vilka tillfällen? Kanske kan den här artikeln hjälpa dig. Om det finns något att kommunicera kan du kommunicera med oss via kommentarer.
För några veckor sedan deltog vi i DockerCon, den första teknikkonferensen med fokus på Docker. Den riktar sig till utvecklare och praktiker som är intresserade av att bygga, leverera och köra distribuerade applikationer på Dockers öppna plattform, oavsett om den körs på deras egna anteckningsböcker eller virtuella maskiner i datacentret. Vi deltog i konferensen, och Flux7 är systemintegrationspartner för Docker Foundations och gästtalare.
Vår VD, Aater Suleman, talade med en av våra kunder. Även om DockerCon var väldigt roligt, kände jag att konferensen fokuserade för mycket på detaljerna kring Docker och försummade användningsområdena för Docker. Så i den här artikeln vill jag introducera och dela några praktiska användningsfall för Docker.
Innan vi diskuterar Dockers användningsområden, låt oss titta på vad som gör Docker så speciellt.
Docker erbjuder lättviktig virtualisering med nästan ingen extra överhead, vilket är ganska häftigt.
För det första behöver du inte oroa dig för den extra överheaden som Docker innebär, samtidigt som du njuter av virtualiseringskraften det ger. För det andra kan du skapa fler containrar på samma maskin än på en virtuell maskin.
En annan fördel med Docker är att containrar kan startas och stoppas på några sekunder. Solomon Hykes, grundare av Docker, pratade en gång om vad Docker har gjort utöver bara LXC, och du kan kolla in det.
Här är några av mina Docker-användningsfall, som visar hur du kan utnyttja fördelarna med Docker för att skapa en konsekvent miljö med låg overhead.
1. Förenklad konfiguration
Detta är det huvudsakliga användningsområdet för Docker som annonseras av Docker Company. Den största fördelen med virtuella maskiner är möjligheten att köra olika plattformar (mjukvara, system) på dina hårdvaruanläggningar, och Docker erbjuder samma funktionalitet med mindre extra belastning. Det låter dig lägga in runtime och konfiguration i kod och sedan distribuera den, och konfigurationen av samma Docker kan användas i olika miljöer, vilket minskar kopplingen mellan hårdvarukrav och applikationsmiljöer.
2. Hantering av kodpipeline
Det föregående scenariot är till stor hjälp för att hantera kodpipelinen. Kod går igenom många mellanliggande miljöer från utvecklarens maskin till den slutliga distributionen i produktionsmiljön. Varje mellanliggande miljö har sina egna små skillnader, och Docker erbjuder en miljö som är konsekvent från utveckling till start, vilket gör kodpipelinen mycket enklare.
3. Förbättra utvecklingseffektiviteten
Detta medför några ytterligare fördelar: Docker gör utvecklare mer produktiva. Om du vill se ett mer detaljerat exempel kan du hänvisa till Aaters föredrag på DevOpsDays Austin 2014 eller DockerCon.
I olika utvecklingsmiljöer vill vi alla göra två saker bra. För det första vill vi göra utvecklingsmiljön så lik produktionsmiljön som möjligt, och för det andra vill vi snabbt bygga utvecklingsmiljön.
Idealiskt, för att uppnå det första målet, behöver vi köra varje tjänst i en separat virtuell maskin för att övervaka tjänstens hälsa i produktion. Men vi vill inte behöva en nätverksanslutning varje gång, och det är särskilt besvärligt att ansluta på distans varje gång vi kompilerar om. Detta är vad Docker gör särskilt bra, maskinerna i utvecklingsmiljön har vanligtvis relativt lite minne, och när vi använder virtuellt minne behöver vi ofta lägga till minne till maskinerna i utvecklingsmiljön, men nu kan Docker enkelt låta dussintals tjänster köras i Docker.
4. Isolera applikationer
Det finns många anledningar till att du kan välja att köra olika applikationer på en maskin, som de scenarier som nämnts tidigare för att förbättra utvecklingseffektiviteten.
Vi behöver ofta överväga serverkonsolidering för att minska kostnaderna, och att dela upp en monolitisk applikation i en enda löst kopplad tjänst. Om du vill förstå varför löst kopplade appar är så viktiga, kolla in denna artikel av Steve Yege som jämför Google och Amazon.
5. Konsolidera servrar
Precis som flera applikationer integreras via virtuella maskiner, gör Dockers förmåga att isolera applikationer det möjligt för Docker att konsolidera flera servrar för att minska kostnaderna. Utan minnesbehov från flera operativsystem och med möjlighet att dela oanvänt minne mellan flera instanser kan Docker erbjuda en bättre lösning för serverkonsolidering än virtuella maskiner.
6. Felsökningsförmåga
Docker erbjuder många verktyg som inte nödvändigtvis bara är för containrar, utan de fungerar för containrar. De erbjuder mycket funktionalitet, inklusive möjligheten att sätta kontrollpunkter för containrar, sätta versioner och se skillnader mellan två containrar, vilket kan hjälpa till att felsöka buggar. Du kan hitta ett exempel på detta i artikeln om Docker Save the World.
7. Multi-tenant-miljö
Ett annat intressant användningsfall för Docker är i multi-tenant-applikationer, vilket kan undvika att skriva om kritiska applikationer. Ett särskilt exempel på detta scenario är utvecklingen av en snabb, lättanvänd multitenant-miljö för IoT-applikationer. Denna flerhyres-grundläggande kod är komplex och svår att hantera, och att planera om en sådan ansökan är slöseri med tid och pengar.
Med Docker är det enkelt och billigt att skapa isolerade miljöer för flera instanser av varje tenants applikationslager, tack vare Docker-miljöernas hastighet och deras effektiva diff-kommandon.
Du kan läsa mer om detta scenario här.
8. Sätt ut den snabbt
Innan virtuella maskiner tar det flera dagar att introducera nya hårdvaruresurser. Dockers virtualiseringsteknologi minskar denna tid till minuter, och Docker skapar helt enkelt en containerprocess utan att starta operativsystemet, vilket tar några sekunder. Det är precis detta som både Google och Facebook värdesätter.
Du kan skapa en destroy-resurs i ditt datacenter utan att oroa dig för omstartskostnader. Vanligtvis har datacenter endast 30 % resursanvändning, och resursutnyttjandet kan förbättras genom att använda Docker och effektiv resursallokering. |