Home » What is Dev Ops?

Che cos’è DevOps?

DevOps nasce dall’unione dei termini sviluppo (Development) e operazioni (Operations), e rappresenta una metodologia di progettazione e sviluppo software, che si basa su logiche di lavoro nuove, sull’unione e la collaborazione delle persone, dei processi e delle tecnologie disponibili, con l’obiettivo di offrire ai clienti un valore crescente nel tempo.
In questo articolo dedicheremo un approfondimento a questo tema, concentrando la nostra attenzione sulle caratteristiche, la metodologia e le funzionalità offerte dal DevOps.

Cosa si intende per DevOps?

Per DevOps si intende un insieme di attività innovative che consentono di rendere più “snella” la catena di produzione di un software, nel pieno rispetto di quelle logiche di Lean Management che ne stanno alla base. Il DevOps consente di automatizzare le operazioni di rilascio di un software, offrendo quindi agli sviluppatori applicativi sempre più efficienti e disponibili in tempi più brevi.

Attraverso la metodologia DevOps, infatti, ruoli e attività precedentemente “isolate”, possono iniziare a dialogare e collaborare fra loro, con l’obiettivo di offrire prodotti e servizi sempre migliori ai clienti finali. I diversi team che concorrono allo sviluppo di un software, dalle operazioni IT, al controllo della qualità e sicurezza, possono coordinarsi e lavorare in maniera più efficiente, conseguendo risultati migliori e aumentando il livello delle proprie prestazioni.

La metodologia DevOps

The potential of Dev Ops lies in the working methodology it offers. In fact, an environment that adopts this productive approach refers to "agile" development methodologies in full "Lean Management" logic. The focus of this latter logic is to offer the customer functional and quality software in a short time and more frequently.

This working methodology is based on several steps:

  1. Analysis: definition of the business plan, objectives and functions the software should have
  2. Design: defining the structure, architecture and characteristics of individual modules
  3. Coding: compilation of programming code
  4. Technical testing: preliminary testing of software according to initial specifications
  5. System test: verification of the programme after activation on the infrastructure
  6. Integration testing: testing the compatibility of the software with other software in order to integrate with it
  7. Functionality testing: testing of software operability from the end user's point of view
  8. Final review: final check of code and verification of adequacy of performance
  9. Release: after successful completion of the previous checks, the software is ready for release and distribution according to the licences used
  10. Updates and patches: the development process does not end with the release of the software, but continues over time with new updates and the implementation of recurring security patches.

A cosa serve Azure DevOps?

Microsoft Azure è la piattaforma di cloud computing sviluppata e offerta da Microsoft, che offre tutta una serie di servizi cloud quali elaborazione, analisi, connettività e archiviazione dati.
Quando parliamo di Azure Dev Ops, invece, facciamo riferimento ai servizi di sviluppo offerti da Microsoft a supporto dei team di lavoro impegnati nello sviluppo di un nuovo software.
Azure DevOps mette quindi a disposizione delle organizzazioni e degli sviluppatori una vasta gamma di servizi, processi e strumenti di project management che si rivelano fondamentali nello sviluppo del nuovo applicativo.

Questa piattaforma serve principalmente per supportare le aziende a gestire progetti impegnativi che richiedono una grande capacità di organizzazione. Utilizzare Azure DevOps significa quindi riuscire a creare prodotti di qualità sempre maggiore, e che possono poi essere migliorati e aggiornati nel tempo, offrendo un valore aggiunto crescente ai propri clienti rispetto a quello che sarebbe loro offerto con l’approccio di sviluppo tradizionale.

5 tra i migliori Tool DevOps (e che utilizziamo noi)

Gli sviluppatori e i team operativi stanno ancora trovando modi nuovi e migliori per lavorare insieme, creando pipeline CI/CD più resilienti, migliorando la velocità e l’efficienza dei framework di test , distribuendo il codice più velocemente e condividendo la responsabilità per gli ambienti di produzione. Sebbene la maggior parte del valore ingegneristico e IT derivi da un’accettazione generale della mentalità DevOps, non si possono ignorare i contributi aggiunti da strumenti utili e automazione.

Noi in EDALAB impieghiamo diversi tool DevOps e li utilizziamo quotidianamente per gestire il flusso di sviluppo, rilascio e mantenimento del codice.

# DevOps Tools DevOps Stage
1. Git Code, Build
2. Jenkins Build, Test, Deploy
3. Docker Build, Deploy, Operate
4. Kubernetes Build, Deploy, Operate
5. Icinga Monitor

Git è uno strumento DevOps ampiamente utilizzato nell’industria del software. Si tratta di uno strumento distribuito SCM (gestione del codice sorgente) noto per la sua collaborazione e pianificazione open source gratuita ampiamente utilizzato per monitorare l’avanzamento del lavoro di sviluppo da parte di team remoti e collaboratori open source. Supporta la maggior parte delle funzionalità di controllo della versione tra cui check-in, commit, branch, unione, etichette, push e pull a/da GitHub, ecc.

Git è molto facile da usare e mantenere gli artefatti di controllo della versione. Per integrare Git con il flusso di lavoro esistente, devi ospitare repository utilizzando servizi come GitHub e Bitbucket, da cui i membri del team possono inviare il proprio lavoro. GitHub è più popolare, ma Bitbucket esegue il rendering di repository privati illimitati gratuiti per piccoli team (fino a cinque). Considerando che con GitHub, hai accesso gratuito ai repository pubblici, che è un’ottima soluzione per la maggior parte dei progetti. Sia GitHub che Bitbucket hanno integrazioni senza soluzione di continuità. Ad esempio, se lo integri con Slack, i membri del tuo team ricevono una notifica ogni volta che appare un nuovo commit.

Perché gli sviluppatori dovrebbero usare Git?

  • Utilizzando il flusso di lavoro di ramificazione delle funzionalità, gli sviluppatori possono creare un ambiente isolato per ogni modifica alla loro base di codice. Ciò aiuta a garantire che il ramo principale non sia interessato dai rami di funzionalità creati per scopi specifici.
  • Invece di fornire un unico repository centrale, Git offre un ambiente di sviluppo distribuito in cui ogni sviluppatore ottiene il proprio repository locale, completo di cronologia completa dei commit.
  • Git consente a strumenti SCM come BitBucket o GitHub di eseguire richieste pull, in cui gli sviluppatori possono chiedere ad altri sviluppatori di unire i propri rami nei repository di codice di altri.
  • Facilitando un flusso di lavoro agile, Git consente di trasferire le modifiche lungo la pipeline di distribuzione molto più velocemente.
Facebook
LinkedIn

Read more

Shopping Basket