Le aziende più innovative utilizzano vari tipi di software per differenziare le loro offerte di prodotti e servizi dalla concorrenza, e lo sviluppo di applicazioni si sta spostando nel cloud, come un nuovo ecosistema che genera innovazione. Questa modalità è, per definizione, distribuita, e quindi alcuni affrontano la questione con una soluzione open source, che apre la strada all’utilizzo di molteplici applicazioni, senza necessità di conoscere dozzine di strumenti.

Grazie a capacità, infrastruttura globale e flessibilità del cloud, le applicazioni di alta qualità vengono sviluppate più rapidamente. Ciò richiede microservizi e tecnologie container, DevOps, Agile e PaaS e nuove pratiche software moderne che includono test automatizzati, provisioning e implementazione.

Le applicazioni distribuite, intese come un’architettura che consente di crearle da servizi cloud e / o risorse locali, aggiungono un livello di complessità per affrontare le diverse risorse, i sistemi, le versioni e gli ambienti disponibili. E, per usarli come un’unica app, ci sono un paio di regole da ricordare:

  1. Sembra ovvio, ma l’app deve essere creata come un’unica entità, anche se è composta da varie tecnologie cloud. A questo punto però è consigliabile eseguire il provisioning delle applicazioni, in modo tale da non essere costretti a padroneggiare dozzine di strumenti e gestirne l’intero ciclo di vita (installazione, aggiornamento e rimozione).
  2. Devono essere in grado di essere distribuite semplicemente. Per raggiungere questo obiettivo, esiste già una specifica del formato del pacchetto open source (CNAB) che consente di gestire le applicazioni distribuite. Utilizzando un singolo file installabile, è possibile eseguire il provisioning delle risorse dell’applicazione, in diversi ambienti e gestirne facilmente il ciclo di vita, senza dover utilizzare migliaia di strumenti.

L’obiettivo finale è quello di raggiungere una singola unità logica e definire gli aspetti operativi della gestione del ciclo di vita delle applicazioni (installazione, aggiornamento, disinstallazione, firma e verifica digitale di un pacchetto, anche quando la tecnologia sottostante non lo supporta in alcun modo). Così facendo, è possibile attestare con una firma il ciclo di vita di quel pacchetto e verificare digitalmente che abbia raggiunto lo stato completo, in modo tale da poterlo esportare e riprodurre tutte le istanze in sicurezza in un altro ambiente, oppure archiviarle in repository per la loro installazione remota.

In effetti, gli specialisti in questo campo credono che verrà il giorno in cui sarà così facile installare un’applicazione distribuita completa che potrebbe anche essere eseguita da una chiavetta USB. Questo è un loro sogno, e chissà, forse un giorno potrebbe realizzarsi davvero.