Platform Engineering vs DevOps: cosa devi sapere

0
28
Shutterstock.com/Roman Samborskyi

L'ingegneria della piattaforma è il processo di progettazione e implementazione di toolchain che migliorano l'esperienza di distribuzione del software. I tecnici della piattaforma hanno creato un'infrastruttura automatizzata e controlli self-service che consentono agli sviluppatori di lavorare in modo più efficiente.

L'ingegneria della piattaforma è un'evoluzione di DevOps. DevOps definisce i principi per semplificare lo sviluppo utilizzando l'automazione, l'autonomia e la collaborazione. Queste qualità sono anche parte integrante dell'ingegneria della piattaforma, quindi la tecnica ti aiuta a ottenere buone prestazioni DevOps.

Comprendere DevOps

DevOps avvicina i team di sviluppo e operativi. Si concentra sull'utilizzo di strumenti, sistemi e processi iterativi per abbreviare i cicli di feedback. Le strategie DevOps di successo accelerano il throughput del tuo team senza compromettere la qualità.

DevOps è un concetto aperto. Diverse organizzazioni combineranno set unici di strumenti e metodologie per creare la propria implementazione. Tuttavia, l'enfasi su throughput, qualità e unificazione di sviluppo e operazioni è una caratteristica costante in tutte le organizzazioni.

Dev e ops erano tradizionalmente gestiti da team separati senza un canale di comunicazione diretto. Gli sviluppatori hanno scritto il codice mentre gli operatori effettuavano il provisioning dell'infrastruttura, avviavano le distribuzioni e monitoravano i problemi. Questo modello non può adattarsi alla scala delle applicazioni moderne, che potrebbero comprendere centinaia di microservizi indipendenti. Gli sviluppatori hanno bisogno di un accesso self-service ad ambienti simili alla produzione in modo da poter testare nuovi componenti in un ambiente realistico. È qui che entra in gioco l'ingegneria della piattaforma.

Il ruolo dell'ingegneria della piattaforma

I team di ingegneria della piattaforma sono responsabili della definizione di strumenti e processi che aiutano gli sviluppatori a essere più produttivi. Progettano la “piattaforma” contro cui gli sviluppatori costruiscono. In pratica, gli ingegneri di piattaforma spesso svolgono le seguenti attività:

  • Provisioning dell'infrastruttura come ambienti di staging, pipeline CI e sistemi di test automatizzati che gli sviluppatori possono utilizzare.
  • Creazione di API interne e processi per tenere traccia dello stato delle modifiche e automatizzare le distribuzioni.
  • Collaborazione con il team operativo per garantire che l'infrastruttura di sviluppo corrisponda accuratamente alla produzione.
  • Implementazione di misure di sicurezza, affidabilità e conformità che identificano il codice problematico prima che venga unito.
  • Fornire controlli self-service su quanto sopra, in modo che gli sviluppatori possano creare ambienti di staging, eseguire test ed eseguire audit di sicurezza su richiesta , senza attendere altri team.

Questo lavoro produce una piattaforma che riduce il carico di lavoro per gli sviluppatori. Le noiose parti periferiche della consegna del software vengono spostate sulla piattaforma gestita, consentendo agli ingegneri di concentrarsi sulla creazione di nuove funzionalità. Il team può continuare ad andare avanti, inviando più codice ai clienti all'interno delle salvaguardie della piattaforma.

I ruoli di ingegneria della piattaforma dedicati si trovano solitamente solo nelle organizzazioni più grandi. È necessario disporre di un pool di ingegneri sufficientemente ampio prima di poterne dedicare alcuni alla creazione di piattaforme interne. Tuttavia, i team più piccoli possono comunque beneficiare del modello di ingegneria della piattaforma. Nella sua forma più pura, l'ingegneria della piattaforma è semplicemente l'ottimizzazione del tuo ambiente di sviluppo. Prova a dedicare qualche ora alla settimana alla creazione di strumenti e processi che risolvano i colli di bottiglia nel tuo flusso di lavoro.

Le migliori piattaforme interne si comportano un po' come una soluzione PaaS privata. Comprendono tutte le funzionalità richieste dagli sviluppatori in comode interfacce come CLI, UI Web e pipeline automatizzate. La piattaforma elimina i costi generali della creazione di software in modo che gli sviluppatori possano concentrarsi sul codice. Ciò riduce la distrazione, riduce il carico cognitivo e facilita abitudini lavorative più produttive.

Come è emersa l'ingegneria delle piattaforme?

L'ingegneria delle piattaforme è emersa come risultato della crescente complessità delle applicazioni moderne. Al giorno d'oggi le app sono comunemente formate da più componenti debolmente accoppiati che vengono eseguiti all'interno di ambienti distribuiti. Il provisioning e la manutenzione dell'architettura possono essere una procedura in più passaggi che richiede conoscenze specialistiche.

Gli sviluppatori si occupano principalmente di scrivere codice che abiliti nuove funzionalità aziendali. Il compito di gestire la piattaforma spetta alle operazioni. Mentre DevOps avvicina le due cose, può essere irrealistico aspettarsi che i singoli sviluppatori siano in grado di distribuire l'intero stack quando hanno bisogno di un nuovo ambiente di test. In alcuni settori regolamentati, ciò potrebbe persino essere vietato dai controlli di conformità.

L'ingegneria della piattaforma risolve il problema fornendo agli sviluppatori un accesso self-service agli ambienti gestiti da un team dedicato. Gli sviluppatori possono smettere di preoccuparsi dell'infrastruttura, delle pipeline e degli script di compilazione che non rientrano nelle loro descrizioni del lavoro. I leader aziendali e il personale addetto alla conformità possono rilassarsi, sapendo che tutti gli ambienti sono creati in modo standardizzato.

Platform Engineering vs DevOps

L'ingegneria della piattaforma è vista al meglio come una progressione logica di DevOps. È un approccio concreto che puoi utilizzare per massimizzare il successo di DevOps. Affrontare i punti deboli degli sviluppatori aumenterà il throughput e offrirà nuove opportunità per impostare protezioni attorno al tuo codice.

L'ingegneria della piattaforma garantisce agli sviluppatori l'autonomia in modo che possano accedere agli strumenti su richiesta, senza aspettare i colleghi o eseguire autonomamente attività noiose. Si basa fortemente sull'automazione e forma un ponte con le operazioni, soddisfacendo altri due principi DevOps. Aiutare il tuo team di prodotto principale a concentrarsi sulle nuove funzionalità aziendali è un modo garantito per ridurre i tempi di consegna e diventare più reattivo alle richieste dei clienti.

Tuttavia, DevOps è molto più di una semplice ingegneria della piattaforma. Avrai ancora bisogno di altri strumenti e processi per supportare i tuoi team, dall'idea alla produzione. L'ingegneria della piattaforma è un componente incentrato sullo sviluppatore nella strategia DevOps, ma altri come il lavoro snello, il consenso del team e l'osservabilità dettagliata non sono meno importanti.

Ingegneria della piattaforma e SRE

L'ingegneria dell'affidabilità del sito (SRE) viene spesso discussa nel contesto di DevOps e ingegneria della piattaforma. I team SRE hanno il compito di mantenere l'affidabilità dei tuoi servizi. Usano obiettivi a livello aziendale come SLO, SLA e budget di errore per identificare quando il servizio si discosta dalle aspettative degli utenti. Ciò dovrebbe indurre i team di ingegneri a interrompere il lavoro sulle nuove funzionalità e dare invece priorità ai miglioramenti della stabilità.

I team della piattaforma spesso si sovrappongono agli ingegneri SRE. Entrambi i ruoli forniscono e mantengono gli ambienti software utilizzando l'automazione. Tuttavia, c'è una differenza significativa nell'intenzione. Mentre SRE si concentra sul soddisfare costantemente i requisiti degli utenti, l'ingegneria della piattaforma si occupa di soddisfare le esigenze degli sviluppatori. Anche se dovresti prestare attenzione a entrambe le aree, l'ingegneria della piattaforma è solitamente una priorità inferiore rispetto a SRE.

Una pipeline malfunzionante in una piattaforma per sviluppatori sarà scomoda, causando ritardi nel processo DevOps, ma non dovrebbe influire sugli utenti finali. Questo è un problema per l'ingegneria della piattaforma. Tuttavia, SRE dovrà intervenire se un server di produzione va offline o rallenta, perché l'incidente avrà un impatto diretto sugli utenti.

Riepilogo

L'ingegneria della piattaforma accelera il software consegna offrendo agli sviluppatori strumenti self-service per l'interazione con l'infrastruttura. I team di ingegneri utilizzano la piattaforma fornita per testare rapidamente il nuovo codice e distribuirlo negli ambienti.

DevOps e ingegneria della piattaforma sono argomenti strettamente correlati. L'ingegneria della piattaforma viene solitamente implementata come parte di una strategia DevOps. Aumenta l'autonomia degli sviluppatori e automatizza le attività banali dell'infrastruttura, aderendo ai principi DevOps fondamentali.

È possibile eseguire DevOps senza l'ingegneria della piattaforma. Allo stesso modo potresti già utilizzare strumenti e processi che rientrano nel banner dell'ingegneria della piattaforma, senza riconoscere intenzionalmente la disciplina. La creazione di un team di ingegneri della piattaforma dedicato ti consente di fare il passo successivo e creare sistemi interni ad alte prestazioni che danno potere agli sviluppatori, il tutto riducendo il divario con le operazioni.

LEGGI SUCCESSIVO

  • › Come svuotare la cache su un telefono Samsung
  • › ASUS ora vende il laptop da 14 pollici più sottile al mondo
  • › New York reprime i combustibili fossili per il mining di criptovalute
  • › Le migliori offerte del Black Friday su SSD, tastiere e altro
  • › Victrola Re-Spin Review: un giradischi entry-level che puoi portare ovunque
  • › Come risolvere il problema “iPhone non disponibile” Schermo