Lori MacVittie, Principal Technical Evangelist, F5 Networks, spiega il significato del termine velocità per l’economia delle applicazioni nell’era della trasformazione digitale.
Uno delle più evidenti conseguenze della trasformazione digitale e della pressione ad essa associata per avere successo nell’economia delle applicazioni è il desiderio di essere più veloci.
In base a quanto rilevato dalla nostra ricerca “State of Application Services 2019”, quasi la metà delle organizzazioni (48%) è stata spronata dalla trasformazione digitale proprio verso l’obiettivo di ottenere deployment più rapidi.
Non si tratta però solo della messa in produzione dell’applicazione: aumentare la velocità significa ripensare i tempi di sviluppo e quelli di risposta alle minacce e ai cambiamenti nella domanda.
È ormai evidente come le organizzazioni desiderino sviluppare e distribuire le app più velocemente, adattarsi più rapidamente a cambiamenti imprevedibili nelle condizioni del business ed essere più rapide nel rispondere agli attacchi. Quali sono però i fattori oggi imprescindibili per ottenere tutto questo? Ne ho identificati 10:
Sviluppo rapido
Deployment più frequenti possono avvenire solo se si è capaci di sviluppare più velocemente. Questo avviene spesso grazie all’adozione di metodologie Agile orientate alla velocità. La ricerca 2019 Global Developer Report: DevSecOps di GitLab 2019 ha riscontrato che, per fare questo, la maggior parte degli sviluppatori (54%) oggi sceglie Scrum, mentre il 37% preferisce Kanban.
Componenti
Le metodologie non sono sufficienti se le architetture applicative non si adattano a stili di sviluppo diversi. Team ridotti e focalizzati su singoli scopi, che si affrettano a portare a termine rilasci frequenti, non rappresentano quindi la scelta migliore se l’obiettivo è sviluppare nuove funzionalità o apportare correzioni ad applicazioni tradizionali e monolitiche.
Da questo punto di vista, la componentizzazione, attraverso l’adozione dei microservizi e forme di architettura maggiormente distribuite si adatta in modo più naturale ai moderni principi delle architetture e delle operation. Non ci deve quindi sorprendere se oggi, in media, oltre l’80% di un’applicazione moderna è costituito da componenti di terze parti.
API
L’adozione delle API è fondamentale per chi cerca uno sviluppo più rapido attraverso architetture applicative componentizzate. Le API disaccoppiano l’implementazione dall’interfaccia e consentono ai team di apportare modifiche all’elaborazione senza influire sull’uso delle API stesse da parte di altri componenti o applicazioni. Il modello è ormai comunemente assodato, per questo oggi il 64% delle organizzazioni crea delle API per utilizzarle sia internamente che all’esterno. Secondo lo State of API Integration 2018 di Jitterbit, quasi il 50% di queste organizzazioni si affida alle API per fare arrivare le App sul mercato più rapidamente.
Automazione (CI/CD)
Per raggiungere gli obiettivi in termini di deployment rapido, anche la pipeline di build deve tenere il passo, con l’adozione di strumenti di CI/CD che devono poter spostare il codice senza soluzione di continuità dal commit al test fino alla release. Come evidenziato dalla ricerca di GitLab, gli strumenti più popolari per la creazione e la continuous integration sono GitLab (61%) Jenkins (36%) e Travis CI (12%). In particolare, la nostra ricerca ha scoperto che, nel 16% dei casi, Jenkins viene utilizzato anche per l’automazione di rete, un risultato promettente che dimostra l’interesse delle organizzazioni a estendere i DevOps oltre la delivery e il deployment.
Deployment rapido e continuativo
Lo sviluppo più veloce non porta immediatamente le nuove idee sul mercato ma è necessario che anche il deployment sia rapido. Le aziende tecnologiche nate nel cloud hanno colmato facilmente il divario tra delivery e deployment, ma molte realtà più tradizionali trovano questa transizione faticosa. Le strutture organizzative esistenti e la necessità di supportare in modo continuo applicazioni tradizionali e monolitiche introduce conflitti difficili da integrare con le moderne esigenze operative, ma non c’è dubbio che le organizzazioni dovranno superare questi limiti proprio in nome di quelle applicazioni che richiedono deployment più rapidi e frequenti.
Dal punto di vista del deployment continuo, le organizzazioni consolidate stanno già adottando l’automazione applicandola alla pipeline. Il problema è ancora vivo nelle strutture tradizionali, con un’impostazione a silos e a team fortemente strutturati, che influiscono ancora pesantemente sugli sforzi di automazione di tutta l’area IT. La struttura dei team è molto importante e le organizzazioni che puntano alle pipeline automatizzate dovranno affrontare gli aspetti culturali del continuous deployment se vogliono che questo avvenga in modo sempre più rapido.
Cloud pubblico
È stata l’incapacità di ottenere una distribuzione continuativa a spingere in passato gli sviluppatori e i proprietari delle app verso il cloud pubblico, che elimina gli ostacoli del lento percorso del deployment aziendale. Uno dei problemi ancora aperti è la differente percezione di quella che dovrebbe essere la frequenza ideale dei deployment. In un sondaggio dedicato ai NetOps/DevOps abbiamo mostrato come il 55% dei DevOps e il 52% degli architetti Cloud ritengano che la propria organizzazione effettui i deployment con la frequenza necessaria, mentre solo il 30% di NetOps e dei responsabili delle Operation è della stessa opinione.
Container
Nel cloud, ma anche on-premise, il deployment continuativo spesso richiede la capacità di adottare pipeline per-app e servizi applicativi in grado di supportare il modello. Sempre più spesso le organizzazioni si rivolgono ai container perché capaci di supportare aggiornamenti rapidi e operare senza problemi in ambienti fluidi.
Riteniamo che i container siano richiesti non solo per supportare le architetture applicative moderne, come quelle cloud-native (che rappresentano il principale caso d’uso per il 33% degli intervistati nel Diamanti’s 2019 Container Adoption Benchmark), ma anche per l’infrastruttura stessa. La domanda di servizi applicativi erogati su container o- premise è cresciuta costantemente di anno in anno, passando da solo il 4% nel 2017 al 15% nel 2019.
Risposte più rapide e analisi delle minacce in tempo reale
La velocità non ha a che fare solo con la delivery e il deployment, ma anche con la sicurezza e le operation. Oggi oltre la metà di tutte le richieste alle App sono originate da robot e uno dei modi in cui le organizzazioni accelerano la propria capacità di rispondere agli attacchi è l’adozione dell’analisi delle minacce in tempo reale, indicata tra le cinque principali tendenze e tecnologie strategiche del 2019 dal 41% degli intervistati nel nostro State of Apps.
In futuro la disponibilità di servizi per la sicurezza delle applicazioni “intelligenti” aumenterà man mano che l’apprendimento automatico e l’automazione applicheranno in maniera sempre maggiore le loro enormi capacità al problema dell’identificazione più rapida del traffico maligno.
Oggi le organizzazioni devono cercare di contrastare il più possibile i bot per motivi sia aziendali che di sicurezza. Le organizzazioni hanno bisogno di fermare lo scraping – una minaccia sempre più diffusa per le aziende – e impedire ai bot di sondare le vulnerabilità. È fondamentale identificare il prima possibile gli attori che si nascondono dietro ai bot, affidandosi a servizi di difesa bot in grado di applicare tecniche più moderne e di successo per identificarli e bloccarli rapidamente. Abbiamo visto come, in risposta a questa esigenza, l’adozione di servizi di bot defence sia cresciuta fortemente di trimestre in trimestre e prevediamo che questa tendenza continui.
Orchestrazione
L’infrastruttura e i servizi applicativi stanno diventando più intelligenti non solo grazie al machine learning: man mano che cresce la necessità di risposte più rapide in termini di capacità di elaborazione, le infrastrutture e i servizi applicativi si evolvono per includere l’orchestrazione come funzionalità principale, anziché come componente aggiuntivo.
Le piattaforme di servizi applicativi con livelli di orchestrazione integrati comportano la capacità di scalare i servizi in base alle esigenze. Oggi tali capacità sono parte integrante del cloud e dei container ma l’abilità di scalare automaticamente in entrambe le direzioni in base ai requisiti dell’applicazione e a quelli definiti dall’utente non sono native per la maggior parte dei sistemi disponibili, ma credo che lo saranno presto.
Il segreto è nei processi
L’ultimo punto, e sintesi dei precedenti, è che quando si tratta di velocità non possiamo trascurare che abbiamo a che fare con i processi. I processi di sviluppo sono automatizzati per aumentare la velocità con CI/CD. I processi di deployment sono automatizzati per essere più veloci con l’implementazione continua e il cloud. I processi legati alla scalabilità e alla sicurezza vengono automatizzati dai sistemi e con l’introduzione dell’orchestrazione come piattaforma nativa per le applicazioni.
E così, alla fine, scopriamo che la velocità nell’era del capitale applicativo è definita dalla capacità di automatizzare i processi di sviluppo, deployment e sicurezza.