Le Cloud-native application sono quei software sviluppati come software-as-a-service (Saas) ovvero quel modello di distribuzione delle applicazioni dove un produttore software sviluppa e rende disponibile, dunque gestendo anche il servizio, una Web App che può essere concessa gratuitamente o tramite un servizio di abbonamento. Negli anni si è passati da un approccio classico che si focalizzava sullo sviluppo delle feature, della stabilità e del vertical scale per le applicazioni native ad uno più incentrato sull'adattabilità dell'applicazione alle varie piattaforme e alla fruizione costante e uniforme del servizio online.

Quindi in pratica le Cloud-native application rientrano in quella tipologia di software che utilizzano nativamente i servizi e le infrastrutture di Cloud computing offerte dai vari provider. Queste App combinano e sfruttano tre tecnologie fondamentali ovvero:

  • Computational grid.
  • Data grids.
  • Auto-scaling su tutte le infrastrutture gestite.

Inoltre le Cloud-native application vengono spesso implementate assieme ad API-drive-service, chiamate anche microservice. Si tratta di una tecnica di sviluppo software, derivata direttamente dal SOA (Service-Oriented Architecture) che struttura un'applicazione come una raccolta di servizi liberamente accoppiati.

Il vantaggio di scomporre un'applicazione in diversi microservizi migliora il grado di modularità rendendo il software più facile da comprendere, sviluppare e testare. Senza contare che si possono applicare anche dei metodi di sviluppo parallelo, destinando l'implementazione dei vari microservizi a più team di sviluppo autonomi, che possono focalizzarsi su aspetti specifici in modo migliore rispetto a team più strutturati. Tale divisione dei compiti consente quindi un refactoring continuo dell'applicazione e dei singoli microservizi.

La sicurezza e la stabilità di tali applicazioni è assicurata dai sistemi di container. Le Cloud-native application possono essere implementate infatti anche su piattaforme Cloud molte diverse tra di loro proprio grazie ai container, questo ha permesso un enorme diffusione di tale tipologia di applicazioni, visto che è possibile effettuarne il deploy praticamente ovunque.

Lo stesso sviluppo di tali applicazioni può essere realizzato tramite Cloud computing services con l'approccio Function as a service (FaaS), ovvero quella categoria di servizi che offrono una piattaforma con i vari strumenti necessari per lo sviluppo, la gestione e ovviamente l'esecuzione delle funzionalità necessarie alle applicazioni Cloud, eliminando dunque la necessità di costruire una complessa infrastruttura hardware o software dedicata allo sviluppo.

In buona sostanza tutto il lavoro di creazione e gestione di un'infrastruttura e di un ambiente di sviluppo viene delegato ad un provider che si occupa di fornire strumenti e funzionalità ai developer.

Via Gordon Haff (Red Hat)

CommentaDi' la tua

Il tuo indirizzo email non sarà mostrato pubblicamente. I campi obbligatori sono contrassegnati da *