Hva er en beholder?

Standardisert, bærbar emballasje for programmene dine

Beholdere forklart

Akkurat som fraktindustrier bruker fysiske beholdere for å isolere ulike typer last – for eksempel for transport i skip og tog – programvareutviklingsteknologier bruker stadig oftere en fremgangsmåte kalt beholderisering.

En standard programvarepakke – kjent som en beholder – pakker et programs kode sammen med de tilknyttede konfigurasjonsfilene og bibliotekene, og med avhengighetene som kreves for at appen skal kjøre. Dette gjør at utviklere og IT-proffer kan distribuere programmer sømløst på tvers av miljøer.

Kom i gang med Docker

Hvorfor bør du bry deg om beholdere

Problemet med et program som ikke kjører som det skal når det flyttes fra ett miljø til et annet er like gammelt som programvareutvikling selv. Slike problemer oppstår vanligvis på grunn av forskjeller i konfigurasjonsunderliggende bibliotekkrav og andre avhengigheter.

Beholdere tar seg av dette problemet ved å levere en lett, infrastruktur for programpakking og distribusjon. Et program eller en tjeneste, dens avhengigheter og dens konfigurasjon pakkes sammen som et beholderbilde. Det beholderbaserte programmet kan testes som en enhet og distribueres som en beholderbildeforekomst til vertsoperativsystemet.

På denne måten lar beholdere utviklere og IT-teknikere rulle ut programmer i ulike miljøer med små eller ingen endringer.

Få mer informasjon om opprinnelsen og det geniale med beholdere.

Se en kort video

Beholder vs. virtuell maskin

Når folk tenker på virtualisering, tenker de ofte på virtuelle maskiner. Virtualisering kan ta mange former, og beholdere er en av dem. Hva er forskjellen mellom virtuelle maskiner og beholdere?

På et høyt nivå virtualiserer virtuelle maskiner den underliggende maskinvaren slik at flere operativsystemforekomster (OS) kan kjøre på maskinvaren. Hver virtuelle maskin kjører et operativsystem og har tilgang til virtualiserte ressurser som representerer den underliggende maskinvaren.

Virtuelle maskiner har mange fordeler. Dette omfatter muligheten til å kjøre ulike operativsystemer på samme server, mer effektiv og kostnadseffektiv bruk av fysiske ressurser og raskere serverklargjøring. Hver virtuelle maskinen inneholder dessuten et operativsystembilde, bibliotek, programmer og mer og kan derfor bli ganske store.

En beholder virtualiserer det underliggende operativsystemet og fører til at den beholderbaserte appen oppfatter at den har operativsystemet – inkludert prosessor, minne, fillagring og nettverksforbindelser – helt for seg selv. Fordi forskjellene i underliggende operativsystem og infrastruktur er abstraherte, kan beholderen distribueres og kjøre hvor som helst så lenge grunnbildet er ensartet. For utviklere er dette en utrolig fordel.

Siden beholdere deler vertsoperativsystem, trenger de ikke å starte opp et operativsystem eller laste bibliotek. Dette gjør at beholdere kan være mer effektive og lette. Beholderbaserte programmer kan starte på sekunder, og mange flere forekomster av programmet kan få plass på maskinen sammenlignet med et virtuell maskin-scenario. Den delte operativsystemtilnærmingen har den ekstra fordelen med redusert administrasjonskostnad når det gjelder vedlikehold, som oppdateringer.

Selv om beholdere er bærbare, er de begrenset til operativsystemet de er definert for. En beholder for Linux kan for eksempel ikke kjøre på Windows, og omvendt.

Hvorfor beholdere

Fleksibilitet

Når utviklere bygger og pakker programmene sine i beholdere og leverer dem til IT-avdelingskontorene for kjøring på en standardisert plattform, reduserer dette hvor mye som kreves for å distribuere programmer og kan effektivisere hele utviklings- og testsyklusen. Dette øker også samarbeid og effektivitet mellom utviklings- og driftslag for å sende apper raskere.

Portabilitet

Beholdere gir et standardisert format for pakking og holding av alle komponenter som trengs for å kjøre det ønskede programmet. Dette løser det typiske problemet med «det fungerer på min maskin» og muliggjør portabilitet mellom operativsystemplattformer og skyer. Hver gang en beholder distribueres et sted, kjører den i et ensartet miljø som forblir uendret fra en distribusjon til en annen. Du har nå et konsekvent format, fra utviklingsboks til produksjon.

Rask skalerbarhet

Siden beholdere ikke har administrasjonskostnadene til typiske virtuelle maskiner, inkludert separate operativsystemforekomster, kan mange flere beholdere støttes på samme infrastruktur. Den lette vekten til beholdere betyr at de kan startes og stoppes raskt og låse opp raske oppskalerings- og nedskaleringsscenarioer.

Brukseksempler

Skyopprinnelige apper

Skyopprinnelige programmer avhenger av beholdere for en felles driftsmodell på tvers av miljøer, inkludert offentlig, privat og hybrid. De lave administrasjonskostnadene og den høye tettheten av beholdere gjør at mange av dem kan driftes i samme virtuelle maskin. Dette gjør dem ideelle for levering av skyopprinnelige programmer.

Løft og flytt

En organisasjon kan få betydelige fordeler ved å overføre til skyen, men vil kanskje ikke omskrive et eksisterende program. Ved hjelp av beholdere kan du potensielt overføre programmene dine til skyen uten å endre kode.

Batch

Satsvis behandling refererer til aktiviteter som kan gjøres uten menneskelig intervensjon eller som kan gjøres basert på tilgjengelige ressurser. Eksempler omfatter å generere rapporter, endre størrelse på bilder og konvertere filer fra ett format til et annet. Beholdere gir en enkelt måte å kjøre bunkejobber uten å måtte administrere et miljø og avhengigheter. Dynamiske databehandlingsalternativer, som Azure Container Instances (ACI), kan brukes for effektiv innføring av kildedata, behandling av dem og plassering av dem i et holdbart lager som Azure Blob Storage. Ved å bruke en slik fremgangsmåte i stedet for statistisk klargjorte virtuelle maskiner kan man få betydelige kostnadsbesparelser gjennom fakturering per sekund.

Maskinlæring

Maskinlæring bruker algoritmer på data og foretar spådommer basert på mønstre funnet i dataene. Beholdere kan gjøre maskinlæringsprogrammer selvstendige og lett skalerbare uansett miljø.

Utover beholdere

For å maksimere fordelene med beholdere bør man vurdere komplette løsninger inkludert beholderoptimaliserte verktøy og tjenester som gir deg fleksibilitet, sikkerhet og skalering.

Iverksetting

Å kjøre beholdere i skala krever iverksetting og administrering av distribuerte, beholderbaserte programmer via en iverksettingsplattform som Kubernetes.

Utforsk Kubernetes med Azure

Sikkerhet

Med beholdere kreves det en lagdelt fremgangsmåte, fra beholderbilde til klyngeisolering. Konfigurasjon av disse beskyttelsene gjøres best med dine CI-/CD-datasamlebånd.

Sjekk ut sikkerhetsnødvendigheter for beholdere og Kubernetes

Serverløse beholdere

Du kan ytterligere øke fleksibiliteten med beholdere etter behov. Bruk serverløse beholderteknologier for enkelt å kjøre beholdere uten å administrere servere og burst fra Kubernetes-klyngene dine når trafikken kommer i bølger.

Prøv serverløse beholdere

Utviklingsoperasjoner

Beholdere lar utviklere enkelt dele programvare og avhengigheter på tvers av IT- og produksjonsmiljøer. Når de kombineres med DevOps-praksiser, kan du effektivt sende kode raskere og forkorte programvareutviklingssykluser.

Se DevOps med Azure-veiledning

Ressurser

Klar når du er det – prøv beholdere og Kubernetes gratis med Azure