L’azienda Software Defined tra microservice, architetture e agilità di business

Chatbot intelligenti in Java, come liberare il pieno potenziale dell’AI generativa

Nelle aziende dinamiche, i requisiti di business e i risultati attesi si ampliano a un ritmo sempre più accelerato. L’agilità di business è più importante che mai, e pone nuove sfide alle strategie IT tradizionali

Le esperienze fin qui compiute con il cloud computing, in particolare nell’ambito Platform as a Service (PaaS), hanno mostrato il potenziale del software come strumento per generare entrate, oltre che per fornire infrastrutture di business on-demand e ridurre i costi. E più queste esperienze maturano, più le aziende riconoscono l’importanza e la flessibilità di un’ampia gamma di servizi piccoli e funzionalmente vincolati, che portano notevoli vantaggi e mostrano come operano o dovrebbero operare le imprese efficienti. Trasformare una grande azienda verso questo modello è una sfida per i team IT: come è consueto per l’IT aziendale, il cambiamento è più di una costante, in quanto è continuo e incessante. Nel corso degli ultimi anni, vi sono stati cambiamenti significativi nell’IT aziendale, con l’emergere di tecniche e strumenti molto potenti che affrontano il bisogno di flessibilità. Le aziende stanno evolvendo oltre il semplice cloud computing, che è essenzialmente un data center software-defined, andando verso architetture di servizi sofisticate, che stanno effettivamente trasformando tali aziende in imprese software-defined.

TI PIACE QUESTO ARTICOLO?

Iscriviti alla nostra newsletter per essere sempre aggiornato.

Nuovi strumenti tecnologici

In questo nuovo ambiente, le capacità tecniche e le risorse a disposizione del CIO e dei team IT sono progredite rapidamente. Consideriamo anche come il termine “High Performance Computing” (HPC) è cambiato nel corso degli ultimi 3-5 anni: HPC tradizionalmente evocava immagini di supercomputer mostruosi nelle dimensioni, con centinaia o migliaia di macchine che collaborano su reti estremamente veloci e a bassa latenza, sistemi di elaborazione parallela complessi, database estremamente grandi, analisi sofisticate e linguaggi di programmazione oscuri. In genere questi strumenti si sono visti solo nelle conferenze esclusive relative ai mercati dei capitali, nei laboratori di ricerca molecolare, nelle analisi crittografiche governative o in altri casi molto “esotici” di utilizzo. I costi esorbitanti di gestione di tali sistemi erano in genere accessibili solo dall’elite finanziaria o da istituzioni che godevano di robuste donazioni. Ma ora questi sistemi estremamente potenti sono definiti dal software, e possono essere realizzati e messi in opera in pochi minuti utilizzando cloud provider esterni. Si tratta di una nuova era nel settore IT, dettata da una generazione di strumenti potenti a elevate prestazioni e altamente scalabili che ora sono di rigore, e che, soprattutto, sono software-defined.

Leggi anche:  Breve storia dell’ingegneria dei dati. Linguaggi di programmazione e terreni minati

Architettura basata sui microservizi

Per adattarsi e reagire a questo ambiente, anche l’approccio IT alla services architecture si è evoluto. Le applicazioni sono ora composte da una raccolta crescente di servizi più piccoli, raggiungibile tramite un grande insieme di API e librerie. E per gestire queste applicazioni, nuovi modelli di progettazione del software, che utilizzano micro servizi utilizzabili in modo indipendente, si sono dimostrati di successo in molti casi d’uso. Un’architettura microservice è uno stile architetturale in cui si crea un’applicazione con una raccolta di piccoli servizi funzionalmente vincolati, che possono essere implementati separatamente e comunicano con altri servizi che utilizzano meccanismi leggeri e operano su diversi linguaggi. Potrebbero utilizzare REST/HTTP o procedure remote di collegamenti sincroni o di richiesta-risposta. Oppure, possono utilizzare AMQP o MQTT per la comunicazione di tipo messaggistica asincrona.

L’esecuzione di un gran numero di microservice sarebbe inefficiente e costoso se ciascuno fosse in esecuzione in una macchina virtuale (VM) completamente “provisioned”. Per risolvere questo problema, i microservice sono tipicamente distribuiti utilizzando i “container”, che rappresentano una modalità più efficiente di virtualizzazione fornita all’interno di un sistema operativo. La nozione di container non è nuova e ha le sue origini molti anni fa nel sistema operativo Unix; è stata poi perfezionata per soddisfare le esigenze di isolamento delle risorse di microservice. Un tipo molto popolare di container è Docker: per gestire un gran numero di container che possono implementare, scalare ed essere resilienti automaticamente in produzione, ci sono piattaforme container-centric, come Kubernetes e Apache Mesos che forniscono alle aziende un’infrastruttura basata su container.

L’agilità dei microservizi

Molte aziende si sono spostate o si stanno spostando verso architetture microservice e container per fornire l’agilità necessaria al business. Questo tipo di architetture comporta progettare i sistemi come collezioni di servizi, implementabili in modo indipendente per una migliore agilità e la reattività di business, con vantaggi sostanziali rispetto a un approccio tradizionale. Tuttavia, come è già successo per molti aspetti dell’IT, bisogna fare alcune considerazioni sul fatto che le aziende siano in grado di cambiare il loro approccio alla progettazione e alle loro implementazioni. Per esempio, come si fa a gestire decine, centinaia o persino migliaia di microservice? È il tipo di orchestrazione di Kubernetes o Mesos la soluzione per la gestione dei microservice? Come è possibile monitorare e gestire questo tipo di architettura soprattutto quando i microservice falliscono? E in cosa consiste esattamente il “fallimento”, visto che in genere i microservice hanno vita breve e forse non sono neppure in esecuzione tutto il tempo, ma vengono ancora considerati “sani”? Come si fa a progettare un grande archivio dati microservice con Spark o Apache Flint? E, con l’azienda che diventa Software Defined, quali tecniche e tecnologie possono aiutare a garantire l’affidabilità funzionale in tutta l’impresa?

Più utenti, più app, meno tempo

Questa fase evolutiva del software dei microservice nell’azienda di oggi coincide con un’altra tendenza chiara: la crescente domanda degli utenti per app affidabili e facili da installare, oltre che per funzionalità di rete intelligente. Gli utenti rappresentano sempre di più una sfida per i reparti IT nel fornire applicazioni altamente funzionali e immediatamente disponibili e, soprattutto, in tempi di tipo on-demand. Non solo: oggi, sono disponibili nuove tecniche lato client, come le Progressive Web Apps (PWA), per sfruttare moderni approcci web e fornire le prestazioni delle applicazioni native e facilità di implementazione. Molte grandi aziende innovative come AliExpress, Priceline, Flipkart, Konga e altre utilizzano le PWA per consentire ai dispositivi mobili di accedere in modo sicuro ai loro microservice interni. Si tratta di tecniche che permettono a queste applicazioni di evitare procedure di installazione complesse, di essere installate nella schermata home, di partire rapidamente e di adattarsi intelligentemente alle diverse condizioni della rete. Con questa nuova generazione di risorse di computing e di rete, oltre che di modelli di sviluppo e di implementazione di microservice potenti, on-demand e ad alte prestazioni, si è oggi in grado di raggiungere un elevato grado di agilità di business, che è l’obiettivo principale delle aziende.

Leggi anche:  Large Language Models - 3 strategie organizzative per utilizzarli in modo efficace

Un piano strategico

Il software è una strategia centrale di business per le aziende. Le lezioni apprese di recente utilizzando un data center Software Defined con microservice e container, vengono ora applicate a livello di intera azienda. La business intelligence, la governance, la sicurezza adattiva, il mobile, la ridondanza, la scalabilità e anche il coinvolgimento dei clienti, sono tutti aspetti software-driven, cioè guidati dal software, che aumentano notevolmente la capacità e la rapidità delle aziende di adattarsi alle mutevoli condizioni di mercato. Questo ambiente imprevedibile richiede un rapido adattamento al cambiamento e una reazione immediata agli eventi di business. Un’agilità di business efficace è diventata un elemento di differenziazione fondamentale. La Software Defined Enterprise costituisce quindi un approccio importante per l’agilità che interessa tutti gli aspetti di ogni organizzazione.


Frank Greco

CEO di Crossroads Technologies, con oltre 15 anni di esperienza in progetti IT, ha lavorato in ambito Global Service Architecture, nel nuovo stack IT, nel cloud, nel mobile e nelle interfacce utente innovative. Frank Greco è stato nominato “Java Champion” da Oracle per numerosi anni, e presiede il NYJavaSIG, il maggiore Java User Group nell’emisfero settentrionale con più di ottomila membri, e gli User Group NYHTML5.

Frank Greco sarà il chairman della Conferenza di Technology Transfer “The Software-Defined Enterprise Conference: Microservices, Docker e Containers, Large Scale Data Processing, Cloud e Modern Architecture” che si terrà a Roma il 15-16 maggio 2017.