Komponenter i cloudmiljøet
- 25 minutter
Cloudcomputing gør det muligt at bruge databehandlingsressourcer som en tjeneste via netværket. Før vi diskuterer de tjenestemodeller, der tilbydes i et cloudmiljø, bør vi overveje de forskellige lag af hardware og software, der kræves for at bygge cloudtjenester. Naturligvis er ikke alle servicekrav identiske. nogle cloudbrugere ønsker muligvis kun adgang til rå infrastruktur for at bygge programmer på. Andre ønsker måske slet ikke at håndtere infrastrukturen, men blot udvikle og udrulle programmer ved hjælp af en brugervenlig platform. For at opfylde disse forskellige krav opdeler cloudtjenesteudbydere deres tilbud i forskellige abstrakte lag.
Byggesten i skyen
Her introducerer vi en stablet abstraktion af cloudmiljøet ved at præsentere typiske byggesten og diskutere deres tilknytning til tre tjenestemodeller i cloudcomputing. Vi præsenterer fire hovedkomponenter i cloudcomputing: programsoftware, udviklingsplatforme, ressourcedeling og infrastruktur, som vist i Figur 7. Infrastrukturen omfatter de fysiske ressourcer i et datacenter. Ressourcedelingslaget omfatter typisk software- og hardwareteknikker, der gør det muligt at dele de fysiske ressourcer, samtidig med at der tilbydes en vis grad af isolation. Udviklingsplatformene bruges til at udvikle cloudprogrammer.
Figur 7: Byggesten til cloudcomputing
Application software: Det øverste lag i stakken er programsoftwaren, som normalt er den systemkomponent, som slutbrugeren bruger.
udviklingsplatforme: Det næste lag, udviklingsplatforme, gør det muligt for programudviklere at skrive programsoftware i forhold til en clouds API (Application Programming Interface). Udviklingsplatforme indeholder typisk specifikationer, som udviklere kan bruge til rutiner, datastrukturer, objektklasser, biblioteker og variabler.
Ressourcedeling: Ressourcedelingsmekanismer, det tredje lag, indeholder nogle vigtige cloudideer:
- Levere software-, beregnings-, netværks- og lagertjenester.
- Tillad et delt miljø, hvor flere hardwareafbildninger (f.eks. virtuelle maskiner) og systemafbildninger (f.eks. generelle OSs) kan køre side om side på en enkelt infrastruktur sammen med isolationer af sikkerhed, ressourcer og fejl. Disse isolationsegenskaber leveres af en kombination af hardware- og softwareteknikker, der dækkes senere.
- Sammenflette fysiske servere i virtuelle servere, der kører på færre fysiske servere.
- Levér fleksibilitet og elasticitet for hurtigt at kunne reagere på brugernes ressource- og servicekrav.
Disse ideer behandles normalt via virtualisering, som er en teknologi, der drøftes i et senere modul.
Infrastruktur: fysiske ressourcer udgør det nederste lag og udrulles primært på cloududbyderens side i cloudcomputing. De brede ressourceklasser omfatter følgende:
- Beregningsressourcer, typisk servere, som er computere, der er udviklet til virksomhedscomputing (i modsætning til brugerarbejdsstationer). De er normalt rack monteret for at udnytte plads effektivt.
- Lagerressourcer, der vedligeholder clouddata. Programlager opkræves normalt i forhold til kapacitetsforbrug (f.eks. pr. gigabyte eller terabyte).
- Netværksressourcer, der muliggør kommunikation mellem servere samt mellem servere og klienter.
- Software, der administrerer beregnings-, netværks- og lagerinfrastrukturen.
Derefter vil vi diskutere, hvilke af disse abstraktioner kan leveres som en leaset tjeneste via et netværk. De tjenester og ressourcer, der kræves af en softwareudvikler, vil f.eks. være forskellige sammenlignet med en person, der gerne vil have adgang til et webmailprogram, der kører i cloudmiljøet.
Cloudcomputingtjenester
Cloudtjenester varierer i bred forstand på baggrund af forskellige brugeres behov. I dette afsnit gennemgås tre populære typer cloudtjenester:
- SaaS (Software as a Service)
- PaaS (Platform as a Service)
- Infrastruktur som en tjeneste (IaaS)
SaaS er et hvilket som helst program, hvor slutbrugeren har adgang til et softwareprogram via netværket og betaler baseret på en række forretningsmodeller, hvoraf nogle er gratis. PaaS er et tilbud på softwareudviklingsplatforme som en service, som bruges til at udvikle SaaS-programmer. Endelig er IaaS leasing af virtualiseret infrastruktur via netværket. I denne sidste model har slutbrugeren fleksibiliteten til at installere og bruge den software, vedkommende vil bruge, på den leasede infrastruktur.
I følgende video gennemgås disse tjenester:
SaaS-model
SaaS (Software as a Service)
(definition) SaaS (Software as a Service) er en softwareleveringsmodel, hvor software og tilknyttede data hostes i en cloud. SaaS-programmer tilgås typisk af brugere, der bruger en tynd klient via en webbrowser.
SaaS er en af de mest almindelige cloudtjenestemodeller, hvor cloududbyderen leverer software som en internettjeneste. I følgende video beskrives dette scenarie. SaaS-brugere skal blot bruge deres browsere til at få adgang til softwaren, hvilket eliminerer behovet for at installere, køre og vedligeholde (opdatering, programrettelse, omkonfigurere osv.) programmet på deres computere. Webbrowseren indlæser SaaS-programtjenesten dynamisk og gennemsigtigt.
SaaS er blevet en almindelig model til levering af software til mange virksomhedsprogrammer, herunder regnskab, samarbejde, CRM (Customer Relationship Management), MIS (Management Information Systems), ERP (Enterprise Resource Planning), fakturering, HRM (Human Resource Management), content management (CM) og service desk management.
Med SaaS vedligeholder udbyderen softwaren og den nødvendige infrastruktur for at køre den. Udbyderen udvikler rutinemæssigt softwaren, og forbedringer gøres automatisk tilgængelige, næste gang en bruger logger på tjenesten. Derudover er alle programdata, der stammer fra brugen af tjenesten, placeret i skyen og er tilgængelige for brugeren fra enhver placering.
SaaS-egenskaber
Langt de fleste SaaS-løsninger er baseret på det, der kaldes multitenantarkitektur. I denne arkitektur bruges en enkelt version af programmet med en enkelt konfiguration for hver kunde (kaldet en lejer). Hvis du vil gøre det muligt for tjenesten at skalere godt, kan den være installeret på flere servere på udbyderens side. Dynamisk skalering bruges til at give flere brugere mulighed for at bruge tjenesten, efterhånden som den bliver mere populær.
De typiske egenskaber ved SaaS omfatter:
- Adgang til softwaretjenesten er webbaseret.
- Software administreres fra en central placering af cloududbyderen.
- Software leveres i en en til mange-model, hvor "en" er cloududbyderen, og "mange" er cloudbrugerne.
- Cloududbyderen håndterer softwareopgraderinger og programrettelser.
SaaS-prismodeller
I modsætning til traditionel software, som sælges under softwarelicensmodellen (med en startlicensomkostning og et valgfrit løbende supportgebyr), prissættes SaaS-udbydere generelt applikationer ved hjælp af et månedligt eller årligt abonnementsgebyr. Denne model gør det muligt for SaaS at opfylde en af de vigtigste påståede fordele ved cloudcomputing – reduktion af kapitaludgifter eller startomkostninger til software. SaaS-udbydere opkræver typisk betaling baseret på forbrugsparametre, f.eks. antallet af brugere, der bruger programmet.
SaaS-use cases
SaaS er en god model til visse typer programmer, f.eks.:
- Programmer, der er ret standardiserede og ikke kræver brugerdefinerede løsninger. Mail er et godt eksempel på et temmelig standardiseret program.
- Programmer, der har et betydeligt behov for fjern-/web-/mobiladgang, f.eks. software til administration af mobilsalg.
- Programmer, der har et kortsigtet behov, f.eks. samarbejdssoftware til et bestemt projekt.
- Programmer, hvor efterspørgslen spidser markant, f.eks. skatte- eller faktureringssoftware, der bruges en gang om måneden.
Der er dog situationer, hvor SaaS muligvis ikke er det rigtige valg, f.eks.:
- Programmer, der kræver offlineadgang til data.
- Programmer, der kræver betydelig tilpasning.
- Programmer, hvor politikker eller regler forhindrer, at data hostes eksternt.
- Programmer, hvor eksisterende in-house løsninger opfylder alle organisationens behov.
SaaS-eksempler
Webmail er et af de tidlige eksempler på SaaS. Webmail gør det muligt for brugere med en browser og en internetforbindelse at få adgang til deres mail når som helst. Tilbud som Outlook, Yahoo Mail og Gmail er ekstremt populære. Nogle af disse tjenester er baseret på modellen "freemium", hvor grundlæggende tjenester er gratis, og mere avancerede funktioner er tilgængelige med et abonnement. Desuden tjener udbyderne hovedsageligt indtægter fra reklamer, der vises for brugerne, når de bruger tjenesten.
Et andet populært eksempel på SaaS er online office-pakker, f.eks. Microsoft 365, som giver brugerne mulighed for at oprette, redigere og dele dokumenter online.
PaaS-model
PaaS (Platform as a Service)
(definition) PaaS (Platform as a Service) er en databehandlingsplatform, der gør det muligt at oprette webprogrammer på en forenklet måde uden kompleksiteten ved at købe og vedligeholde den underliggende software og infrastruktur.
PaaS-baserede tilbud giver brugerne mulighed for at udvikle, udrulle og skalere programmer på platforme, der tilbydes af cloududbydere. PaaS er analog med SaaS, bortset fra at i stedet for software, der leveres via internettet, er det en platform til oprettelse af software, der leveres via internettet.
PaaS-egenskaber
PaaS-tilbud varierer blandt udbydere, men indeholder normalt nogle grundlæggende funktioner, som omfatter:
- Tjenester til udvikling, test, installation, vært og vedligeholdelse af programmer i det samme integrerede udviklingsmiljø (IDE).
- Webbaserede værktøjer til oprettelse af brugergrænseflader for at hjælpe med at oprette, ændre og teste forskellige scenarier for brugergrænsefladen.
- Multitenantarkitektur, hvor flere samtidige brugere anvender de samme udviklingsværktøjer.
- Indbyggede skaleringsmekanismer for udrullet software, der automatisk kan håndteres af cloududbyderen ved hjælp af belastningsjusterings- og failovermekanismer.
PaaS-prismodeller
I modsætning til SaaS-prismodellen (som er en abonnements- eller annoncebaseret model), er PaaS normalt prissat med hensyn til brug af platformen. Azure Functions' prismodel f.eks. gebyrer for det samlede antal udførelser samt udførelsestid. Jo mere et program, der er udviklet ved hjælp af PaaS, bliver brugt, jo mere bliver PaaS-udvikleren opkrævet.
PaaS-use cases
PaaS er en god model til visse typer programmer, f.eks.:
- Scenarier med hurtig programudvikling.
- Programmer, der kræver webbaseret infrastruktur til håndtering af forskellige belastninger fra brugere.
- Programmer, der muligvis ikke har brug for omfordeling eller migrering til andre platforme i fremtiden.
Der er visse scenarier, hvor PaaS muligvis ikke er ideel, f.eks.:
- Når programmet skal være meget bærbart med hensyn til, hvor det hostes, fordi PaaS-API'er kan variere fra en PaaS-udbyder til en anden.
- Når beskyttede sprog eller API'er kan påvirke udviklingsprocessen eller forårsage problemer i fremtiden på grund af leverandørlåsning.
- Når programmets ydeevne kræver tilpasning af den underliggende hardware og software.
PaaS-eksempler
Azure Functions er et eksempel på en PaaS. Ved hjælp af Azure Functions kan udviklere køre små kodestykker på Azures infrastruktur uden at bekymre sig om at administrere deres egne.
IaaS-model
Infrastruktur som en tjeneste (IaaS)
(definition) Infrastructure as a Service (IaaS) er en cloudcomputingmodel, hvor cloududbydere gør databehandlingsressourcer tilgængelige for klienter, normalt i form af instanser eller virtuelle maskiner.
I IaaS-modellen udlejer providere beregningsressourcer i form af instanser eller virtuelle maskiner, som har en form for konfigurerbar CPU, hukommelse, disk og netværksbåndbredde knyttet til dem. Efter klargøring kan IaaS-brugere oprette fjernforbindelse til disse instanser og konfigurere deres valg af platforme og programmer. Denne model giver IaaS-brugerne den største fleksibilitet med hensyn til softwareudvikling og -udrulning. I stedet for at købe servere, software, datacenterplads eller netværksudstyr udlejer brugerne disse ressourcer som en fuldt udliciteret tjeneste efter behov.
IaaS-egenskaber
IaaS har følgende egenskaber:
- Beregningsressourcer leveres til IaaS-brugere som en tjeneste.
- IaaS-udbydere leverer værktøjer, der gør det muligt for IaaS-brugere at konfigurere dynamisk skalering af ressourcer.
- IaaS-udbydere har normalt forskellige ressourcetilbud til forskellige omkostninger og følger en forbrugsprismodel (typisk beregnet pr. time).
- De samme fysiske ressourcer deles mellem flere brugere.
IaaS-prismodeller
I modsætning til SaaS-prismodellen (som er en abonnements- eller annoncebaseret model) eller PaaS-modellen (som normalt er prissat i forhold til antallet af transaktioner, båndbredde eller brugt lager), er IaaS normalt prissat pr. time pr. forekomst. Azure Virtual Machines tilbyder f.eks. et spektrum af beregningsressourcer som virtualiserede OS-forekomster, som varierer i beregning, hukommelse, lager og båndbredde.
Cloududbydere kan også vælge at fakturere på et forholdsmæssigt eller ikke-forholdsmæssigt grundlag. På forholdsmæssig basis faktureres hver delvise time delvist, mens hver delvise time faktureres som en hel time på ikke-forholdsmæssig basis. Denne forskel bliver betydelig, når IaaS-brugere har brug for et stort antal forekomster i en kort periode til burstbehandling.
IaaS-use cases
IaaS giver mening i en række situationer:
- Når efterspørgslen efter beregningsressourcer er ustabil. E-handelswebsteder oplever f.eks. den største efterspørgsel i feriesæsonen.
- For nye organisationer, der ikke har kapital til at investere i infrastruktur på stedet.
- Når organisationer har brug for at øge deres it-ressourcer hurtigt (f.eks. virksomheder, der starter internettet).
- Til midlertidige projekter eller midlertidige infrastrukturbehov (når organisationer kræver en stor mængde beregningskraft i en begrænset mængde tid).
IaaS er muligvis ikke den bedste løsning, når:
- Overholdelse af regler og standarder tillader ikke, at data offshore- eller outsources.
- Programmer har strenge krav til servicekvalitet (QoS).
- Organisationer har eksisterende brugerdefineret infrastruktur internt, så den opfylder deres it-behov.
IaaS-eksempler
Alle større cloududbydere tilbyder IaaS-produkter. Azure VM'er udlejer instanser fra forskellige datacenterplaceringer rundt om i verden. Brugerne kan vælge mellem forskellige forekomsttyper, fra en lav hukommelse, enkelt CPU (som koster omkring flere cent i timen), hele vejen op til multicore, høj ydeevne, GPU-accelererede instanser (som kan koste op til flere amerikanske dollars i timen).
Tjek din viden
Feedback
Var denne side nyttig?
No
Har du brug for hjælp til dette emne?
Vil du prøve at bruge Ask Learn til at tydeliggøre eller guide dig gennem dette emne?