Containerteknologi, også kjent som bare en beholder, er en metode for å pakke en applikasjon slik at den kan kjøres, med avhengighet, isolert fra andre prosesser. De store offentlige cloud computing-leverandørene, inkludert Amazon Web Services, Microsoft Azure og Google Cloud Platform, har omfavnet containerteknologi, med containersoftware som har navn, inkludert de populære valgene av Docker, Apache Mesos, Rkt (uttales “rakett”), og Kubernetes.

Containerteknologi får navnet sitt fra shippingindustrien. Snarere enn å komme opp med en unik måte å sende hvert produkt, blir varer plassert i stålfraktbeholdere, som allerede er designet for å bli plukket opp av kranen på kaien, og passer inn i skipet designet for å imøtekomme beholderens standardstørrelse. Kort sagt, ved å standardisere prosessen og holde elementene sammen, kan beholderen flyttes som en enhet, og det koster mindre å gjøre det på denne måten.

Med datamaskinbeholderteknologi er det en analog situasjon. Har det noen gang vært en situasjon hvor et program kjører perfekt på en maskin, men blir da et klumpete rot når det flyttes til neste? Dette har potensial til å forekomme når du overfører programvaren fra en utviklerens PC til en testserver, eller en fysisk server i et datasenter, til en skysserver. Problemer oppstår når du flytter programvare på grunn av forskjeller mellom maskinmiljøer, for eksempel installerte OS, SSL-biblioteker, lagring, sikkerhet og nettverkstopologi.

På samme måte som kranen plukker opp hele containeren som en enhet for å sette den på skipet eller lastebilen for transport, noe som forenkler bevegelsen, oppnår datamaskinbeholderteknologi det samme. Beholderteknologien inneholder ikke bare programvaren, men også avhengighetene, inkludert biblioteker, binærfiler og konfigurasjonsfiler, alle sammen, og de blir migrert som en enhet, og unngår forskjellene mellom maskiner, inkludert OS-forskjeller og underliggende maskinvare som fører til inkompatibiliteter og krasjer. Beholdere letter også distribusjon av programvare til en server.

Virtuelle maskiner

Før beholdere ble populære, var en tidligere tilnærming virtuelle maskiner. Her kunne en fysisk server brukes til flere applikasjoner via virtualiseringsteknologi, også kjent som en virtuell maskin, hvor hver virtuell maskin inneholder hele operativsystemet, samt applikasjonen til å kjøre.

Den fysiske serveren end driver flere virtuelle maskiner, hver med sitt eget operativsystem, med et enkelt hypervisoremuleringslag på toppen. Ved å kjøre flere OS 'samtidig, er det mye overhead på serveren når ressursene blir brukt, og antall virtuelle maskiner er begrenset til, men noen få.

I motsetning med beholderteknologi kjører serveren ett enkelt operativsystem, da hver container er i stand til å dele dette enkelt operativsystemet med de andre beholderne på serveren. Delene av operativsystemet som deles, er bare lest for å ikke forstyrre de andre beholderne. Dette betyr at i forhold til virtuelle maskiner krever containere mindre ressurser på serveren med lavere kostnader, og er betydelig mer effektive, slik at mange flere containere kan pakkes inn på en enkelt server. For eksempel, mens hver virtuell maskin kan kreve gigabyte lagringsplass, kan hver container som kjører et lignende program, bare trenger megabyte.

Hvordan fungerer containere?

Beholdere er satt opp for å oppnå arbeid i en flerbeholderarkitektur, betegnet en containerklynger. I en Kubernetes containerklynger er det en enkelt klyngemester, med de andre beslektede beholderene betegnet som noder, som er flere arbeidermaskiner. Klientmesterens roller er å planlegge arbeidsbelastningene for noderne, og også for å styre deres livssyklus, og deres oppgraderinger.

Containerteknologi er ikke et nytt fenomen, og har lenge vært en sentral funksjon for Linux. Forskottet de siste årene med containerteknologi, har det blitt enklere å bruke, og programvareutviklere har omfavnet dem for deres enkelhet, og unngår kompatibilitetsproblemer. De lar også et program brytes ned i mindre stykker, som er kjent som microservices.

Fordelen ved å ha programmet som komponent mikroservices er at forskjellige lag kan arbeide på hver av beholderne separat så lenge samspillet mellom de forskjellige beholderne opprettholdes, noe som letter utviklingen av programvare raskere. Til slutt gir beholderteknologi fullstendig granulær kontroll over beholderne.

Mens beholdere er i stand til å kjøre alle typer programvare, overføres ikke eldre programmer som er designet for å kjøre på en virtuell maskin, godt til beholderteknologien. Denne eldre programvaren som kjører på en virtuell maskin, kan settes på en skyplattform som Microsoft Azure, slik at beholdere ikke sannsynligvis vil erstatte virtuelle maskiner fullt ut i overskuelig fremtid..

Hvordan administrerer bedrifter containere?

Med så mye programvare som kjører som containere, er det nå et krav på å håndtere containerne, og det er vanskelig å borderline umulig å utføre denne oppgaven manuelt. Spesialisert programvare for containerhåndtering er nødvendig, og en populær åpen kildekode-løsning er Kubernetes, som har flere distribusjoner, inkludert Red Hat OpenShift. Containerhåndteringsprogramvaren forenkler distribusjon av containere, og fungerer godt med de raske distribusjonsstrategiene i DevOps-filosofien.

En annen stor egenskap ved beholderteknologi er dens fleksibilitet. Med en virtuell maskin krever det flere minutter å starte opp, akkurat som PCen på skrivebordet ditt begynner på begynnelsen av dagen. I stedet med beholderteknologi, da operativsystemet allerede kjører på serveren, kan en container startes om noen få sekunder. Dette gjør det mulig å starte og stoppe beholdere etter behov, å bøye seg opp når toppspørselen er, og å bøye ned når det ikke trengs.

I tillegg, hvis en container krasjer, kan det være å starte på nytt raskt, så det kan komme tilbake til oppgaven. Denne typen ledelse er kjent som containerorkestering, og programvare som Docker Swarm kan kontrollere denne typen orkestrering og distribuere oppgavene mellom beholderklyngen.

Da flere containere deler det samme operativsystemet, er det en bekymring at beholderteknologien er mindre sikker enn en virtuell maskin. Dette skyldes at hvis det oppstår en sikkerhetsfeil i verten kjernen vil det påvirke flere beholdere. Det er gjort anstrengelser for å gjøre containere sikrere. En tilnærming inkluderer docker som krever en signeringsinfrastruktur for å forhindre uautoriserte containere i å starte opp. Det er også containersikkerhetsprogramvare, for eksempel Twistlock som profilerer oppførselen til en beholder, og deretter slår du ned en beholder som faller utenfor forventet profil.

  • Vi diskuterer også hybridsky her