Wat betekent Cloud Native eigenlijk?

0
201
Nadya C/Shutterstock.com< /figuur>

Cloud Native-applicaties maken gebruik van de voordelen van moderne cloudinfrastructuurcomponenten om snelle schaalbare implementaties mogelijk te maken. Een “cloud-native” systeem wordt gecreëerd door de combinatie van verschillende onafhankelijke attributen. Het zal een hoge mate van automatisering en ontkoppeling van afhankelijkheid hebben, wat resulteert in superieure veerkracht om te veranderen als gevolg van code-releases en omgevings-upgrades.

Meer dan alleen technische kwaliteiten, koppelen de meeste commentatoren cloud-native ook aan de uitvoerende organisatie 8217;s werkmethoden en mentaliteit. Cloud-native organisaties zullen de cloud actief omarmen voor hun hele stack en beschouwen het als een onderscheidend kenmerk van hun aanbod. Dit staat in contrast met leveranciers die de cloud louter zien als een datacenter dat hun diensten uitvoert.

Variabele definities

Zoals met veel veelvoorkomende cloud-buzzwoorden, krijg je verschillende antwoorden op wat cloud-native is, afhankelijk van wie je het vraagt.

Microsoft zegt dat de term systemen beschrijft die “snelle verandering en grootschalige veranderingen omarmen” , en veerkracht.” Voor VMWare is het “een benadering voor het bouwen en uitvoeren van applicaties die gebruikmaakt van de voordelen van het leveringsmodel voor cloud computing.” Oracle benadrukt hoe cloud-native is gebaseerd op “distributed computing.”

RedHat is specifieker en stelt dat cloud-native apps "een verzameling kleine, onafhankelijke en losjes gekoppelde diensten" zijn" die “goed erkende bedrijfswaarde opleveren.” Het laatste deel erkent dat cloud native over meer gaat dan alleen software. Een succesvol cloud-native systeem moet tastbare resultaten opleveren voor uw bedrijf, of het nu gaat om een ​​grotere klanttevredenheid of een kortere introductietijd.

Advertentie

Het handvest van de Cloud Native Computing Foundation definieert het concept als een paradigma van “losjes gekoppelde systemen die veerkrachtig, beheersbaar en waarneembaar zijn”. Ze vergemakkelijken “veranderingen met een grote impact die vaak en voorspelbaar worden gemaakt met minimale inspanning.”

Cloud Native Traits

Er is niet één manier om cloud-native te worden. De terminologie is flexibel en gebaseerd op kwalitatieve kenmerken. Cloud-native systemen zijn meestal gebaseerd op microservices die worden geïmplementeerd met een container orchestrator, waarbij gebruik wordt gemaakt van geautomatiseerde implementatiestromen om code door de pijplijn te verplaatsen. De daadwerkelijke implementatie is aan elke organisatie om te beslissen.

Met dit model kunnen nieuwe wijzigingen snel worden doorgevoerd zonder de controle te verliezen. Ontwikkelaars voeren wijzigingen door, pushen ze naar een repository en laten hun CI-pijplijn een nieuwe release implementeren voor productie. Automatisering verkleint het risico op fouten en geeft ontwikkelaars meer mogelijkheden om zich te concentreren op het schrijven van nieuwe code.

De resulterende versnelling in de ontwikkelingscyclus verhoogt de algehele productiviteit en levert meer functies aan gebruikers in een korter tijdsbestek. Dit bevordert de klanttevredenheid en -betrokkenheid, en geeft een beeld van een constant evoluerende codebase waar bugs snel na ontdekking worden gepatcht.

Cloud native is niet helemaal "laat de machine het werk doen" Hoewel. Een ander kernprincipe is waarneembaarheid, het idee dat systemen hun interne toestand moeten blootleggen op een manier die gemakkelijk toegankelijk is voor operationele teams.

Effectieve monitoring, tracering en logging geeft u inzicht wanneer zich problemen voordoen . Een waarneembaar systeem brengt de informatie naar boven die u nodig hebt om problemen op te lossen. U gebruikt de introspectieve mogelijkheden van uw infrastructuur om de levenscyclus van verzoeken te ontdekken, van uw mesh tot individuele services en weer terug.

Sparation of Concerns

Een cruciaal kenmerk van cloud-native systemen is een sterke ontkoppeling. Dit gaat hand in hand met het microservicemodel. Services moeten standalone kunnen zijn zonder harde afhankelijkheden van elkaar. Dit verhoogt de veerkracht en maakt het gemakkelijker om in de toekomst delen van uw stapel te ruilen.

Advertentie

Elke functionele eenheid wordt zijn eigen microservice die met de anderen communiceert via duidelijk gedefinieerde API's. Hiermee kunt u afzonderlijke delen van uw systeem scheiden, waardoor ontwikkelaars zich kunnen concentreren op hun specifieke gebied en u sterkere beveiligingen kunt aanbrengen rond kritieke services in productie. Uw authenticatieservice kan baat hebben bij een grotere mate van isolatie dan uw algemene webcontainers.

Door services te ontkoppelen, zijn ze schaalbaarder, zodat uw systeem beter is toegerust om te reageren op veranderingen in de vraag van gebruikers. Als media-aandacht zorgt voor een toename van het aantal aanmeldingen van gebruikers, kunt u snel meer instanties van uw registratieservice-backend toevoegen om het extra verkeer af te handelen. Een conventionele benadering met een monolithische app op een VM of bare-metal server zou zich op deze manier niet kunnen aanpassen.

De bedrijfsvoordelen

Cloud-native worden heeft vaak grote gevolgen voor de organisatie als geheel. Verbeterde schaalbaarheid kan de kosten verlagen, de uptime van de service verhogen en de infrastructuur de gebruikers een stap voor laten blijven. Het leidt allemaal tot een concurrerender platform dat wendbaar genoeg is om te reageren op veranderingen in de markt.

Verouderde systemen hebben mogelijk geen vaste implementatieprocedures, maar vertrouwen in plaats daarvan op een periodieke roll-up van recente wijzigingen in de productie. Dit maakt een snelle reactie op klantvragen onmogelijk. In een native cloudsysteem kun je reageren op tickets zodra ze binnenkomen. De code wordt meestal direct na een samenvoeging verzonden, zodat je binnen enkele minuten in plaats van dagen verbeteringen kunt aanbrengen.

Cloud-native systemen kunnen ook aantrekkelijker zijn voor ontwikkelaars, waardoor het gemakkelijker wordt om toptalent aan te nemen. Het gebruik van technologieën zoals Docker en Kubernetes in productie toont een toewijding aan moderne workflows die de dagelijkse ontwikkeling minder veeleisend maken. De mogelijkheid om toegang te krijgen tot hoogopgeleide ingenieurs resulteert meestal in betere producten die in minder tijd worden gebouwd, waardoor een zichzelf in stand houdende cyclus ontstaat die een opleving in de groei van de organisatie in gang zet.

Cloud-native en DevOps

Cloud-native systemen zijn vaak het resultaat van goede DevOps-praktijken. Terwijl DevOps de interactie tussen ontwikkelings- en operationele teams beschrijft, richt cloud native zich op het resultaat van die interactie en de impact ervan op het bredere bedrijf.

Advertentie

De DevOps-cyclus handhaaft een strakke lus tussen plannen, bouwen , testen, vrijgeven en monitoren. Het verhoogt de ontwikkelingssnelheid door duidelijk de volgorde van gebeurtenissen in de levenscyclus van een nieuwe functie te definiëren. Het respecteren van DevOps-principes vergroot de kans dat een systeem een ​​effectieve cloudburger wordt.

De twee hebben de neiging om uit elkaar voort te komen. Als je willens en wetens een van de termen toepast, profiteer je waarschijnlijk ook al van de voordelen van de andere. Cloud-native systemen worden automatisch geïmplementeerd op een regelmatige cadans; effectief gebruik van DevOps-tools zoals CI/CD-pipelines is de logische manier om snelle ontwikkelingsstromen te implementeren.

Hoe zit het met “Cloud Enabled?' 8221;

U kunt systemen tegenkomen die worden beschreven als “cloud-enabled” in plaats van cloud-native. Deze term verwijst meestal naar applicaties die overgaan van traditionele ontwikkelings- en implementatiemodellen naar cloudalternatieven.

Een cloud-enabled systeem zal draaien met behulp van cloudinfrastructuur, maar is mogelijk niet volledig ontkoppeld en gemodulariseerd. Als je een legacy-monoliet hebt, is het meestal relatief eenvoudig om het als een Docker-container te verpakken en in de cloud te lanceren. Dit biedt een aantal directe voordelen, waaronder het vooruitzicht van geautomatiseerde implementaties en een zekere mate van schaalbaarheid.

De applicatielaag is echter nog steeds een monoliet. Er is een refactoringperiode nodig om de stack te splitsen in ontkoppelde microservices die afzonderlijk van elkaar kunnen worden geschaald. Een monoliet in containers kan niet dezelfde mate van veerkracht bieden als een systeem dat is ontworpen en gebouwd voor de cloud.

Advertentie

Cloud inschakelen van een systeem is de eerste stap om er een native cloudburger van te maken. Het kan worden gevolgd door een “cloud-based” aanpak, waarbij de applicatie overwegend in de cloud draait met een hoge mate van scheiding van diensten. Er kunnen nog steeds enkele verplichte koppelingen zijn tussen componenten, of terugkoppelingen naar legacy-infrastructuur. De architectuur kan “cloud native” zodra deze zijn geëlimineerd.

Samenvatting

Een cloud-native systeem is een systeem dat alles gebruikt wat de cloud te bieden heeft om de ontwikkeling te versnellen, implementaties te automatiseren en de veerkracht te vergroten en waarneembaarheid. Het is het resultaat van een organisatorische investering in moderne tools en werkwijzen, waardoor teams sneller code kunnen verzenden en extra waarde in het bedrijf kunnen brengen.

Cloud-native worden gaat niet van de ene op de andere dag. Afhankelijk van de grootte van uw systeem, kan het acceptabel zijn om te streven naar een “cloud-enabled” of “cloudgebaseerd” eerst benaderen. Door uw architectuur geleidelijk te ontwikkelen, kunt u laaghangend fruit plukken en de impact van individuele wijzigingen volgen, zodat u weet of uw inspanningen vruchten afwerpen.