Hvad er en objektbeholder?

Standardiseret, transportabel pakning til dine programmer

Forklaring på objektbeholdere

På samme måde, som shippingindustrien bruger fysiske containere til at isolere forskelligt gods – f.eks. til transport på skibe og tog – bruger teknologier til softwareudvikling i stigende grad en fremgangsmåde, der kaldes for placering i objektbeholdere.

En standardpakke med software – kendt som en objektbeholder – bundter en programkode sammen med de relaterede konfigurationsfiler og biblioteker og med de afhængigheder, der kræves for at programmet kan køre. Det giver udviklere og it-teknikere mulighed for at udrulle programmer uden problemer på tværs af miljøer.

Kom i gang med Docker

Derfor er objektbeholdere relevante for dig

Problemet med et program, der ikke kunne køre korrekt, når det blev flyttet fra ét miljø til et andet, er lige så gammelt som selve softwareudviklingen. Sådanne problemer opstår typisk på grund af forskelle i konfigurationens underliggende bibliotekskrav og andre afhængigheder.

Objektbeholdere løser problemet ved at oprette en let infrastruktur, der ikke kan ændres, i forbindelse med pakning og udrulning af programmer. Et program eller en tjeneste, afhængighederne og konfigurationen pakkes samlet som en objektbeholderafbildning. Programmet i objektbeholderen kan testes som en enhed og udrulles som en forekomst af en objektbeholderafbildning på værtsoperativsystemet.

På denne måde giver objektbeholdere udviklere og it-teknikere mulighed for at udrulle programmer på tværs af miljøer med få eller ingen ændringer.

Få mere at vide om tilblivelsen og skønheden af objektbeholdere.

Se en kort video

Objektbeholder vs. virtuel maskine

Når vi tænker på virtualisering, er virtuelle maskiner (VM'er) ofte det første, vi tænker på. Virtualisering kan faktisk tage mange former, og objektbeholdere er en af dem. Så hvad er forskellene mellem VM'er og objektbeholdere?

Overordnet virtualiserer VM'er den underliggende hardware, så der kan køre flere forekomster af operativsystemer på hardwaren. De enkelte VM'er kører et operativsystem og har adgang til virtualiserede ressourcer, der repræsenterer den underliggende hardware.

VM'er har mange fordele. Disse omfatter muligheden for at køre forskellige operativsystemer på den samme server, bedre og mere omkostningseffektiv udnyttelse af fysiske ressourcer og hurtigere klargøring af servere. På den anden side indeholder de enkelte VM'er en afbildning af operativsystemet, biblioteker, programmer m.m., og de kan derfor blive temmelig store.

En objektbeholder virtualiserer det underliggende operativsystem og får appen i objektbeholderen til at tro, at den har operativsystemet – herunder CPU, hukommelse, fillager og netværksforbindelser – helt for sig selv. Da forskellene i det underliggende operativsystem og den underliggende infrastruktur er abstrakte, så længe den grundlæggende afbildning er konsistent, kan objektbeholderen udrulles og køres hvor som helst. Det er en stor fordel for udviklere.

Da objektbeholdere deler værtsoperativsystemet, behøver de ikke at starte et operativsystem eller indlæse biblioteker. Det betyder, at objektbeholdere kan være meget mere effektive og lette. Programmer i objektbeholdere kan startes på få sekunder, og mange flere forekomster af programmet kan være på maskinen sammenlignet med et VM-scenarie. Tilgangen med det delte operativsystem har også fordelen af reduceret spild, når det handler om vedligeholdelse, f.eks. programrettelse og opdatering.

Selvom objektbeholdere er transportable, er de begrænset til det operativsystem, de er defineret for. En objektbeholder til Linux kan f.eks. ikke køre på Windows og omvendt.

Hvorfor objektbeholdere

Fleksibilitet

Når udviklere bygger og pakker deres programmer i objektbeholdere og giver dem til it-afdelinger, så de kan køres på en standardiseret platform, reduceres den samlede indsats for installation af programmer, og det kan strømline hele udviklings- og testcyklussen. Dette øger også samarbejdet og effektiviteten mellem udviklings- og driftsteams, idet apps kan sendes hurtigere.

Bærbarhed

Objektbeholdere giver et standardiseret format til pakning og indeholder alle de komponenter, der er nødvendige for at køre det ønskede program. Derved løses det typiske problem med "Den fungerer på min maskine" og giver mulighed for mobilitet mellem platforme til operativsystemer og mellem skyer. Hver gang en objektbeholder udrulles et hvilket som helst sted, kører den i et ensartet miljø, der forbliver uændret fra den ene udrulning til den anden. Du har nu et ensartet format, fra udvikling til produktion.

Hurtig skalerbarhed

Da objektbeholdere ikke har det spild, der er typisk for VM'er, herunder separate forekomster af operativsystemet, kan mange flere objektbeholdere understøttes på den samme infrastruktur. Da objektbeholdere er lette, kan de hurtigt startes og stoppes og dermed låse op for scenarier med hurtig op- og nedskalering.

Anvendelsesområder

Programmer, der oprindeligt findes i cloudmiljøet

Programmer, der er indbygget i clouden, er afhængige af objektbeholdere for at opnå en fælles driftsmodel på tværs af miljøer, herunder offentligt, privat og hybrid. Den lave belastning og den høje tæthed af objektbeholdere gør det muligt at hoste mange af dem i den samme virtuelle maskine og gør dem velegnede til at levere cloudbaserede programmer.

Løft og skift

En organisation kan få betydelige fordele ved at overføre til clouden, men ønsker muligvis ikke at skrive et eksisterende program igen. Ved hjælp af objektbeholdere har du mulighed for at overføre dine programmer til clouden uden at ændre nogen kode.

Batch

Batchbehandling refererer til aktiviteter, der kan udføres uden menneskers indgriben, eller som kan udføres afhængig af ressourcetilgængelighed. Eksempler omfatter oprettelse af rapporter, tilpasning af billeder og konvertering af filer fra ét format til et andet. Objektbeholdere gør det nemt at køre batchjob uden at skulle administrere et miljø og afhængigheder. Dynamiske beregningsindstillinger, f.eks. Azure Container Instances (ACI), kan bruges til effektivt at overføre kildedata, behandle dem og placere dem i et varigt lager, f.eks. Azure Blob Storage. Ved at anvende denne fremgangsmåde i stedet for statisk klargjorte virtuelle maskiner kan du opnå betydelige omkostningsbesparelser vha. fakturering pr. sekund.

Machine learning

Maskinel indlæring anvender algoritmer på data og kommer med forudsigelser på baggrund af mønstre, der findes i dataene. Objektbeholdere kan gøre programmer til maskinel indlæring uafhængige og yderst skalerbare i ethvert miljø.

Mere end objektbeholdere

Hvis du vil opnå optimale fordele ved objektbeholdere, kan du overveje komplette løsninger, herunder objektbeholderoptimerede værktøjer og tjenester, som hjælper dig med at opnå fleksibilitet, sikkerhed og skalering.

Orkestrering

Kørsel af skalerbare objektbeholdere kræver organisering og administration af distribuerede, objektbeholderprogrammer via en Orchestrator-platform, f.eks. Kubernetes.

Udforsk Kubernetes med Azure

Sikkerhed

Med objektbeholdere kræves der en lagdelt metode, fra afbildning af objektbeholdere til klyngeisolation. Du kan bedst angive konfigurationen af disse rammer med dine CI/CD-pipelines.

Se de vigtigste sikkerhedsforanstaltninger for objektbeholdere og Kubernetes

Serverløse objektbeholdere

Du kan derudover øge fleksibiliteten med objektbeholdere efter behov. Brug teknologier for serveruafhængige objektbeholdere til nemt at køre objektbeholdere uden at skulle administrere servere og burst fra dine Kubernetes-klynger, når der er spidsbelastninger på trafikken.

Prøv serveruafhængige objektbeholdere

DevOps

Objektbeholdere gør det nemt for udviklere at dele software og afhængigheder på tværs af it- og produktionsmiljøer. Når de kombineres med DevOps-praksis, kan du effektivt sende kode hurtigere og forkorte softwareudviklingscyklusser.

Se vejledningen DevOps med Azure

Ressourcer

Klar, når du er – prøv at bruge objektbeholdere og Kubernetes gratis sammen med Azure