Designmønstre til cloud-applikationer og -tjenester, der er meget pålidelige, skalerbare og sikre, defineres af eksperter i cloud computing-branchen som “generelle genanvendelige løsninger på almindeligt forekommende problemer i cloud-arkitekturen.” Det er tilsyneladende en bred definition, men det kan være en hjælp at forstå, at CPD’er er multiple og ikke ensartede. I betragtning af at CDP’er bruges til at løse “almindelige problemer”, kan man sige, at disse mønstre samlet set er et bibliotek af genanvendelige løsninger på unikke eller individuelle problemer, som mange cloud-byggere støder på.
I dette indlæg vil vi diskutere CDP’er mere detaljeret. I et forsøg på at hjælpe med Amazon Web Service-arkitekturen, mens vi udforsker, hvad designmønstre er, og hvordan man bruger dem, vil vi også tage et kig på AWS CDP’er og fremtiden for AWS-designteknologier.
En bred oversigt over, hvad en CDP indebærer
Som at lægge et flisegulv med omhu for mønster og design, kræver opbygning af cloud-applikationer, at hver række (niveau) skal lægges ud (kodes) perfekt før den næste. Hvis det nederste niveau er ustabilt, vil de foregående niveauer også være ustabile. Forestil dig bare at lægge et gulv uden at bekymre dig om, hvordan hver enkelt flise så ud, det ville sikkert ende ret dårligt. Når en ingeniør designer en cloud-applikation, er han altid omhyggeligt opmærksom på problemer. Når der opstår generelle problemer, søger ingeniøren at løse dem på en pålidelig og sikker måde med en gennemprøvet løsning. CDP’er sparer tid og mulige uheldige resultater for alle.
Der kommer generelt i et standardformat, og her er, hvad du vil finde i et enkelt Cloud Design Pattern:
- Mønsternavn og en kort beskrivelse
- Identifikation af det typiske problem og udfordringer
- En skitse til løsning af problemet i skyen
- De fordele, der følger af mønsterets anvendelse
- Eventuelle ekstra noter, herunder fordele, ulemper, noteforklaringer
- Hvad arkitekten ellers har lyst til at tilføje
Hvorfor bruge CDP?
Bortset fra blot at bruge mønstre til at styrke cloud-arkitekturen til let at migrere og hurtigt udvikle meget skalerbare applikationer er der et par andre fordele ved dette bibliotek af løsninger. Store virksomheder såvel som nystartede virksomheder bruger CDP’er til at frigøre utrolig værdi i stor skala. Ved at arbejde for at sikre 100 % gentagelige resultater i hele platformens livscyklus og for at fjerne vedligeholdelsen af implementerede applikationer, reduceres de overordnede mønstre af frustrationer ved at drive et cloud-system, mens produktiviteten øges.
Ovenpå fordele på systemniveau oplever arkitekter også fordele fra CDP’er. Forestil dig, at mens du arbejder på en AWS-applikation, løber du ind i et problem, mens du øger effektiviteten af internetlagring. Du beskriver problemet for en anden arkitekt, og hun svarer: “Storage index-mønsteret vil fungere til det”. Da du kender navnet på mønstret, går du straks i gang med arbejdet. Dette er et sprog, der bruges til nemt at kommunikere og løse problemer. Når man har en klar idé om alle cloud-applikationer, før man begynder et projekt, er der ved hjælp af CDP’er ingen grund til at starte forfra, når man skaber et softwaresystem.
Hvad er AWS CDP’er?
Da Amazon er en af de tre store i cloud computing-branchen sammen med Google og Microsoft, vil det ikke komme som et chok, at AWS med alle sine komponenter har et sæt CDP’er. Selv om de ikke officielt er opført med nogen specifik reference af AWS, blev mønstrene til AWS uofficielt designet af tre Amazon-arkitekter. Detaljerne om de enkelte AWS CDP’er kan findes på en Wiki, men ud over denne ressource er det godt at bemærke, at de fleste CDP’er er temmelig indbyrdes udskiftelige for forskellige cloud-tjenester. Navnene for hver CDP kan være forskellige, men med de ovennævnte standarddetaljer vil beskrivelsen af mønstret omfatte, hvordan man løser det i AWS eller den specifikke cloud-tjeneste.
Top AWS Basic Patterns
- Snapshot Pattern (data backups) – For at sikre, at data er sikre, er dette mønster ideelt til, når man udfører programopdateringskontroller, der kræver datakrydsninger og kopiering af OS såvel som data. Tillader, at der tages et “snapshot”, når der anvendes kopier af hvert OS.
- Stamp Pattern (serverreplikation) – For at reducere det arbejde, den tid og de udgifter, det kræver at opsætte en virtuel server, kopierer dette mønster i det væsentlige den virtuelle server med funktioner, der allerede er sat op til at køre. Det er fantastisk til oprettelse af store mængder virtuelle servere.
- Scale-Up Pattern (dynamisk serverspec op/ned) – Dette mønster giver bygherrerne mulighed for at justere serverspecifikationerne til brug uden at udskifte serveren og geninstallere operativsystemet.
- Scale-Out Pattern (dynamisk forøgelse af antallet af servere) – Match uventede variationer i trafikmængden uden at øge omkostningerne for en høj specifikation i en server med høj specifikation. Dette mønster gør det lettere at “skalere op” for at ændre antallet af virtuelle servere, der håndterer behandling.
- On-demand Dish-mønster (dynamisk forøgelse/reduktion af diskkapacitet) – Stop med at lave udførlige skøn over diskkapaciteten, før du bygger, og spar på omkostningerne til forudgående hardwareinvesteringer. Installationen af virtuelle diske med dette mønster giver ubegrænset kapacitet.
AWS-mønsterkategorier
Sammen med de fem grundlæggende og mest anvendte AWS CDP’er har hvert område af følgende cloud-applikation også flere mønsterløsninger:
- Høj tilgængelighed
- Bearbejdning af dynamisk indhold
- Bearbejdning af statisk indhold
- Opload af data
- Relationel database
- Batch Processing
- Drift og vedligeholdelse
- Netværk
Lambda og fremtiden for AWS CDP
I takt med at teknologierne i cloud-tjenester vokser og innovationer implementeres, er det muligt, at CDP’er ikke længere vil være gældende. Dertil kommer, at de i den nærmeste fremtid måske ikke engang er nødvendige takket være teknologi som Lambda fra AWS. Som en serverless computing-platform “er det en computing-tjeneste, der kører kode som svar på begivenheder og automatisk administrerer de computing-ressourcer, der kræves af denne kode”. Det betyder, at Lambda kan løse visse problemer med cloud-design uden en cloud-arkitekts opmærksomhed. Selv om det på nuværende tidspunkt ikke løser alle CDP-problemer, er der en chance for, at event-driven arkitektur snart vil erstatte manuelt aktiverede løsninger.
Og uanset hvor fremtiden fører hen for CDP, er der én ting, der er sikker, nemlig at udvidelsen og væksten af cloud-tjenester er uundgåelig. I øjeblikket har AWS for at håndtere denne vækst en tjeneste kaldet Cloud Pattern Studio. Det er i det væsentlige en skabelonfunktion, hvor løsninger i et mønster kombineres med Cloud Formation og derefter indtastes i en skabelon, og den er designet til visuelt at designe og implementere miljøsoftwarestakke på AWS.
Hvis du overvejer at flytte til skyen eller allerede kører din organisation i skyen, vil du spare penge og kræfter i det lange løb, hvis du forstår, hvordan du kører cloud-baserede arbejdsbyrder og frigør den sande kraft i en platform. Udnyttelse af velkendte mønstre til at løse de problemer, som bygherrerne støder på, når de kører cloud-software, er meget værdifuldt i denne tid i udvikling.