Vad är containerteknik? | Jämförelsen

Vad är containerteknik? | Jämförelsen

Containerteknologi, även känd som containerteknologi, är en metod för att paketera en applikation så att den kan köras, med dess beroenden, isolerad från andra processer. Stora offentliga molnbaserade leverantörer, inklusive Amazon Web Services, Microsoft Azure och Google Cloud Platform, har anammat containerteknologi, med containerprogramvara vars namn inkluderar populära alternativ från Docker, Apache Mesos, rkt (uttalas "raket"). ) och Kubernetes. Containerteknik har fått sitt namn från sjöfartsindustrin. Istället för att erbjuda ett unikt sätt att skicka varje produkt, placeras produkterna i fraktcontainrar av stål, som redan är designade för att plockas upp av kranen vid kajen, och sätts in i containern utformad för att passa standardstorleken på containern. Kort sagt, genom att standardisera processen och hålla ihop föremålen kan behållaren flyttas som en enhet, och det kostar mindre att göra det på det sättet. Med datorbehållarteknik är detta en liknande situation. Har du någonsin haft situationen där ett program fungerar alldeles utmärkt på en maskin, men sedan förvandlas till en besvärlig röra när du går vidare till nästa? Detta kan hända vid migrering av programvara från en utvecklares dator till en testserver, eller från en fysisk server i ett företagsdatacenter till en molnserver. Problem uppstår vid flytt av programvara på grund av skillnader mellan maskinmiljöer, såsom det installerade operativsystemet, SSL-bibliotek, lagring, säkerhet och nätverkstopologi. Precis som kranen plockar upp hela containern som en enhet för att placera den på fartyget eller lastbilen för transport, vilket gör förflyttningen lättare, uppnår datorcontainerteknik detsamma. Behållarteknik innehåller inte bara programvara utan även beroenden, inklusive bibliotek, binärer och konfigurationsfiler, alla tillsammans, och migreras som en enhet, vilket undviker skillnader mellan maskiner, inklusive skillnader i operativsystem och underliggande hårdvara, som orsakar inkompatibilitet och kraschar . Behållare gör det också lättare att distribuera programvara till en server.

Virtuella maskiner

Innan containrar blev populära var virtuella maskiner ett tidigare fokus. Här skulle en fysisk server kunna användas för flera applikationer genom virtualiseringsteknik, även känd som en virtuell maskin, där varje virtuell maskin innehåller hela operativsystemet såväl som hela ; applikation att köra. Den fysiska servern kör sedan flera virtuella maskiner, var och en med sitt eget operativsystem, med ett enda hypervisor-emuleringslager ovanpå. När man kör flera operativsystem samtidigt blir det mycket overhead på servern då resurser används och antalet virtuella maskiner är begränsat till ett fåtal. Däremot kör servern med containerteknologi ett enda operativsystem, eftersom varje container kan dela detta enda operativsystem med de andra behållarna på servern. Delar av det delade operativsystemet är skrivskyddat för att inte störa andra behållare. Detta innebär att jämfört med virtuella maskiner kräver behållare färre serverresurser med minskad overhead och är betydligt effektivare, så många fler behållare kan klustras på en enda server. Till exempel, medan varje virtuell maskin kan kräva gigabyte lagring, kan varje behållare som kör ett liknande program bara kräva megabyte.

Hur fungerar containrar?

Behållare är konfigurerade för att utföra arbete i en arkitektur med flera behållare, som kallas ett containerkluster. I en Kubernetes-behållargrupp finns det en enda klustermaster, med de andra associerade behållarna betecknade som noder, som är de flera arbetsmaskinerna. Clustermasterns roll är att planera arbetsbelastningen för noderna, men också hantera deras livscykel och uppdateringar. Containerteknik är inget nytt fenomen och har länge varit en väsentlig del av Linux. De senaste årens framsteg inom containerteknologi har blivit lättare att använda, och mjukvaruutvecklare har anammat dem för deras enkelhet och för att undvika kompatibilitetsproblem. De låter dig också dela upp ett program i små fragment, så kallade mikrotjänster. Fördelen med att ha programmet som komponentmikrotjänster är att olika team kan arbeta separat på var och en av behållarna så länge interaktionerna mellan de olika behållarna upprätthålls, vilket underlättar snabbare mjukvaruutveckling. Slutligen tillåter containerteknologi fullständig granulär kontroll av containrar. Medan containrar kan köra alla typer av programvara, migrerar äldre program som är utformade för att köras i en virtuell maskin inte bra till containerteknologi. Denna äldre programvara som körs i en virtuell maskin kan installeras på en molnplattform som Microsoft Azure, så containrar kommer sannolikt inte att helt ersätta virtuella maskiner inom överskådlig framtid.

Hur hanterar företag containrar?

Med så många program som körs som containrar har containerhantering blivit ett krav och det är svårt att begränsa omöjligheten att utföra denna uppgift manuellt. Specialiserad programvara för containerhantering krävs, och en populär lösning med öppen källkod är Kubernetes, som har flera distributioner, inklusive Red Hat OpenShift. Programvara för containerhantering gör containerdistribution enkel och fungerar bra med de snabba distributionsstrategierna i DevOps-filosofin. En annan stor egenskap hos containerteknik är dess flexibilitet. Med en virtuell maskin tar det flera minuter att starta, precis som datorn på ditt skrivbord startar i början av dagen. Däremot, med containerteknologi, eftersom operativsystemet redan körs på servern, kan en container startas på några sekunder. Detta gör att containrar kan startas och stoppas vid behov, att flexa vid en tidpunkt med hög efterfrågan och att flexa när de inte behövs. Om en behållare går sönder kan den dessutom snabbt startas om så att du kan återuppta uppgiften. Denna typ av hantering kallas containerorkestrering, och programvara som Docker Swarm kan styra denna typ av orkestrering och distribuera uppgifter över grupper av containrar. Eftersom flera containrar delar samma operativsystem finns det farhågor om att containerteknologi är mindre säker än en virtuell maskin. Detta beror på det faktum att om det finns ett säkerhetsfel i värdkärnan, kommer det att påverka flera behållare. Ansträngningar har gjorts för att göra containrar säkrare. Ett tillvägagångssätt inkluderar Docker som kräver en signeringsinfrastruktur för att förhindra obehöriga containerlanseringar. Det finns också containersäkerhetsprogram, som Twistlock, som beskriver beteendet hos en container och sedan stoppar en container som inte är en del av den förväntade profilen.