DevOps

Negli ultimi anni, il mondo dello sviluppo software ha visto diffondersi molto rapidamente un insieme di pratiche volte a rendere la gestione, il testing e il deploy di un’applicazione sempre più rapidi.

09 set 2016

Negli ultimi anni, il mondo dello sviluppo software ha visto diffondersi molto rapidamente un insieme di pratiche volte a rendere la gestione, il testing e il deploy di un’applicazione sempre più rapidi e integrati nel processo di sviluppo.

 

Questo movimento noto come DevOps, punta a massimizzare la comunicazione, collaborazione e integrazione tra Development e Operations.

 

I punti chiave di DevOps sono:

 

  • Un cambio culturale favorito anche dalle metodologie agile e lean;
  • La possibilità di avere una maggiore frequenza nei rilasci in produzione;
  • La disponibilità di infrastrutture virtualizzate e del Cloud Computing;
  • Una spinta all’automatizzazione dei processi.

 

Sempre più applicazioni passano da installazioni “On Premises” al Cloud Computing sfruttando l’Infrastructure as a Service, che permette la creazione e la gestione di server virtuali contenenti l’intera infrastruttura necessaria all’applicazione.

 

La nascita di strumenti come Docker e Puppet e di piattaforme cloud come Azure e Amazon Web Services ha reso l’approccio Platform as a Service così semplice che nel giro di pochi anni è diventato lo standard de facto per il deploy di nuove applicazioni, con sempre più aziende che si muovono per portare anche soluzioni già esistenti nel nuovo mondo del cloud.

 

Inoltre, con i recenti annunci da parte di Microsoft della disponibilità di .NET Core, SQL Server e Powershell in ambienti non Windows, sarà possibile rilasciare facilmente applicazioni anche nel mondo Unix.

 

Anche in Elfo abbiamo iniziato ad adottare queste pratiche sfruttando un insieme di strumenti integrati con le tecnologie Microsoft:

 

  • TFS è lo strumento per source control e code versioning di Microsoft, gestisce le build automatizzate, continuous testing e code metrics.
  • Octopus Deploy si occupa del continuous deployment sui server di sviluppo e della continuous delivery sui server di produzione o sul cloud in seguito ad una approvazione del cliente.
  • Nuget è lo standard per il packaging di applicazioni .NET, usato durante lo sviluppo per distribuire le librerie aziendali e durante i deploy per la preparazione dei pacchetti di installazione in Octopus.
  • Azure è l’ambiente Cloud Computing di Microsoft che utilizziamo per distribuire le applicazioni, sia IaaS che PaaS, che verranno usate dai nostri clienti in tutto il mondo.
  • Application Insights è la piattaforma di continuous monitoring che ci aiuta a tenere sotto controllo performance, utilizzo e eventuali errori delle applicazioni.
  • Sql Source Control di RedGate e DBUp degli sviluppatori di Octopus sono i tool che usiamo per gestire il ciclo di vita del database, dallo sviluppo (branching, merging e versioning) al deploy.

 

Questi strumenti ci hanno aiutato ad automatizzare la delivery pipeline che era già presente in azienda, permettendoci di rendere le build e i rilasci più veloci, più robusti e affidabili.

 

A questo punto lo sviluppatore può concentrarsi esclusivamente nella costruzione di valore per il cliente.

 

Vieni a conoscere come abbiamo implementato DevOps all’evento

 

devopsheroeslogo

 

il 29 Ottobre 2016
presso il Parco delle Scienze dell’Università degli Studi di Parma,
Dipartimento di Ingegneria
.

 

www.devopsheroes.net