Definer beholdere

Fullført

Når Contoso overfører og virtualiserer ulike arbeidsbelastninger, kan det oppstå et alternativ for å beholder noen av arbeidsbelastningene. Windows Server-administratoren vurderer beholdere, forstår hvordan de fungerer og hva fordelene ved å bruke dem kan være. Fordelene kan omfatte mobilitet, smidighet, økt effektivitet og servertettheter. Alle disse fordelene bidrar til mer optimaliserte serverarbeidsbelastninger og konsekvens i utviklingsmiljøer.

Hva er beholdere?

En beholder brukes til å pakke et program sammen med alle avhengighetene og abstrahere det fra vertsoperativsystemet (OS) der det skal kjøres. Beholdere gir et lett utviklings- og kjøretidsmiljø der programmer kan kjøres og deles enkelt under utvikling. Ikke bare er en beholder isolert fra vertsoperativsystemet, den er også isolert fra andre beholdere. Isolerte beholdere gir en virtuell kjøretid, noe som også kan forbedre sikkerheten og påliteligheten til appene som kjører i dem.

Tradisjonelt er et program utviklet for å kjøre på en støttet prosessor- og maskinvare- og OS-plattform. Programmer krever vanligvis ekstra koding for å gi støtte for de ulike kjøretidsplattformene. Med så mange forskjellige databehandlingssystemer er det nødvendig med en mer effektiv programvareutviklings- og administrasjonsplattform for å støtte portabilitet mellom flere databehandlingsmiljøer. Beholdere bidrar til å gi slik portabilitet.

Fordeler ved å bruke beholdere

Fordelene ved å bruke beholdere inkluderer følgende:

  • Muligheten til å løpe hvor som helst. Beholdere kan kjøre på ulike plattformer, for eksempel Linux- og Windows- og Mac-operativsystemer. De kan driftes på en lokal arbeidsstasjon, på servere i lokale datasentre eller klargjøres i skyen.

  • Isolasjon. En beholder ser ut til å være et komplett operativsystem for et program. CPU-, minne-, lagrings- og nettverksressursene er virtualisert i beholderen og er isolert fra vertsplattformen og andre programmer.

  • Økt effektivitet. Beholdere kan raskt distribueres, oppdateres og skaleres for å støtte en smidigere utviklings-, test- og produksjonslivssyklus. Fordi de er mer effektive når det gjelder ressurser de bruker, er fotavtrykket mindre, noe som gir økt tetthet på servere.

  • Et konsekvent utviklingsmiljø. Utviklere bruker beholdere som et konsekvent og forutsigbart utviklingsmiljø som støtter ulike utviklingsspråk, for eksempel Java, .NET, Python og Node.js. Utviklere vet at uansett hvor programmet distribueres, sikrer beholderen at programmet kjører som tiltenkt.

Slik fungerer beholdere

Prosessoren i en standard Windows-datamaskin har to forskjellige moduser: kjernemodus og brukermodus. Kjerne-OS-komponenter og de fleste enhetsdrivere kjører i kjernemodus, mens programmer kjører i brukermodus.

Når du installerer beholderteknologi på en datamaskin, oppretter hver beholder en isolert, lett silo som brukes til å kjøre en app på vertsoperativsystemet. En beholder bygger på og deler mesteparten av vertsoperativsystemets kjerne for å få tilgang til filsystemet og registeret.

Hver beholder har sin egen kopi av systemfilene for brukermodus, som er isolert fra andre beholdere og fra vertens eget brukermodusmiljø. Muligheten til å isolere brukermodusen leveres av et beholderbasebilde, som består av systemfilene for brukermodus som er nødvendige for å støtte en pakket app. Maler for beholderbasebilder gir et grunnleggende lag med OS-tjenester som brukes av den beholdere appen som ikke er angitt (eller begrenset) fra vertens kjernemoduslag.

Laget der program- og kodeendringer gjøres, ligger oppå disse forhåndsbygde OS-bildelagene for beholderbasen. Disse grunnleggende OS-lagene utvikles og oppdateres separat fra beholderlagene som brukes aktivt for program- eller kodeendringer. Basislag trekkes ned til det lokale arbeidsmiljøet uten å bli oppdatert, og deretter startes arbeidet i beholderlag som kjører på basislagene. Dette gjør det mulig for utviklingsmiljøer som er mindre, lettere og mer bærbare.

Diagram som viser et eksempel på et beholderlag satt med lag i en stabel i følgende rekkefølge fra bunnen av: Basis OS-lag, IIS-lag, ASP.NET lag og ditt nettstedslag.

Når du bygger ditt eget beholderbilde for å være vert for programmet, starter du med å bruke et beholderbase-OS-bilde eller et forhåndsbygd beholderbilde som har avhengighetene du trenger. På toppen av disse lagene bygger du dine egne lag med programmet du vil kjøre i en beholder. Hver operasjon for å opprette beholderbildebyggene på toppen av den siste. Dette legger til bildestørrelsen, men lar deg enkelt skille OS, rammeverk, avhengigheter og programlag.

Beholdere og mikrotjenester

Mikrotjenester-programmer er definert som en opprinnelig skytilnærming der et enkelt program består av mange løst koblede og uavhengig distribuerbare mindre komponenter eller tjenester. Hver av disse mindre komponentene eller tjenestene kan representeres av en beholder. Beholdere implementerer imidlertid ikke nødvendigvis en mikrotjenestearkitektur.

En beholder kan være vert for et monolittisk program, men de er ikke utformet for denne intensjonen. Som standard vil Docker (eller en annen beholder kjøretid) samt beholderorkestreren anta at en beholder alltid kan slettes/fjernes på en trygg måte, og en annen beholder kan ganske enkelt ta sin plass om nødvendig. Hvis du konfigurerer et program til å skrive til VM-disken på en vm-maskin, kan du trygt stoppe og starte vm-maskinen, og dataene vil vedvare til disken , akkurat som vm vil trygt starte og fortsette operasjonen. Med beholdere, hvis du fjerner en beholder og henter en annen på plass, vil bare de eksisterende lagene i beholderbildet være der. I et mikrotjenestemiljø bør dette ikke være et problem hvis du har vedvarende tilstand og data.

Selv om du kan kjøre en beholder og administrere den omtrent som en maskin, anbefales det at du tar i bruk praksisene for fordeling av tilstand og data og sikrer at beholderen kan opprettholde å bli slettet. Dette gjør at du kan dra nytte av andre fremgangsmåter, for eksempel DevOps.

I praksis bør du ikke lagre data eller tilstand i beholderbildet og lagene. I stedet bør du bruke ekstern fast lagring som gir alle beholderforekomster tilgang til den.