Trace Id is missing
Gå til hovedinnhold

Hva er beholdere?

Standardisert, overførbar pakking av programmene.

Beholdere forklart

Akkurat som fraktbransjer bruker fysiske beholdere til å isolere ulike typer last, slik so for transport med skip eller tog, bruker teknologier for programvareutvikling stadig oftere en fremgangsmåte som kalles «containerization».

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

Derfor bør du interesserer deg for beholdere

Problemet med programmer som ikke kjører som de skal når de flyttes fra ett miljø til et annet, er like gammelt som programvareutvikling i seg selv. Slike problemer oppstår vanligvis på grunn av forskjeller i konfigurasjon som ligger under bibliotekskrav og andre avhengigheter.

Beholdere tar seg av dette problemet ved å sørge for lett, uforanderlig infrastruktur for programpakking og -distribusjon. Programmer eller tjenester, deres avhengigheter og konfigurasjon pakkes sammen som et beholderbilde. Det beholderbaserte programmet kan testes som en enhet, og det kan distribueres som en forekomst av et beholderbilde til vertsoperativsystemet.

Dermed kan utviklere og IT-arbeidere bruke beholdere til distribusjon av programmer på tvers av miljøer, med få eller ingen endringer.

Få mer informasjon om beholdernes opprinnelse og effektivitet.

En person som tegner diagrammer med en hvit tusj.

Beholder versus virtuell maskin

Når det gjelder virtualisering, tenker folk ofte på virtuelle maskiner (VM-er). Faktisk kan virtualisering arte seg på ulike måter. Beholdere er én av disse. Hva er forskjellen mellom VM-er og beholdere?

På et høyt nivå virtualiserer VM-er den underliggende maskinvaren slik at flere forekomster av operativsystemer (OS) kan kjøre på maskinvaren. Hver VM kjører et operativsystem og har tilgang til virtualiserte ressurser som representerer den underliggende maskinvaren.

VM-er 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. En ulempe er at hver VM inneholder et operativsystembilde, biblioteker, programmer med mer. Derfor kan de bli ganske store.

En beholder virtualiserer det underliggende operativsystemet og får den beholderbaserte appen til å oppfatte at den har hele operativsystemet for seg selv. Det inkluderer CPU, minne, fillagring og nettverksforbindelser. Fordi forskjellene i underliggende operativsystem og infrastruktur er abstraherte, kan beholderen distribueres og kjøre hvor som helst, så lenge basisbildet er konsekvent. For utviklere er dette en stor fordel.

Siden beholdere deler vertsoperativsystemet, trenger de ikke å starte opp et operativsystem eller laste inn biblioteker. Slik kan beholdere være lettere og mer effektive. Beholderbaserte programmer kan starte på sekunder, og mange flere forekomster av programmet får plass på maskinen, sammenlignet med et scenario med VM. Fremgangsmåten med delt operativsystem gir dessuten reduserte administrasjonskostnader for vedlikehold, for eksempel oppdateringer.

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

Derfor bør du bruke beholdere

Fleksibilitet

Når utviklere bygger og pakker programmene sine i beholdere og leverer dem til IT-avdelingene for kjøring på en standardisert plattform, reduseres al arbeidet med distribusjon av programmer. Det kan effektivisere hele utviklings- og testsyklusen. Dette øker også samarbeid og effektivitet mellom utviklings- og driftsteam. De kan sende fra seg appene raskere.

Overførbarhet

Beholdere gir et standardisert format for pakking og oppbevaring av alle komponentene som trengs for å kjøre det ønskede programmet. Dette løser det vanlige problemet: «Det fungerer på min maskin». Det legger også til rette for overførbarhet mellom operativsystemplattformer og mellom skyer. Hver gang en beholder distribueres hvor som helst, kjører den i et konsekvent miljø. Dette forblir uendret fra distribusjon til distribusjon. Du har nå et konsekvent format, fra utviklingsboks til produksjon.

Rask skalerbarhet

Siden beholdere ikke har de samme administrasjonskostnadene som vanligvis følger med VM-er, slik som separate operativsystemforekomster, kan mange flere beholdere støttes i samme infrastruktur. Beholdere er lette i vekt. Dermed kan de startes og stoppes raskt. Det åpner opp for raske oppskalerings- og nedskaleringsscenarioer.

Brukstilfeller

Skybaserte apper

Skybaserte programmer er avhengige av beholdere for en felles driftsmodell på tvers av miljøer, slik som offentlige, private og hybride. De lave administrasjonskostnadene og den høye tettheten av beholdere gjør at mange kan driftes i samme virtuelle maskin. Dermed er de ideelle for levering av skybaserte programmer.

Løft og flytt

Organisasjoner kan få betydelige fordeler med overføring til skyen, men vil kanskje ikke omskrive eksisterende programmer. Med beholdere kan du potensielt overføre programmene dine til skyen, uten å endre noen kode.

Satsvis

Satsvis behandling beskriver aktiviteter som kan utføres uten menneskelig intervensjon, eller som kan utføres basert på tilgjengelige ressurser. Noen eksempler er generering av rapporter, endring av størrelse på bilder og konvertering av filer fra ett format til et annet. Beholdere er en enkelt måte å kjøre satsvise jobb på, uten å måtte administrere miljø og avhengigheter. Dynamiske databehandlingsalternativer, slik som Azure Container Instances (ACI), kan brukes til effektiv innføring og behandling av kildedata samt til plassering av disse i et holdbart lager som Azure Blob Storage. En slik fremgangsmåte, i stedet for statistisk klargjorte virtuelle maskiner, kan gi betydelige kostnadsbesparelser takket være fakturering per sekund.

Maskinlæring

Maskinlæring bruker algoritmer på data og foretar prediksjoner basert på mønstre funnet i dataene. Beholdere kan gjøre maskinlæringsprogrammene selvstendige og lett skalerbare i alle slags miljøer.

Tilbake til faner

Utover beholdere

For å få fullt utbytte av fordelene med beholdere bør du vurdere komplette løsninger. Noen eksempler er beholderoptimaliserte verktøy og tjenester som gir deg fleksibilitet, sikkerhet og skalering.

Iverksetting

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

Sikkerhet

Beholdere krever en lagdelt fremgangsmåte, fra beholderbilde til klyngeisolering. Det er best å konfigurere disse beskyttelsene med CI-/CD-datasamlebåndene dine.

Serverløse beholdere

Du kan øke fleksibiliteten ytterligere med beholdere etter behov. Bruk serverløse beholderteknologier for enkel kjøring av beholdere. Du trenger ikke å administrere servere eller burst fra Kubernetes-klyngene dine når trafikken kommer i bølger.

Azure DevOps

DevOps

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

Når du er klar, kan du prøve beholdere og Kubernetes gratis med Azure 
Start gratis