Linux-containers begrijpen voordat u de wereld verandert

Gedreven door een reeks factoren – productiviteit, automatisering en kosteneffectieve implementaties – zijn organisaties gaan houden van containertechnologie, vooral omdat ze het mogelijk maken om de infrastructuur efficiënter te laten werken. Containertechnologie introduceert iets dat we containers noemen. Containers zijn applicatie-sandboxen.

Containers bieden een manier om uw toepassing uit te voeren door deze te verpakken met de runtime, het besturingssysteem, bibliotheken en elke vereiste afhankelijkheid. Dit zorgt voor eenvoud, snelheid en flexibiliteit bij de ontwikkeling en implementatie van applicaties, met een efficiëntere manier om systeembronnen te gebruiken. Een grote stap voorwaarts ten opzichte van virtuele machines, moet ik zeggen. Er zijn verschillende containertechnologieën beschikbaar, zoals Docker-containers, Kubernetes-containers en Linux-containers (LXC).

Dit artikel gaat in op Linux-containers en hun gebruik.

Wat zijn Linux-containers?

Linux-containers, ook wel LXC genoemd, zijn een virtualisatie-installatie en de eerste systeemcontainerimplementatie op basis van functies van mainstream Linux.

LXC creëert een omgeving waarin u bronnen, zoals geheugen en bibliotheken, kunt delen en tegelijkertijd een volledig virtueel besturingssysteem kunt creëren. Zonder dat je een aparte kernel nodig hebt, kun je een setup ontwerpen die vergelijkbaar is met een standaard Linux-installatie met alleen de componenten die je applicaties nodig hebben en dus geen overheadprocessen.

Ik heb virtualisatie nogal vaak genoemd, dus dat moet ik ook uitleggen. Dus wat is virtualisatie precies?

Wat is virtualisatie?

Virtualisatie is het proces waarbij virtuele instanties van computercomponenten worden uitgevoerd die traditioneel aan hardware zijn gebonden. Dit is de basis van cloudcomputing. Een populaire use-case is het gebruik van deze virtualisatietechnologie om applicaties voor een ander besturingssysteem zoals Linux op een ander besturingssysteem zoals MacOS uit te voeren, of om het te gebruiken om meerdere besturingssystemen tegelijkertijd op een computer uit te voeren.

Virtualisatie maakt gebruik van hypervisors om de onderliggende hardware, zoals CPU-geheugen, te emuleren en de fysieke bronnen te scheiden zodat ze door de virtuele omgeving kunnen worden gebruikt. Vanwege de hypervisors werkt het gastbesturingssysteem samen met de hardware.

Traditionele en virtuele architectuurserververgelijking. Bron: Workload Stability-door Hoyeong Yun

Wat zijn virtuele machines?

Virtuele machines (VM’s) zijn geïsoleerde computeromgevingen die worden gecreëerd wanneer de hypervisor de computerbronnen scheidt van de fysieke machine of hardware. Ze hebben toegang tot verschillende bronnen, inclusief maar niet beperkt tot de rekenkracht, CPU en opslag van de host.

Hoewel virtuele machines misschien als containers klinken, zijn ze heel anders.

Bij virtualisatie vereist en draait elke VM zijn eigen besturingssysteem. Hoewel dit organisaties in staat stelt het voordeel van hun hardware-investeringen te maximaliseren, maakt het ze ook zwaar. Bij containerisatie draaien applicaties in een container in plaats van bronnen van het besturingssysteem te delen; Zo dragen ze minder overhead en zijn ze licht van gewicht.

Een ander probleem met virtualisatie is overtoewijzing, wat betekent dat wanneer een instantie in een virtuele omgeving wordt gestart, alle eraan toegewezen resources worden gebruikt. Wanneer u bijvoorbeeld een virtuele server maakt, geeft u op hoeveel ruimte de schijf moet hebben. Zodra de server is gestart, wordt de volledige ruimte automatisch toegewezen aan de virtuele server, of ze deze nu nodig hebben of niet. Er zijn dus verspilde middelen omdat het alle ruimte in beslag neemt, zelfs als het maar een tiende daarvan nodig heeft.

Op containers gebaseerde virtualisatie bracht hier verandering in. Ten eerste zijn ze minder arbeidsintensief. In plaats van een volledig besturingssysteem te hebben, heb je liever een container met alle kleine stukjes en beetjes die de applicatie nodig heeft om te draaien. Zo worden middelen effectiever gedeeld.

Containers versus VM’s Afbeelding door Veritis

U denkt waarschijnlijk: “Waarom hebben we nog steeds virtuele machines nodig?” Welnu, er zijn gevallen waarin VM’s de juiste keuze zijn. Als u bijvoorbeeld het Windows-besturingssysteem op macOS of Linux wilt draaien, heeft u een virtuele machine nodig. Een ander gebruiksgeval is wanneer je een andere kernelversie nodig hebt dan de kernel van de host.

Waarom Linux-containers gebruiken?

Laten we eens kijken naar enkele redenen waarom u Linux-containers zou moeten gebruiken:

  • Hulpbronnenbeheer: Ze zijn effectiever in het beheren van resources dan hypervisors.

  • Pijplijnbeheer: LXC behoudt de consistentie van de codepijplijn terwijl deze vordert van ontwikkeling tot testen en productie, ondanks de verschillen tussen deze omgevingen.

  • Modulariteit: Applicaties kunnen worden opgesplitst in modules in plaats van in één container als geheel te worden ondergebracht. We noemen dit de microservices-strategie. Dankzij dit is het beheer nu eenvoudiger en zijn er verschillende tools beschikbaar om het beheer van complexe use-cases af te handelen.

  • Het landschap van tooling: Ondanks dat het technisch gezien niet specifiek is voor containers, bestaat het ecosysteem van tools voor orkestratie, beheer en foutopsporing goed naast containers. Kubernete, sematekstwolk, en Cloudify zijn een paar voorbeelden.

  • Ze ondersteunen continue implementatie en integratie. Door de manier waarop ze werken, kunt u uw applicaties effectief in verschillende omgevingen implementeren. Het voorkomt redundantie in uw codes en implementaties.

  • Toepassingsisolatie:: Zonder de noodzaak om het systeem opnieuw op te starten of het besturingssysteem helemaal opnieuw te starten, verpakken containers uw apps met alle benodigde afhankelijkheden. Deze apps kunnen in verschillende omgevingen worden ingesteld en voor het bijwerken ervan hoeft alleen de container-image te worden gewijzigd. Een containerimage is een bestand dat de code en configuratie bevat die nodig zijn om een ​​container te maken.

  • Linux-container is open source. Het biedt een gebruiksvriendelijke, intuïtieve gebruikerservaring via de verschillende tools, talen, sjablonen en bibliotheken. Om deze redenen zijn Linux-containers ideaal voor ontwikkel- en productieomgevingen. Zelfs de eerdere versies van Docker werden er bovenop gebouwd. U kunt de broncode vinden hier.

Conclusie

De aanwezigheid van containertechnologie heeft de manier waarop we applicaties maken veranderd. Met containers kunt u het besturingssysteem virtualiseren, zodat elke container alleen de toepassing en de bijbehorende bibliotheken bevat, in plaats van een VM met een gastbesturingssysteem en een virtuele hardwarekopie te gebruiken.

Dit artikel was meer een beginnershandleiding voor het landschap van containertechnologie; er is meer in het landschap. Bekijk de bronnen, verken ze en verander de wereld.

BEZIG MET LADEN
. . . & opmerkingen meer!

Leave a Comment