Cloud native indica un approccio allo sviluppo software in cui le ap­pli­ca­zio­ni sono pro­get­ta­te ap­po­si­ta­men­te per fun­zio­na­re nel cloud. Sono scalabili, fles­si­bi­li e uti­liz­za­no tec­no­lo­gie moderne come container, mi­cro­ser­vi­zi e pratiche DevOps.

Compute Engine
La soluzione IaaS ideale per i tuoi carichi di lavoro
  • vCPU estre­ma­men­te van­tag­gio­se e potenti core dedicati
  • Massima fles­si­bi­li­tà senza periodo con­trat­tua­le minimo
  • Servizio di as­si­sten­za tecnica 24 ore su 24, 7 giorni su 7

Il cloud computing offre alle aziende numerosi vantaggi, primi tra tutti la semplice sca­la­bi­li­tà dei servizi IT, la fles­si­bi­li­tà or­ga­niz­za­ti­va, la pos­si­bi­li­tà di accesso in­di­pen­den­te­men­te dal luogo in cui ci si trova e la riduzione dei costi dell’hardware. Per poter be­ne­fi­cia­re appieno di questi vantaggi, sono ne­ces­sa­rie ap­pli­ca­zio­ni pensate ap­po­si­ta­men­te per operare in un ambiente cloud. Qui entra in gioco l’approccio cloud native.

Il concetto si può rac­chiu­de­re nello sviluppo di ap­pli­ca­zio­ni sotto forma di singoli mi­cro­ser­vi­zi che vengono eseguiti su piat­ta­for­me agili e basate su con­te­ni­to­ri e non più on-premises, ossia fi­si­ca­men­te sul posto. Il risultato sono ap­pli­ca­zio­ni native cloud (NCA), che sfruttano appieno i punti di forza dell’ar­chi­tet­tu­ra cloud.

Come funziona l’approccio cloud native?

L’approccio cloud native si fonda su quattro pilastri che sono in­trec­cia­ti e in­ter­di­pen­den­ti. Sul lato tecnico ci sono i mi­cro­ser­vi­zi e le tec­no­lo­gie di con­te­ni­to­ri che sono stati svi­lup­pa­ti ap­po­si­ta­men­te per l’ambiente cloud e co­sti­tui­sco­no elementi fon­da­men­ta­li della pro­get­ta­zio­ne cloud native. I singoli mi­cro­ser­vi­zi eseguono esat­ta­men­te una funzione e possono essere combinati in un container insieme a tutto il ne­ces­sa­rio per la loro ese­cu­zio­ne. Questi con­te­ni­to­ri sono portatili e offrono ai team di sviluppo un alto grado di fles­si­bi­li­tà, per esempio quando si tratta di testare nuovi servizi.

Sul lato della strategia ci sono i processi DevOps e di Con­ti­nuous Delivery. La pro­get­ta­zio­ne di un’ar­chi­tet­tu­ra cloud native ben fun­zio­nan­te coinvolge di­ret­ta­men­te non solo i team di sviluppo (de­ve­lo­pers = Dev), ma anche le ope­ra­zio­ni (Ope­ra­tions = Ops). Una buona ap­pli­ca­zio­ne cloud native, quindi, è il frutto della col­la­bo­ra­zio­ne fra tutte le persone coinvolte. Nell’ambito di una cultura DevOps agile, la soluzione migliore per gli utenti finali è ricercata fin dal primo momento. In uno scambio di in­for­ma­zio­ni costante, il team di sviluppo aggiunge ca­rat­te­ri­sti­che spe­ci­fi­che del prodotto a un mi­cro­ser­vi­zio; queste vengono con­se­gna­te au­to­ma­ti­ca­men­te at­tra­ver­so processi di consegna continua (Con­ti­nuous Delivery).

Ca­rat­te­ri­sti­che delle ap­pli­ca­zio­ni cloud native

Le ap­pli­ca­zio­ni cloud native si di­stin­guo­no per una serie di ca­rat­te­ri­sti­che peculiari che le dif­fe­ren­zia­no dalle app tra­di­zio­na­li:

  • Ar­chi­tet­tu­ra a mi­cro­ser­vi­zi: una ca­rat­te­ri­sti­ca tipica delle ap­pli­ca­zio­ni cloud native è che con­si­sto­no in diversi servizi in­di­vi­dua­li con un proprio ambiente di runtime. Questi esistono in­di­pen­den­te­men­te l’uno dall’altro e in­di­pen­den­te­men­te dalla ri­spet­ti­va in­fra­strut­tu­ra. Sono li­be­ra­men­te com­bi­na­bi­li e possono essere copiati per altre ap­pli­ca­zio­ni e riu­ti­liz­za­ti a seconda delle esigenze.
  • API: la co­mu­ni­ca­zio­ne tra i mi­cro­ser­vi­zi avviene tramite API (in­ter­fac­ce) stan­dar­diz­za­te, così che l’utente finale abbia la sen­sa­zio­ne di in­te­ra­gi­re con una sola ap­pli­ca­zio­ne. Allo stesso tempo, i servizi sono pro­get­ta­ti in modo da poter essere impiegati anche come parte di un’altra ap­pli­ca­zio­ne.
  • Au­to­ma­zio­ne: un’altra ca­rat­te­ri­sti­ca dei servizi cloud native è il loro com­por­ta­men­to altamente pre­ve­di­bi­le, insieme al loro elevato grado di au­to­ma­tiz­za­zio­ne. Di­ver­sa­men­te dalle ap­pli­ca­zio­ni on-premises, che sono gestite in ambienti server classici, le pre­sta­zio­ni delle ap­pli­ca­zio­ni cloud native sono adattate sulla base delle effettive necessità. L’ap­pli­ca­zio­ne non necessita quindi di essere scalata nel suo insieme per poterne regolare le pre­sta­zio­ni. I singoli mi­cro­ser­vi­zi vengono ag­gior­na­ti in­di­pen­den­te­men­te e di volta in volta in base alle necessità. Questi processi di ag­gior­na­men­to e di au­to­re­go­la­zio­ne vengono spesso eseguiti au­to­ma­ti­ca­men­te per mezzo di trigger (eventi di at­ti­va­zio­ne) pre­de­fi­ni­ti.
  • Di­spo­ni­bi­li­tà: nel caso dei software tra­di­zio­na­li on-premises, il rilascio dei singoli ag­gior­na­men­ti spesso si traduce in un downtime del ri­spet­ti­vo servizio. Le ap­pli­ca­zio­ni cloud native eliminano questo problema. L’ar­chi­tet­tu­ra cloud native permette al team di sviluppo di eseguire le modifiche così come le nuove ca­rat­te­ri­sti­che del prodotto in tempo reale, ren­den­do­le di­spo­ni­bi­li all’utente già dal momento in cui il codice viene inserito. Inoltre, in caso di mal­fun­zio­na­men­ti del servizio o dell’in­fra­strut­tu­ra, entrano in gioco alcuni mec­ca­ni­smi di recupero che lavorano in modo di­stri­bui­to per garantire che non vi siano li­mi­ta­zio­ni evidenti per gli utenti.
Consiglio

Nel nostro articolo di ap­pro­fon­di­men­to mettiamo a confronto i software on-premises e cloud, oltre a il­lu­stra­re i tratti in comune e le prin­ci­pa­li dif­fe­ren­ze tra i due approcci.

Quali vantaggi presenta l’approccio cloud native?

Negli ambienti cloud, l’approccio cloud native offre diversi vantaggi, che abbiamo riassunto nei paragrafi seguenti.

Fles­si­bi­li­tà

Il vantaggio prin­ci­pa­le dell’approccio cloud native risiede nella sua fles­si­bi­li­tà. Poiché tutti i servizi vengono eseguiti in­di­pen­den­te­men­te dal loro ambiente e i con­te­ni­to­ri di mi­cro­ser­vi­zi sono pure altamente portatili, agli svi­lup­pa­to­ri e alle svi­lup­pa­tri­ci è concessa una grande libertà. È possibile, per esempio, avviare o arrestare più istanze di un con­te­ni­to­re, vantaggio non da poco nelle fasi di test e sviluppo. Di­ver­sa­men­te da quanto avviene in un’ar­chi­tet­tu­ra mo­no­li­ti­ca, i cam­bia­men­ti nel codice dei singoli mi­cro­ser­vi­zi non in­fluen­za­no l’intero software, mi­ni­miz­zan­do così il rischio con­se­guen­te al rilascio di nuovi software.

Sca­la­bi­li­tà

Un altro grande vantaggio è dato dalla sca­la­bi­li­tà delle ap­pli­ca­zio­ni stesse, in grado di far ri­spar­mia­re alle aziende numerose risorse eco­no­mi­che al­tri­men­ti destinate all’ag­gior­na­men­to dell’hardware, di pari passo con l’aumentare del numero di richieste per un de­ter­mi­na­to servizio.

Evi­ta­men­to degli effetti lock-in

Il fatto che singoli servizi non siano legati a un hardware o a un sistema operativo specifico fa sì che non esistano vincoli con un singolo fornitore. Le ap­pli­ca­zio­ni cloud native possono essere eseguite su qualsiasi piat­ta­for­ma, quindi le aziende possono scegliere il fornitore che offre il giusto rapporto qualità-prezzo e soddisfa le loro esigenze.

Ag­gior­na­men­to e au­to­ma­zio­ne

Il fatto che con l’ar­chi­tet­tu­ra cloud native gli ag­gior­na­men­ti e le modifiche siano di­spo­ni­bi­li im­me­dia­ta­men­te consente alle aziende di reagire il più ve­lo­ce­men­te possibile alle diverse esigenze dei clienti e del mercato. L’elevato grado di au­to­ma­zio­ne raggiunto dalle soluzioni di or­che­stra­zio­ne come, ad esempio, Ku­ber­ne­tes, ha l’ulteriore vantaggio di ridurre al minimo gli errori umani in fase di con­fi­gu­ra­zio­ne o di fun­zio­na­men­to.

Con­clu­sio­ne

Con­si­de­ran­do i numerosi vantaggi che l’approccio cloud native offre ai team DevOps, è solo una questione di tempo prima che questa strategia di sviluppo software si affermi come l’approccio di pro­get­ta­zio­ne prin­ci­pa­le. È so­prat­tut­to la sua capacità di adattarsi ra­pi­da­men­te alle mutevoli esigenze del mercato e alle in­no­va­zio­ni tec­no­lo­gi­che a rendere l’approccio cloud native la strategia di sviluppo di domani.

Managed Ku­ber­ne­tes
Or­che­stra­zio­ne sicura dei carichi di lavoro dei container
  • Con­fi­gu­ra­zio­ne au­to­ma­ti­ca dei cluster Ku­ber­ne­tes
  • Ar­chi­via­zio­ne per­si­sten­te com­ple­ta­men­te integrata
  • As­si­sten­za clienti 24/7
Vai al menu prin­ci­pa­le