Quando le aziende parlano di distribuzione più rapida del software, spesso si sentono le parole DevOps e platform engineering. Anche se alcuni potrebbero pensare che si tratti di idee in competizione, in realtà funzionano in tandem.
Pensa in questo modo: DevOps è l'obiettivo generale, la cultura e la mentalità del lavoro di squadra. Il platform engineering può essere il modo per raggiungere effettivamente questo obiettivo su larga scala, creando gli strumenti che possono rendere il DevOps un'attività semplice.
Per comprendere come questi concetti si completano a vicenda, è importante stabilire innanzitutto definizioni chiare. La distinzione sta nel separare l'obiettivo culturale di DevOps dalla disciplina specializzata, la platform engineering, e dagli strumenti concreti che crea, la piattaforma interna per sviluppatori (IDP).
DevOps è un insieme di pratiche che avvicina le persone che scrivono il codice (sviluppo o "Dev") e le persone che eseguono il codice (operazioni o "Ops").
Si tratta principalmente di un cambiamento culturale che si concentra sul miglioramento della comunicazione tra i team, sulla condivisione delle responsabilità e sull'automazione di tutto. L'obiettivo è trasformare rapidamente un'idea di software in qualcosa che i clienti possano utilizzare, unendo persone, processi e strumenti per accelerare il valore aziendale.
Il platform engineering (progettazione delle piattaforme) è la pratica di progettare, creare e mantenere una piattaforma interna per sviluppatori (IDP) per fornire ai team di ingegneria del software percorsi consigliati.
I team di platform engineering trattano gli strumenti per sviluppatori e l'infrastruttura cloud come un prodotto. Il loro compito principale è quello di rimuovere le attività difficili e ripetitive dai team di sviluppo. Aiutano a creare un livello self-service semplice e affidabile in modo che gli sviluppatori non debbano essere esperti in servizi cloud complessi come la rete, la sicurezza o l'orchestrazione dei container.
Una piattaforma interna per sviluppatori (IDP) è l'insieme effettivo di strumenti e servizi che il team di platform engineering crea. È un unico luogo in cui gli sviluppatori possono trovare tutto ciò di cui hanno bisogno per svolgere il proprio lavoro, incluse risorse come l'orchestrazione dei container, gli strumenti Infrastructure as Code (IaC) e le pipeline CI/CD.
Ad esempio, un IDP basato su Google Cloud potrebbe utilizzare Google Kubernetes Engine (GKE) per l'esecuzione di container. Incorporando i principi di Site Reliability Engineering (SRE) e DevOps nei Golden Path della piattaforma, il team di platform engineering può ridurre il potenziale di errore umano e minimizzare i tempi di inattività. L'IDP astrae gli aspetti più difficili e fornisce agli sviluppatori automazioni e tutorial da seguire, assicurandosi che il loro lavoro sia sicuro e corretto fin dall'inizio.
DevOps è il "perché" dobbiamo lavorare insieme e automatizzare. Il platform engineering è il "come" rendiamo l'automazione semplice per tutti.
Sebbene le piccole aziende o i piccoli team possano certamente gestire i propri processi attraverso una comunicazione stretta, ogni organizzazione può trarre vantaggio dall'adozione precoce dei principi e delle best practice DevOps.
Ma quando un'azienda cresce fino a contare centinaia di sviluppatori:
La complessità aumenta: ogni team di sviluppo deve imparare a utilizzare e gestire decine di strumenti, come Cloud Logging, Cloud Monitoring e il codice dell'infrastruttura. Questo peso, chiamato carico cognitivo, li rallenta. |
La complessità aumenta: ogni team di sviluppo deve imparare a utilizzare e gestire decine di strumenti, come Cloud Logging, Cloud Monitoring e il codice dell'infrastruttura. Questo peso, chiamato carico cognitivo, li rallenta.
Incoerenza: team diversi potrebbero configurare i propri ambienti in modo diverso, utilizzando pratiche di sicurezza, standard di codice o configurazioni di deployment diversi. Questo rende difficile per il team operativo supportare tutti. |
Incoerenza: team diversi potrebbero configurare i propri ambienti in modo diverso, utilizzando pratiche di sicurezza, standard di codice o configurazioni di deployment diversi. Questo rende difficile per il team operativo supportare tutti.
Il platform engineering aiuta a risolvere questo problema creando un IDP standardizzato utilizzando la suite completa di servizi gestiti di Google Cloud. Inoltre, i golden path semplificano la creazione, la gestione e la scalabilità degli IDP. In questo modo, l'obiettivo DevOps di velocità e qualità rimane vivo man mano che l'azienda cresce.
Sebbene DevOps e platform engineering siano complementari, i loro obiettivi principali sono distinti.
DevOps è incentrato sul cambiamento culturale, che enfatizza il lavoro di squadra, la responsabilità condivisa e l'automazione dell'intera pipeline di distribuzione. Il suo obiettivo è allineare persone e processi per spostare rapidamente il valore dall'idea alla produzione.
Al contrario, il platform engineering si concentra principalmente sull'esperienza degli sviluppatori. Ciò si ottiene astraendo la complessità dell'infrastruttura e creando funzionalità self-service. Fornendo un percorso semplice e affidabile per gli sviluppatori, la platform engineering funge da disciplina specializzata che accelera gli obiettivi culturali di DevOps su larga scala.
Per i migliori leader tecnici, la piattaforma di engineering può offrire vantaggi finanziari e di gestione.
Rischi e conformità
Il Platform engineering aiuta a mitigare i rischi integrando direttamente nella piattaforma criteri di sicurezza e conformità, applicando automaticamente gli standard in tutti gli ambienti, come i cluster GKE, per evitare incoerenze.
Produttività degli sviluppatori
Il Platform engineering migliora i risultati finanziari fornendo API e portali semplici e self-service che riducono significativamente il tempo che gli sviluppatori dedicano alle attività di infrastruttura.
Lancio sul mercato più rapido
Fornendo ai team workflow efficienti, il platform engineering su Google Cloud può consentire alle organizzazioni di lanciare rapidamente nuovi servizi con velocità e facilità. L'infrastruttura di Google Cloud consente deployment efficienti e molto altro.
La decisione di creare un team di platform engineering dedicato e di creare un IDP non si basa su una dimensione arbitraria del team, ma è guidata dalle esigenze organizzative e dal costo dell'attrito. Una piattaforma diventa appropriata quando il tempo e lo sforzo spesi dagli sviluppatori di applicazioni per le attività dell'infrastruttura superano l'investimento necessario per creare e mantenere la piattaforma stessa. Scopri di più in questa guida al platform engineering.
Strumenti CI/CD semplici come Cloud Build possono essere sufficienti se le tue applicazioni sono semplici e i tuoi team di sviluppo possono gestire facilmente le proprie esigenze infrastrutturali. In questo caso, concentrarsi sull'aspetto culturale del DevOps (migliore comunicazione, obiettivi condivisi e automazione semplice) è l'approccio più efficace.
Un team per la piattaforma è generalmente necessario quando la complessità inizia a rallentare l'intera organizzazione. Di solito, questo si verifica se la tua azienda sta riscontrando uno dei seguenti problemi:
Elevato carico cognitivo: gli sviluppatori dedicano troppo tempo alla configurazione, alla manutenzione e alla gestione dell'infrastruttura sottostante, invece di concentrarsi sullo sviluppo delle funzionalità. |
Elevato carico cognitivo: gli sviluppatori dedicano troppo tempo alla configurazione, alla manutenzione e alla gestione dell'infrastruttura sottostante, invece di concentrarsi sullo sviluppo delle funzionalità.
Pratiche incoerenti: i vari prodotti presentano modelli di sicurezza, operativi e di distribuzione diversi, il che rende difficile l'assistenza e la revisione. |
Pratiche incoerenti: i vari prodotti presentano modelli di sicurezza, operativi e di distribuzione diversi, il che rende difficile l'assistenza e la revisione.
Provisioning lento: gli sviluppatori impiegano giorni per avviare nuovi ambienti di test o di produzione, creando colli di bottiglia nel ciclo di vita dello sviluppo. |
Provisioning lento: gli sviluppatori impiegano giorni per avviare nuovi ambienti di test o di produzione, creando colli di bottiglia nel ciclo di vita dello sviluppo.
È in questo momento che la creazione di un team di piattaforma per costruire un IDP coerente e standardizzato può fornire il massimo ritorno sull'investimento e mantenere la velocità e la qualità promesse dal DevOps.
Inizia a creare su Google Cloud con 300 $ di crediti gratuiti e oltre 20 prodotti Always Free.