Strumenti DevOps che tutti dovrebbero imparare nel 2020

Inizia oggi stesso a utilizzare i migliori strumenti DevOps!

Strumenti DevOps che tutti dovrebbero imparare nel 2020
La rivoluzione DevOps ha finalmente conquistato il mondo e gli strumenti DevOps sono diventati incredibilmente popolari. Secondo il servizio Google Trends, il numero di richieste di “strumenti DevOps” è in costante crescita e questa tendenza continua.

La metodologia DevOps copre l'intero ciclo di vita dello sviluppo del software, quindi i professionisti possono scegliere tra una varietà di strumenti. Ma, come sai, nessuno strumento può diventare uno strumento universale per tutti. Tuttavia, alcune soluzioni offrono una gamma di funzioni così ampia da poter gestire quasi tutte le attività.

Dividiamo gli strumenti DevOps in categorie e confrontiamoli con gli analoghi:

  • strumenti di sviluppo e creazione
  • strumenti di automazione dei test
  • strumenti per organizzare la distribuzione
  • Strumenti di esecuzione
  • strumenti di collaborazione.

Implementazione riuscita e ponderata Professionista DevOps include strumenti di tutti e cinque i gruppi sopra elencati. Analizza l'attuale set di strumenti nel tuo progetto per non perdere un elemento importante della pipeline CI/CD.

Strumenti di sviluppo e creazione

Strumenti DevOps che tutti dovrebbero imparare nel 2020
Questa è la base dello stack della pipeline CI/CD. Tutto inizia proprio qui! I migliori strumenti di questa categoria possono gestire più flussi di eventi e integrarsi facilmente con altri prodotti.

In questa fase del ciclo di vita dello sviluppo, esistono tre gruppi di strumenti:

  • sistema di controllo della versione (SCM)
  • integrazione continua (CI)
  • Gestione dati

GIT ha avuto un track record positivo nel 2020, quindi il tuo strumento SCM dovrebbe avere un supporto continuo per GIT. Per CI, un prerequisito è la capacità di eseguire ed eseguire build in un ambiente contenitore isolato. Quando si tratta di gestione dei dati, è necessaria la capacità di apportare modifiche allo schema del database e di mantenere il database in base alla versione dell'applicazione.

Strumento SCM + CI n. 1

Vincitore: GitLab e GitLab-CI

Strumenti DevOps che tutti dovrebbero imparare nel 2020
Lo strumento migliore del ciclo DevOps 2020 è senza dubbio GitLab e continuerà sicuramente a guidare l’innovazione nel prossimo futuro.

La funzione principale di GitLab è fornire una comoda gestione di un repository Git. L'interfaccia web è intuitiva e facile da usare. GitLab fornisce tutto ciò di cui hai bisogno in una versione gratuita ed è disponibile come SaaS e on-premise (utilizzando le tue risorse per ospitare il software).

Nessun altro strumento SCM ha utilizzato l'integrazione continua (CI) direttamente sul tuo repository e GitLab lo fa da molto tempo. Per utilizzare GitLab-CI, devi aggiungere un file .gitlab-ci.yml alla radice del codice sorgente e qualsiasi modifica al progetto attiverà azioni basate esattamente su ciò che hai specificato. GitLab e GitLab-CI sono meritatamente riconosciuti come leader nel campo dell'integrazione continua (CI-as-code).

Vantaggi chiave

  • Affidabilità - Il prodotto è sul mercato dal 2013; stabile; ben supportato.
  • Open Source: la versione gratuita di GitLab non limita le funzionalità principali di cui hanno bisogno i team di sviluppo. I pacchetti di servizi a pagamento forniscono ulteriori funzionalità utili per aziende di diverse dimensioni ed esigenze.
  • CI integrata: nessun altro strumento sul mercato ha creato un'integrazione continua direttamente in SCM come GitLab-CI. L'utilizzo di Docker garantisce build isolate senza problemi e i report integrati semplificano il debug. Non richiediamo un'integrazione complessa e la gestione di più strumenti contemporaneamente.
  • Integrazioni illimitate: GitLab fornisce una facile integrazione di tutti gli strumenti DevOps di cui hai bisogno. Ciò garantisce che i team di sviluppo e manutenzione dispongano di un'unica fonte di informazioni sulla loro applicazione in qualsiasi ambiente.

concorrenti

Ha partecipato alla battaglia, ma non ha vinto

Ci sono altri strumenti popolari in questa categoria, ma non sono buoni come GitLab. Ed ecco perché:

GitHub — Questo è un eccellente sistema di controllo della versione SaaS per le piccole aziende e le prime fasi di sviluppo. Per le grandi aziende per le quali è importante mantenere gli indirizzi IP sulla propria rete, l'unica soluzione di GitHub era la macchina virtuale .OVA senza supporto per i sistemi ad alta disponibilità. Ciò rende difficile la manutenzione in sede; inoltre .OVA è adatto solo per aziende di medie dimensioni, altrimenti il ​​server si blocca semplicemente sotto carico maggiore. La mancanza di azioni GitHub (fino a poco tempo fa e non ancora in una versione locale) o di CI-as-code significa che è necessario scegliere uno strumento CI separato e quindi gestire tale integrazione. Infine, GitHub è molto più costoso di entrambe le versioni di GitLab.

Jenkins — Sebbene Jenkins sia considerato lo standard tra gli strumenti di integrazione continua per impostazione predefinita, è sempre mancato di capacità di controllo della versione. Si scopre che stai utilizzando Jenkins più una sorta di strumento SCM. È troppo difficile quando GitLab può fare entrambe le cose. Il design UX mediocre non è adatto a un'applicazione web moderna e lascia molto a desiderare.

BitBucket/Bambù — Devo riconoscerlo come un perdente automatico: perché due strumenti quando GitLab fa tutto in modo completamente indipendente. BitBucket Cloud supporta la funzionalità GitLab-CI/GitHub Action, ma nessuna azienda più grande di una startup può implementarla facilmente. Il server BitBucket locale non supporta nemmeno le pipeline BitBucket!

Strumento di gestione dei dati numero 1

Vincitore: FlywayDB

Strumenti DevOps che tutti dovrebbero imparare nel 2020
Nello sviluppo di applicazioni web, all'automazione del database di solito non viene data importanza. L'idea di implementare modifiche allo schema del database per le nuove versioni dell'applicazione arriva tardi. Le modifiche allo schema spesso comportano l'aggiunta e la ridenominazione di colonne o tabelle. Se la versione dell'applicazione non corrisponde alla versione dello schema, l'applicazione potrebbe bloccarsi. Inoltre, la gestione delle modifiche al database durante l'aggiornamento di un'applicazione può essere complessa poiché esistono due sistemi diversi. FlyWayDB risolve tutti questi problemi.

Vantaggi chiave

  • Controllo delle versioni del database: Flyway ti consente di creare versioni del database, tenere traccia delle migrazioni del database e trasferire o annullare facilmente le modifiche dello schema senza uno strumento aggiuntivo per questo.
  • Binario o incorporato: possiamo scegliere di eseguire Flyway come parte dell'applicazione o come eseguibile binario. Flyway verifica la compatibilità delle versioni all'avvio e avvia le migrazioni appropriate, mantenendo sincronizzate le versioni del database e dell'applicazione. Eseguendo il comando ad-hoc della riga cmd, forniamo flessibilità ai database esistenti senza ricostruire l'intera applicazione.

concorrenti

Ha partecipato alla battaglia, ma non ha vinto

Non ci sono molti strumenti in quest'area. Diamo un'occhiata ad alcuni di essi:

LiquiBase — Liquibase assomiglia a FlywayDB. Mi piacerebbe configurarlo sopra Flyway se avessi qualcuno nel mio team con più esperienza con Liquibase.

Flocker - Può funzionare solo per applicazioni containerizzate. Per eseguire con successo i database containerizzati, tutto deve essere pianificato alla perfezione. Consiglio di utilizzare RDS (Relational Database Service) per i database e non consiglio di archiviare informazioni importanti in un contenitore.

Strumenti di automazione dei test

Strumenti DevOps che tutti dovrebbero imparare nel 2020
Iniziamo la nostra discussione sugli strumenti di automazione dei test classificandoli in base alla piramide dei test.

La piramide dei test (test) ha 4 livelli:

  • Unit test: questa è la base dell'intero processo di test automatizzato. Dovrebbero esserci più test unitari rispetto ad altri tipi di test. Gli sviluppatori scrivono ed eseguono unit test per garantire che una parte di un'applicazione (nota come "unità") sia conforme alla sua progettazione e si comporti come previsto.
  • Test dei componenti - Lo scopo principale del test dei componenti è verificare il comportamento di input/output dell'oggetto di test. Dobbiamo garantire che la funzionalità dell'oggetto di prova sia implementata correttamente secondo le specifiche.
  • Test di integrazione - Un tipo di test in cui i singoli moduli software vengono combinati e testati come un gruppo.
  • Test end-to-end: questo passaggio è autoesplicativo. Monitoriamo l'intera applicazione e ci assicuriamo che funzioni come previsto.

Poiché i test unitari e i test dei componenti vengono eseguiti solo dagli sviluppatori e spesso sono specifici del linguaggio di programmazione, non valuteremo questi strumenti per il dominio DevOps.

Strumento di test di integrazione n. 1

Vincitore: Cetriolo

Strumenti DevOps che tutti dovrebbero imparare nel 2020
Cucumber combina le specifiche e la documentazione dei test in un unico documento vivente. Le specifiche sono sempre aggiornate poiché vengono testate automaticamente da Cucumber. Se desideri creare un framework di test automatizzato da zero e modellare il comportamento dell'utente in un'applicazione Web, Selenium WebDriver con Java e Cucumber BDD è un ottimo modo per apprendere e implementare Cucumber in un progetto.

Vantaggi chiave

  • Approccio BDD (Behavior Driven Development - "sviluppo attraverso il comportamento" in contrapposizione all'approccio "sviluppo basato sui test") - Cucumber è progettato per i test BDD, è stato originariamente creato proprio per questo compito.
  • Documentazione vivente - La documentazione è sempre una seccatura! Poiché i tuoi test sono scritti come codice, Cucumber testa la documentazione generata automaticamente per garantire che i test e la documentazione siano sincronizzati.
  • Supporto: possiamo scegliere tra molti strumenti, ma Cucumber dispone delle risorse finanziarie necessarie e di un sistema di supporto ben organizzato per aiutare gli utenti in qualsiasi situazione difficile.

concorrenti

Ha partecipato alla battaglia, ma non ha vinto

Tra gli altri framework e strumenti tecnologici specifici, solo Cucumber può essere considerato una soluzione universale.

Strumenti di test end-to-end

Quando si eseguono test end-to-end, è necessario concentrarsi su due punti chiave:

  • collaudo funzionale
  • Prove di stress.

Nei test funzionali controlliamo se tutto ciò che desideriamo avviene effettivamente. Ad esempio, quando clicco su alcuni elementi della mia SPA (applicazione a pagina singola), compilo i moduli e seleziono "Invia", i dati compaiono nel database e sullo schermo appare il messaggio "Successo!".

Per noi è anche importante verificare che un certo numero di utenti che eseguono lo stesso scenario possano essere elaborati senza errori.

L'assenza di questi 2 tipi di test rappresenterà uno svantaggio significativo nella pipeline CI/CD.

Lo strumento di test end-to-end n. 1. Test funzionale

Vincitore: SoapUI Pro

Strumenti DevOps che tutti dovrebbero imparare nel 2020
SoapUI è presente nello spazio di test delle API da molto tempo poiché i servizi Web basati su SOAP erano lo standard. Anche se non creiamo più nuovi servizi SOAP e il nome dello strumento non è cambiato, ciò non significa che non si sia evoluto. SoapUI fornisce un framework eccellente per la creazione di test funzionali di backend automatizzati. I test possono essere facilmente combinati con strumenti di integrazione continua e utilizzati come parte di una pipeline CI/CD.

Vantaggi chiave

  • Documentazione dettagliata: SoapUI è sul mercato da molto tempo, quindi ci sono molte risorse online che possono aiutarti a capire come impostare i test.
  • Facilità d'uso: sebbene lo strumento supporti più protocolli per testare le API, la presenza di un'interfaccia comune per più servizi in SoapUI semplifica la scrittura dei test.

concorrenti

Ha partecipato alla battaglia, ma non ha vinto

Selenio è un altro grande strumento in questo gruppo. Ti consiglio di usarlo se stai creando ed eseguendo un'applicazione basata su Java. Tuttavia, se stai creando un'applicazione Web completa con più tecnologie, può diventare ingombrante per i componenti non Java.

Lo strumento di test end-to-end n. 1. Prove di stress

Vincitore: LoadRunner

Strumenti DevOps che tutti dovrebbero imparare nel 2020
spiegazione: Quando arriva il momento di caricare testare ogni elemento della tua applicazione, solo LoadRunner può completare l'attività. Sì, all'inizio è costoso e difficile, ma LoadRunner è l'unico strumento che mi dà, come architetto tecnico, completa fiducia che il nuovo codice funzionerà in condizioni di carico estreme. Inoltre, penso che sia giunto il momento che LoadRunner venga rilevato dai team di sviluppo piuttosto che dai team di test.

Vantaggi chiave

  • Ampia documentazione: LoadRunner è sul mercato da un po' di tempo, quindi ci sono molte risorse online per aiutarti a capire come impostare i test di carico.
  • Supporto protocolli: Load Runner supporta qualsiasi cosa, da ODBC ad AJAX, HTTPS e qualsiasi altro protocollo non banale che la tua applicazione potrebbe utilizzare. Cerchiamo di non utilizzare più strumenti per il test di carico, poiché ciò complica solo il processo.

concorrenti

Ha partecipato alla battaglia, ma non ha vinto

Ancora una volta, non esistono molti strumenti universali in quest'area, quindi la soluzione migliore è quella che funzionerà in qualsiasi ambiente con qualsiasi tecnologia.

Strumenti di distribuzione

Strumenti DevOps che tutti dovrebbero imparare nel 2020
Gli strumenti di distribuzione sono probabilmente l'aspetto meno compreso dello sviluppo. Per un team operativo senza una conoscenza approfondita del codice e delle funzionalità dell'applicazione, è difficile utilizzare tali strumenti. Per gli sviluppatori, la gestione della distribuzione è una nuova responsabilità, quindi non hanno ancora abbastanza esperienza nell'utilizzo di tali strumenti.

Prima di tutto, dividiamo tutti gli strumenti di distribuzione in tre sottocategorie:

  • gestione degli artefatti
  • gestione della configurazione
  • distribuire.

Strumento di gestione degli artefatti n. 1

Vincitore: Nexus

Strumenti DevOps che tutti dovrebbero imparare nel 2020
Il repository di artefatti Nexus supporta quasi tutte le principali tecnologie, da Java a NPM a Docker. Possiamo utilizzare questo strumento per archiviare tutti gli artefatti che utilizziamo. L'inoltro di gestori di pacchetti remoti accelera inoltre significativamente il processo di creazione della CI, rendendo i pacchetti più accessibili per la creazione. Un altro vantaggio è la possibilità di ottenere una visione completa di tutti i pacchetti utilizzati in diversi progetti software, bloccando i pacchetti open source non sicuri (possono fungere da vettore di attacco).

Vantaggi chiave

  • Supporto tecnico - Prodotto affidabile; ben supportato.
  • Open Source: la versione gratuita non limita le funzionalità principali di cui hanno bisogno i team di sviluppo.

Strumento di gestione della configurazione numero 1

Vincitore: ansible

Ansible è un leader per una semplice ragione: apolide. In precedenza, strumenti simili si concentravano sulla gestione dello stato di configurazione. All'avvio, tale strumento, dopo aver ricevuto la configurazione desiderata, tenterà di correggere la configurazione corrente dell'applicazione. E con il nuovo approccio sono presenti solo componenti stateless. Le nuove versioni del codice sono artefatti distribuiti per sostituire quelli esistenti. Questo può essere considerato una sorta di ambiente effimero e a breve termine.

Vantaggi chiave

  • Stateless: il Playbook viene avviato dal computer di distribuzione ed eseguito sui server di destinazione. Non devo preoccuparmi dello stato dell'oggetto remoto utilizzando uno strumento come Packer per creare oggetti distribuibili.
  • Open Source: come CentOS, anche Ansible è supportato da RedHat. Aiuta a mantenere la comunità e fornisce moduli di alta qualità e facili da usare.
  • Test con Molecule (un framework Ansible): poiché la gestione della configurazione è un codice, come qualsiasi altra cosa, il test è essenziale. Il framework di test dei ruoli Ansible di Molecule funziona perfettamente, garantendo che la configurazione sia della stessa qualità e segua la stessa pipeline CI/CD del codice dell'applicazione.
  • YAML: rispetto ad altri strumenti, YAML è più facile da capire. Poiché la gestione della configurazione è in genere una nuova sfida per coloro che implementano le pratiche DevOps, la semplicità è la sua carta vincente.

concorrenti

Ha partecipato alla battaglia, ma non ha vinto

Chef Codice Operativo — Ho iniziato la mia carriera DevOps come sviluppatore di libri di cucina. Ruby e Chef ovviamente mi stanno molto a cuore, ma semplicemente non risolvono i problemi delle moderne applicazioni stateless e native del cloud. OpsCode Chef è un ottimo strumento per le applicazioni più tradizionali, ma in questo articolo ci concentriamo sul futuro.

Fantoccio — Puppet non ha mai avuto molti fan, soprattutto se paragonato a Chef e Ansible. È ottimo per il provisioning e l'utilizzo dell'hardware, ma manca il supporto moderno per la gestione della configurazione per un'applicazione web.

Strumento di distribuzione n. 1

Vincitore: Terraform

Strumenti DevOps che tutti dovrebbero imparare nel 2020
Terraform risolve il problema di descrivere la tua infrastruttura come codice, dai componenti di rete alle immagini complete del server. Questo prodotto ha fatto molta strada dal suo rilascio iniziale, con così tanti plugin creati e una comunità così forte creata che sarai sicuro di ricevere aiuto in qualsiasi scenario di distribuzione. La capacità di supportare qualsiasi tipo di ambiente (on-premise, nel cloud o altrove) non ha eguali. Infine, l'ultima versione fornisce in HCL molte delle stesse funzioni logiche e classi di qualsiasi altro linguaggio di programmazione tradizionale, rendendo Terraform facile e veloce da comprendere per gli sviluppatori.

Vantaggi chiave

  • Indipendente dall'ambiente: Terraform utilizza funzioni che fungono da interfaccia tra il codice Terraform, tutte le API e la logica interna per comunicare con il fornitore dell'infrastruttura. Ciò significa che padroneggerò un solo strumento e poi potrò lavorare ovunque.
  • Open Source: è difficile battere gli strumenti gratuiti! Supporto comunitario al massimo livello.

concorrenti

Ha partecipato alla battaglia, ma non ha vinto

AWS CloudFormazione — Anche se lavori solo nell'ambiente cloud AWS, il tuo prossimo lavoro potrebbe utilizzare uno strumento diverso. Dedicare tutto il tuo tempo e le tue energie a una sola piattaforma è una decisione miope. Inoltre, molti nuovi servizi AWS sono spesso disponibili come moduli Terraform prima di essere disponibili in CloudFormation.

Strumenti di esecuzione

Strumenti DevOps che tutti dovrebbero imparare nel 2020

L'obiettivo finale di qualsiasi progetto di sviluppo è lanciare l'applicazione in produzione. Nel mondo DevOps, vogliamo essere pienamente consapevoli di tutti i possibili problemi con il nostro ambiente e vogliamo anche ridurre al minimo l'intervento manuale. Scegliere il giusto set di strumenti runtime è essenziale per raggiungere il nirvana dello sviluppo applicativo.

Sottocategorie di strumenti runtime:

  • X come servizio (XaaS)
  • orchestrazione
  • monitoraggio
  • registrazione.

X-tool-as-a-service n.1

Vincitore: Amazon Web Services

Strumenti DevOps che tutti dovrebbero imparare nel 2020
Amazon è sempre stata leader nelle tecnologie cloud, ma non si ferma qui: la varietà di nuovi servizi per gli sviluppatori è illuminante. Porta qualsiasi tecnologia e modello su AWS e sarà creato e funzionante. Il costo dello strumento è abbastanza ragionevole: confrontalo con l'assemblaggio, la gestione e la manutenzione delle apparecchiature nel tuo data center. La versione gratuita ti consente di sperimentare e prendere la decisione giusta prima di spendere soldi.

Vantaggi chiave

  • Prevalenza: se hai esperienza nella creazione di applicazioni in AWS, puoi lavorare ovunque. Le aziende adorano AWS e anche le startup ne apprezzano il basso costo.
  • La versione gratuita è un fattore davvero significativo che distingue AWS dai suoi pari. Fammi provare il servizio e vedo come funziona prima di prendere una decisione di acquisto, non voglio spendere migliaia di dollari per qualcosa di superfluo. La versione gratuita è sempre sufficiente per testare qualsiasi concetto.

concorrenti

Ha partecipato alla battaglia, ma non ha vinto

azzurro “Azure ha fatto molta strada dal suo primo rilascio, e questo è encomiabile. Tuttavia, il desiderio di essere diversi ha portato a dare nomi strani ai servizi, il che spesso complica il lavoro. Cosa significa "archiviazione BLOB"? E sebbene il codice .NET funzioni meglio nell'ecosistema Microsoft, è improbabile che utilizzerai solo .NET per ogni componente della tua applicazione.

Heroku — Non eseguirei mai altro che un progetto personale su Heroku a causa del basso livello di affidabilità e trasparenza, quindi le aziende non dovrebbero usarlo come piattaforma. Heroku è ottimo per dimostrare qualcosa su un blog, ma per uso pratico: "No, grazie!"

Strumento di orchestrazione n. 1

Vincitore: OpenShift

Strumenti DevOps che tutti dovrebbero imparare nel 2020
Probabilmente stai utilizzando Docker o altri contenitori nello stack dell'applicazione. Le applicazioni serverless sono ottime, ma potrebbero non adattarsi a tutte le architetture. L'esecuzione di contenitori senza una piattaforma di orchestrazione semplicemente non funzionerà. Kubernetes Core (K8s) non ha rivali in termini di sicurezza e strumenti. OpenShift è l'unica piattaforma basata su Kubernetes in grado di raccogliere Source2Image, supporta la distribuzione automatizzata nei pod e supporta il monitoraggio e il monitoraggio. OpenShift può essere eseguito on-premise, nel cloud oppure on-premise e nel cloud contemporaneamente.

Vantaggi chiave

  • Sicurezza integrata: la gestione della sicurezza di K8 potrebbe richiedere un livello avanzato. Ogni dettaglio deve essere attentamente pensato e preso in considerazione! I meccanismi di sicurezza integrati per impostazione predefinita con OpenShift alleggeriscono gli sviluppatori dal peso e forniscono una piattaforma più sicura per le applicazioni.
  • Soluzione tutto in uno: a differenza dei K8 di base, che non includono strumenti di bilanciamento del carico per impostazione predefinita, OpenShift ha tutto. Posso usarlo per creare e ospitare contenitori, eseguire strumenti CI/CD, gestire processi esterni, gestire chiavi e molto altro. Sebbene l’interfaccia utente grafica sia ancora lungi dall’essere perfetta, l’approccio basato su API fa sì che tutto possa essere descritto in uno script. A differenza di altre GUI per K8, OpenShift rende molto più semplice l'apprendimento delle basi di Kubernetes. Non è nemmeno necessario avere una laurea!

concorrenti

Ha partecipato alla battaglia, ma non ha vinto

Sciame portuale — Docker Swarm ha cercato di semplificare i K8 eliminando molte cose. È ottimo per le piccole applicazioni, ma per le applicazioni aziendali semplicemente non funziona. Inoltre, soluzioni come AWS ECS adottano un approccio simile ma semplificano il lavoro con altri servizi con cui posso interagire (Lambda, IAM, ecc.).

Strumento di monitoraggio n. 1

Vincitore: Nuova reliquia

Strumenti DevOps che tutti dovrebbero imparare nel 2020
Le prime versioni di New Relic facevano bene una cosa: il monitoraggio APM (Application Performance Monitoring). Ora è uno strumento di monitoraggio completo che consente di monitorare le prestazioni di server, contenitori, database, monitoraggio dell'esperienza dell'utente finale e, naturalmente, monitoraggio delle prestazioni delle applicazioni.

Vantaggi chiave

  • Facilità d'uso: quando lavoravo come ingegnere di sistema, utilizzavo molti strumenti di monitoraggio, ma non ne ho mai incontrato uno così semplice e facile da usare come New Relic. È SaaS, quindi non è necessario installarlo da solo.
  • Visibilità end-to-end: altri strumenti tentano di monitorare un elemento specifico della tua applicazione. Ad esempio, una metrica sull'utilizzo del processore o sul traffico di rete, ma tutto ciò deve essere monitorato in modo completo affinché l'applicazione funzioni correttamente. New Relic ti dà la possibilità di riunire tutti i tuoi dati per ottenere una visione completa di ciò che sta accadendo.

concorrenti

Ha partecipato alla battaglia, ma non ha vinto

Zabbix — Il mio primo e preferito sistema di monitoraggio, ma è rimasto nel passato a causa del mancato sviluppo delle tecnologie cloud e nel campo del monitoraggio delle prestazioni delle applicazioni APM. Zabbix esegue ancora bene il monitoraggio tradizionale dell'infrastruttura server, ma questo è tutto.

DataDog — Troppo focalizzato sul processo di gestione dell'ambiente di produzione dell'applicazione e non sul codice stesso. Con i team DevOps che coinvolgono gli sviluppatori, non dobbiamo fare affidamento su strumenti difficili da usare per fornire un supporto di prim'ordine.

Strumento di registrazione n. 1

Vincitore: Splunk

Strumenti DevOps che tutti dovrebbero imparare nel 2020
È difficile competere con Splunk! Per molto tempo rimane leader nel disboscamento, continuando a farlo meglio di chiunque altro. Con le offerte on-premise e SaaS, puoi utilizzare Splunk ovunque. Il grande svantaggio è il prezzo: Splunk è ancora dannatamente costoso!

Vantaggi chiave

  • Pervasività: le aziende adorano Splunk e hanno i soldi per acquistarlo.
  • Sebbene le startup stiano cercando di recuperare i costi, molte funzioni possono essere risolte grazie ad analoghi open source.
  • Manutenibilità: in poche parole, Splunk funziona e lo fa bene. Viene fornito con molte impostazioni predefinite e funzionalità pronte per l'uso. Non c'è bisogno di perdere tempo a leggere la documentazione e cercare di far funzionare Splunk o decifrare qualsiasi cosa.

concorrenti

Ha partecipato alla battaglia, ma non ha vinto

ELK Stack (ElasticSearch, LogStash e Kibana) “Questi strumenti sembrano essere i preferiti perché non devi nemmeno vendere il tuo fegato per usarli”. Tuttavia, man mano che l’insieme dei registri cresce e il numero delle applicazioni a bordo aumenta, il lavoro diventa sempre più difficile. Rispetto a Splunk, con ELK Stack ho dedicato molto più tempo a configurare gli strumenti prima di creare dashboard rispetto a prima.

Strumenti di collaborazione

Strumenti DevOps che tutti dovrebbero imparare nel 2020
DevOps riguarda principalmente il cambiamento della cultura all'interno di un'organizzazione. L'acquisto di uno strumento non cambierà le pratiche attuali da un giorno all'altro, ma può certamente incoraggiare la collaborazione e nuovi modi di interagire.

Sottocategorie di strumenti di collaborazione:

  • monitoraggio delle attività
  • ChatOps
  • documentazione.

Strumento n. 1 per il monitoraggio dei problemi

Vincitore: Jira

Strumenti DevOps che tutti dovrebbero imparare nel 2020
Jira mantiene la sua posizione di leadership, anche se la concorrenza in questo settore è in aumento. L'incredibile flessibilità di Jira consente ai team di sviluppo e manutenzione di gestire il lavoro di progetto e le attività di sprint. Gli standard integrati che utilizzano la terminologia Agile semplificano il passaggio da modalità di lavoro tradizionali a processi più efficienti.

Vantaggi chiave

  • Popolarità: come molti altri strumenti, Jira è utilizzato quasi ovunque. I piccoli team utilizzano la versione più economica e accessibile e ottengono tutto ciò di cui hanno bisogno, mentre le aziende più grandi possono permettersi una licenza più costosa.
  • Integrazioni: Jira è un pioniere nel suo campo. Questo fatto e il rapido sviluppo del prodotto portano al fatto che altre aziende scelgono Jira per creare le proprie integrazioni, aumentando così il valore dello strumento. Possiamo integrare Jira con tutti gli strumenti elencati in questo articolo immediatamente con una piccola configurazione.

concorrenti

Ha partecipato alla battaglia, ma non ha vinto

Trello — Trello ha guadagnato rapidamente popolarità grazie al suo strumento Kanban gratuito. Tuttavia, una volta che i processi si ridimensionano e si passa da decine a migliaia di attività, Trello diventa difficile da navigare, cercare e creare report.

Tracker principale — Ero un grande fan di questo strumento quando lavoravo per una startup. Tuttavia, Pivotal Tracker è più focalizzato sulla gestione del prodotto piuttosto che sulle attività tecniche. Sebbene la gestione del prodotto in Jira sia un po' più complessa, può comunque essere implementata lì senza utilizzare uno strumento aggiuntivo.

Strumento ChatOps n. 1

Vincitore: MatterMost

Strumenti DevOps che tutti dovrebbero imparare nel 2020
spiegazione: Forse la sorpresa più grande per te nella mia selezione, e questa è una buona notizia! MatterMost ha guadagnato popolarità prendendo il meglio dagli strumenti precedenti ma inserendoli in sede. Questo è molto importante per le aziende: MatterMost ti consente di controllare i tuoi dati e ti aiuta anche a integrarli con strumenti che funzionano localmente. Non abbiamo più bisogno di uscire dal firewall per controllare le chat di lavoro.

Vantaggi chiave

  • Open Source – La versione open source di MatterMost funziona perfettamente sia per team di medie che grandi dimensioni. A differenza del piano gratuito di Slack, che cancella la cronologia dei messaggi, gestire il tuo server significa conservare tutti i tuoi dati.
  • Integrazioni: poiché l'API è basata quasi al 100% sull'API Slack, quasi tutte le integrazioni Slack possono essere utilizzate direttamente con MatterMost.

concorrenti

Ha partecipato alla battaglia, ma non ha vinto

Slack — Slack è bello, ma questi ragazzi sono cresciuti così tanto che hanno iniziato a cercare profitto. Si avvicina la fase di recupero dell'azienda, che toglie loro il valore principale: Slack ha fornito servizi gratuitamente; Lo svantaggio più importante della versione gratuita è la cancellazione della cronologia chat.

Microsoft Squadre — Prova a integrare un prodotto Microsoft con qualcosa che non è Microsoft... Buona fortuna! Questo è tutto quello che ho da dire su questo strumento!

Strumento di documentazione n. 1

Vincitore: Confluenza

Strumenti DevOps che tutti dovrebbero imparare nel 2020
Creare e mantenere una documentazione tecnica di qualità è un processo complesso, indipendentemente dallo strumento utilizzato. Sebbene molti strumenti di documentazione SaaS siano entrati sul mercato di recente, troverei difficile esternalizzare a terzi l'archiviazione della documentazione tecnica sulle applicazioni mission-critical. È preferibile archiviare dati e documenti in sede, ed è così che Confluence risolve il problema.

Vantaggi chiave

  • Facile da usare: la maggior parte degli strumenti autonomi può essere un po' complessa da configurare e utilizzare e richiede alcune conoscenze per la manutenzione. Confluence Server funziona perfettamente fin da subito per 10 o 10,000 utenti.
  • Plugin: complimenti a Confluence per avere una navigazione bella e facile da usare, pronta all'uso, e la possibilità di aggiungere un plugin per quasi tutto sblocca il potenziale simile a Wiki.

concorrenti

Ha partecipato alla battaglia, ma non ha vinto

Leggi i documenti — Fantastico per l'open source, ma non pensare nemmeno di archiviare qui la conoscenza critica.

Markdown - Ottimo per documentare il codice, ma difficile pubblicare architettura, processi o altri tipi di documentazione a causa della formattazione specifica di MarkDown.

Jekyll — Quando documento le conoscenze tecniche, non voglio creare un nuovo sito statico che verrà distribuito ogni volta che si verifica una modifica. Il semplice sistema di controllo della versione di Confluence semplifica notevolmente la documentazione interna.

Riassumere

Esistono letteralmente centinaia di strumenti DevOps sul mercato, il che rende difficile sapere quali utilizzare e quando implementarli. Segui questa semplice guida per scegliere gli strumenti DevOps per una pipeline CI/CD completa.

Assicurati di selezionare gli strumenti da tutte e cinque le categorie:

  • strumenti di sviluppo e creazione
  • strumenti di automazione dei test
  • strumenti di distribuzione
  • Strumenti di esecuzione
  • strumenti di collaborazione.

Raccomandazione principale: Automatizza tutto!

Grazie Zach Shapiro!

Fonte: habr.com

Aggiungi un commento