TSM - Noua generație de inginerie a platformelor: Backstage.io

Florin Mănăilă - Chapter Lead @ ING Hubs Romania

În prezent, în piața dezvoltării software, optimizarea productivității este esențială pentru a avea succes. Backstage.io, o platformă creată de Spotify pentru construirea de portaluri interne pentru dezvoltatori, își propune să abordeze această provocare oferind o soluție extensibilă pentru gestionarea și vizualizarea software-ului, instrumentelor și proceselor. Acest articol explorează caracteristicile-cheie și comunitatea din jurul Backstage, evidențiind modul în care platforma poate revoluționa colaborarea dintre echipe, ajutându-le să își simplifice procesele de dezvoltare.

Adoptarea pe scară largă a arhitecturii cu microservicii a dus în mod inevitabil la explozia numărului de instrumente necesare pentru a gestiona amploarea și complexitatea în continuă creștere a sistemelor software. Pe de o parte, avem uneltele necesare pentru a asigura ciclul de viață și funcționarea serviciilor, iar pe de altă parte, avem serviciile în sine și funcționalitățile pe care le implementează. Portalurile interne pentru dezvoltatori le oferă inginerilor acces rapid la toate instrumentele și serviciile din ecosistemul lor. Datorită modului intuitiv de a cataloga componentele software, a sistemului de plugin excelent și a comunității active, Backstage a cunoscut recent o creștere a popularității.

Backstage constă în principal în câteva funcționalități de bază și un sistem de pluginuri care le permit dezvoltatorilor să construiască extensii adaptate nevoilor și ecosistemului lor.

O fundație solidă

Cele patru funcționalități principale care compun Backstage sunt catalogul de software, șabloanele de software, TechDocs și o modalitate de a căuta prin ele.

Catalogul de software oferă un model universal pentru înțelegerea și ilustrarea diferitelor componente software, precum și legăturile dintre acestea. Acest lucru crește vizibilitatea lor în întreaga organizație și le permite echipelor să obțină o vedere de ansamblu asupra software-ului și a resurselor utilizate. TechDocs servește ca un însoțitor valoros pentru catalogul de software, păstrând documentația aproape de prezentarea generală a unei componente software.

Figura 1 - "Modelul sistemelor"

Catalogul de software are o funcționalitate care iese în evidență: capacitatea de a stoca metadate lângă cod, chiar în repository-ul git. Legând Backstage de acel repository, acesta va importa și va păstra metadatele la zi în catalogul de software.

Așadar, Backstage nu este un instrument de tip "system-of-record", ci oferă o modalitate de a vedea sistemele și instrumentele existente și de a înțelege ecosistemul. Poți continua să folosești instrumentele actuale, iar Backstage va aduce toate informațiile într-un singur loc.

Acum că avem o vedere de ansamblu asupra sistemelor noastre, mai avem nevoie de o modalitate de a interacționa cu ele. Aici intervin șabloanele de software, care oferă un mecanism pentru a defini interacțiunile comune cu unul sau mai multe sisteme și ascund complexitatea acelei interacțiuni în spatele unei interfețe simple, asemănătoare unui wizard. De exemplu, o interacțiune comună ar putea fi crearea unui nou serviciu. De obicei, acest lucru ar necesita un repository git pentru a stoca codul, un pipeline pentru a-l construi și asambla, infrastructură pentru a-l rula, monitoriza și a trimite alerte și multe altele. Toate acestea pot fi automatizate și grupate ca un șablon de software.

Prin gruparea mai multor interacțiuni cu diferite instrumente într-una singură care este mai relevantă pentru dezvoltatorul de software, Șabloanele de software contribuie la reducerea efortului mental și a întreruperilor, permițându-le dezvoltatorilor să își concentreze atenția pe activitățile productive.

Flexibil ca un acrobat

Funcționalitățile de bază ale Backstage sunt doar începutul. Pentru că a fost construită în jurul unui sistem de pluginuri, platforma este, de asemenea, flexibilă, propunându-și să "îți permită să expui aproape orice fel de infrastructură sau instrument de dezvoltare software ca plugin în Backstage", conform documentației.

Marketplace-ul de pluginuri integrează multe aplicații cunoscute. Unele au fost construite de Spotify, compania care a creat Backstage, în timp ce altele au fost dezvoltate de terți. Acestea sunt companii care folosesc, susțin sau vând Backstage, dar și persoane fizice.

Dacă totuși nu poți găsi ceea ce cauți pe marketplace, este timpul să treci la treabă și să îți construiești propriul plugin. Interfața de utilizare Backstage este construită cu React, în timp ce backendul folosește node.js. Alegerea acestor tehnologii foarte cunoscute ar trebui să asigure că există suficienți potențiali dezvoltatori de pluginuri pe piață.

Este important de știut că pluginurile vin în trei variante:

Figura 2 - Tipuri de pluginuri

Comunitate și perspective

Backstage este open-source și este unul dintre cele 36 de proiecte aflate în stadiul de "incubare" din lista Cloud Native Compute Foundation (CNCF). Abordarea open-source le permite utilizatorilor să valorifice expertiza altor organizații și să beneficieze de contribuțiile acestora.

Numeroase organizații au adoptat Backstage pentru a-și îmbunătăți procedurile de lucru și de dezvoltare. Spre exemplu, Zalando, una dintre cele mai mari platforme de cumpărături online din Europa, a folosit Backstage pentru a-și consolida instrumentele și serviciile interne într-un singur portal pentru dezvoltatori, încă de la prima versiune lansată public a Backstage. Acest lucru a ajutat la eficientizarea proceselor lor, la reducerea timpului de integrare și la îmbunătățirea productivității dezvoltatorilor. Lista celor care au adoptat Backstage include și alte companii precum American Airlines, Netflix, IKEA și multe altele.

În prezent, Backstage depune eforturi pentru îmbunătățirea calității serviciilor de backend, a securității și adopția unui nou sistem front-end. Acest lucru ar trebui să asigure că viitoarele îmbunătățiri au o bază solidă și că platforma are acreditări de încredere, care o pot ajuta să își crească cota de piață.