Autore: Redazione ImpresaCity
Nello sviluppo delle app, il modello cloud è sempre più vincente, ma quali tecniche, tecnologie e strumenti di sviluppo innovativi si vanno affermando?
I linguaggi di programmazione e le metodologie di sviluppo delle app si sono evoluti nel tempo, passando a modalità più “agili” con l’obiettivo di focalizzare lo sviluppo software sempre più verso le necessità e la velocità del business aziendale. Lo sviluppo software sempre più veloce richiede, oltre a una diversa organizzazione dei processi, anche una architettura del software diversa (architettura a microservizi) che presenta il vantaggio di offrire queste componenti anche a entità esterne attraverso API standard.
L’evoluzione dei modelli e delle applicazioni si appoggia su una evoluzione sia tecnologica sia architetturale delle infrastrutture. La prima evoluzione di rilievo è il cloud, che ha consentito di avere cicli di provisioning molto più brevi con una flessibilità in termini di scalabilità dei sistemi proprio negli ambienti di test e sviluppo. Oggi si possono aprire molte più iniziative in parallelo affidandosi a caratteristiche intrinseche degli ambienti cloud.
Per i server - che fino a ieri ospitavano le applicazioni - l’evoluzione passa a un modello definito a “container” dove un sistema ridotto e efficace ospita un solo micro-servizio. In questo caso la scalabilità di un servizio avviene semplicemente duplicando il container già sviluppato, anche la portabilità si semplifica perché si va solo a eliminare il vecchio container e se ne crea uno nuovo nell’ambiente target. Inoltre, questo modello facilita l’aggiornamento delle componenti software. Dell, in qualità di provider tecnologico, ha da tempo fatto evolvere gran parte delle proprie soluzioni in ambito storage in architetture container abilitando il software dello storage (a blocco o file) in ambienti cloud, on prem o edge.
Quali le sfide principali che le aziende clienti si trovano ad affrontare nell’ambito dello sviluppo delle applicazioni e come vengono soddisfatte?
La prima sfida è la coesistenza, anche di lungo periodo, di applicazioni legacy con quelle native cloud, il cui sviluppo richiede una stretta collaborazione tra business e IT e una notevole velocità del ciclo di analisi, sviluppo, test e produzione. Il modello vincente in questo ambito richiede un modello CI/CD (Continuous Integration/Continuous Delivery) basato su investimenti in ambito automazione di provisioning/decomissioning delle risorse e processi di test strutturati oltre a una forte integrazione con il layer tecnologico sottostante per garantire questa automazione.
Infine, mentre in passato le applicazioni legacy erano scritte solo per ambienti identici nel tempo, adesso con il cloud, considerando i diversi attori di mercato public cloud e quelli private cloud, le applicazioni devono essere costruite per un mondo multicloud. Le aziende devono poter spostare le applicazioni e i dati attraverso questo ecosistema per cogliere le opportunità di una nuova feature, per sfruttare il miglior prezzo di infrastruttura, per venire incontro alle esigenze di sicurezza delle applicazioni o anche per le complessità di gestione dei dati.