SlideShare uma empresa Scribd logo
1 de 55
Baixar para ler offline
Pratiche Agili applicate all'Infrastruttura

Marco Trincardi - @trink0
Giuseppe Leone - @joebew42
La nostra esperienza ...

• L'adozione di pratiche DevOps nasce

dalla necessità di poter creare, gestire,
condividere e replicare configurazioni di
ambienti complessi

• Circa nove mesi di esperienza su progetti
con diversi gradi di complessità
Di cosa parliamo

• Vi raccontiamo una nostra esperienza
• Casi reali
• DevOps: Unified Tooling
• Come ci siamo arrivati
• Conoscenza acquisita sul campo
• Un esempio pratico :)
Il nostro primo progetto

• Infrastruttura particolarmente complessa
• Necessità di simulare una rete privata
con due server
Le componenti in gioco?

• Esigenza:
• Creare ambiente per lo sviluppo
• Replicare questo ambiente dal cliente
Grafo delle dipendenze
dell'Infrastruttura
Problemi comuni

• Gestire tutte le dipendenze
• Perdersi in configurazioni complesse
• Sporcare l'ambiente con componenti non
più necessarie

• Non riuscire più a riprodurre fedelmente
l'ambiente

• Figuriamoci per un Dev...
Problemi comuni
Virtualizziamo?

• Virtualizzare è stata la prima scelta
• Non vogliamo sporcare il nostro
computer
Virtualizzare non basta

• Condividiamo le VM tra sviluppatori?
• Mantengo snapshot di VM stabili e poi

continuo a provare nuove configurazioni?

• E se poi vogliamo fare il deploy?
• Troppo meccanico
• Troppo costoso
• Non funziona!
Parliamone … !!

Vediamo un po' se esistono metodi e tool
che possono tornarci utili!
DevOps
Unified tooling

• Replicabilità, distribuzione e

manutenibilità di ambienti complessi

• Gestione di più ambienti di deploy
• Codice per Documentazione
• Sviluppo incrementale
• Dev e Ops finalmente riescono a capirsi!
Quali tool utilizzabili?

• Software Configuration Management
• Git, SVN, Mercurial, etc ...
• Deeply Modeled-System
• Puppet, Chef, Salt Stack, etc ...
• Automation of repetitive tasks
• Vagrant
• Capistrano, Fabric, ...
• Maven
Vagrant

http://www.vagrantup.com

È una interfaccia per diversi provider di
Virtual Machine: VirtualBox, Amazon EC2,
digitalOcean e altri.
Vagrant esegue le VM su diversi provider e
fornisce i primi parametri di configurazione.
Puppet

http://www.puppetlabs.com

È un software di automazione che ci consente
di descrivere e gestire configurazioni molto
dettagliate di infrastrutture.
Le nostre scelte

• Perché questi strumenti?
• Più vicini al nostro mondo Dev:
Vagrant e Puppet sono Ruby!
Vagrant in action!

Vagrantfile di esempio
Puppet in action!
Puppet per installare e
configurare Cube
Vagrant & Puppet in action
Le configurazioni Vagrant e Puppet sono
codice Ruby!
Vagrant & Puppet in action
Le configurazioni Vagrant e Puppet sono
codice Ruby!

Quindi l'Infrastruttura è codice?
Infrastruttura come
codice?

• Come sviluppatori siamo abituati a

gestire diverse dipendenze tra
componenti software (classi, package e
librerie)

• Ma anche le infrastrutture hanno delle
dipendenze!

• File e Directory
• Utenti
• Software e loro configurazione
Infrastruttura come
codice!

Cominciamo a capirci!
Se possiamo descrivere una
infrastruttura complessa tramite del
codice, allora ...
Infrastruttura come
codice!
Possiamo usare un software per il
controllo di versione e sfruttarne tutte le
potenzialità.
Infrastruttura come
codice!

Possiamo seguire uno sviluppo incrementale.
Infrastruttura come
codice!

Possiamo applicare metodi di sviluppo Agili:
Test Driven Development
Testing dell’infrastruttura

Come facciamo il Testing dell'Infrastruttura?
Testing dell’infrastruttura
Trial & Error
Testing dell’infrastruttura
Dry run / No Op
Testing dell’infrastruttura
Test automatici
Testing dell’infrastruttura
Code standard compliant

VS
Ancora poca esperienza
Testing dell'Infrastruttra solo con
“Trial & Error” e “Dry run”

• È come fare test manuali del software:
funziona ma porta via molto tempo.

• Il test copre l'intero setup della

configurazione piuttosto che le singole
componenti.
Vantaggi per lo sviluppo

• Possibilità di distruggere e ricreare
l'ambiente quando vogliamo

• A seguito di una prova o di un deploy, ho
compromesso l'ambiente

• Impiego meno tempo a buttar via tutto e
ricaricare da zero l'ambiente, piuttosto
che cercare di risolvere manualmente I
conflitti
Risultati ottenuti

• Documentazione della configurazione
dell'ambiente come codice

• Sviluppo incrementale dell'infrastruttura
• Destroy e Reload dell'infrastruttura a
costo zero.

• Alta manutenibilità dell'infrastruttura
• Replicabilità dell'Infrastruttura dal cliente
Ancora ...

Fornire codice e NON costanti
aggiornamenti di documentazione.
spesso la documentazione non è fedele e
può lasciare spazio a libere
interpretazioni.
Ma il nostro software?
Siamo Agili!
Deploy automatico con Capistrano

• Setup database
• Deploy di applicazioni Rails
• Deploy di servizi e gestione degli stessi
(start, stop, restart)
Quali altri progetti?

• Beancounter
• Un grado di complessità più alto
Quali altri progetti?

• Qualcosa in più …
• Provision della VM su provider esterni:
• Amazon EC2 (automatico)
• Azure (manuale)
• Gestione di diversi stage
• Sviluppo
• Integration
• Produzione
Quali altri progetti?

• Hadoop
• Test automatici
• Code standard compliant
Infrastruttura come
codice! Quali tool?

• Rspec-Puppet
• Come funziona?
• Perché?
• Multi environment
• Regression test
Infrastruttura come
codice! Quali tool?

Ma se ho i test allora posso fare refactoring!
Infrastruttura come
codice! Quali tool?

Ma se ho i test allora posso fare refactoring!

Vediamo un esempio...
Refactoring
dell'Infrastruttura
Refactoring
dell'Infrastruttura

Ok, test “rossi”, facciamoli diventare verdi!
Scriviamo codice!
Refactoring
dell'Infrastruttura
NODO DI
ESEMPIO
Refactoring
dell'Infrastruttura
Refactoring
dell'Infrastruttura
POSSIAMO
ESTRARRE
QUESTO
CODICE!
Refactoring
dell'Infrastruttura

Abbiamo estratto il codice interessato in una
risorsa definita coma “User::Complete”.
Test!
Refactoring
dell'Infrastruttura
AGGIUNGIAMO
UN NUOVO TEST
PER IL NODO
EXAMPLE.
DICIAMO CHE
DEVE
CONTENERE UNA
RISORSA DI TIPO
USER::COMPLETE
TUTTI I VECCHI
TEST NON
SERVONO PIÙ!
BUTTIAMOLI VIA.
Refactoring
dell'Infrastruttura
Refactoring
dell'Infrastruttura
• I test che avete visto non sono corretti
• Non ha senso testare la presenza di risorse
che sono definite in modo espilicito nel
puppet

• È utile ricorrere ai test solo se abbiamo

delle strutture condizionali all'interno dei
puppet

• È utile ricorrere ai test nei casi di regression
test: aggiungiamo nuove feature

• I test che avete visto sono solo degli
esempi!
Infrastruttura come
codice! Quali tool?

• Puppet-lint
• Capire se il nostro codice è conforme
agli standard

• Come funziona?
Cosa abbiamo capito?
La nostra esperienza termina qui, per ora!
Ma cosa abbiamo capito da quello che
abbiamo fatto?
Siamo riusciti a trattare problematiche del
mondo operational con un metodo a noi
familiare.
Dev e Ops non sono poi così distanti! :)
Finisce qui ...

Happy Infrastructure Coding :)
… Extra Time!

Extra Time!

• Replicare un ambiente per piattaforma
Diaspora*

• Il progetto completo è su GitHub
joebew42

• Demo pratica per chi è interessato!
Grazie...
Sì, abbiamo finito!

• Website www.xpeppers.com
• E-Mail info@xpeppers.com
• Twitter @xpeppers, @trink0, @joebew42
• Sede Via Oss Mazzurana 45,
• Tel 0461 1823400

Mais conteúdo relacionado

Mais procurados

Meetup ASP.NET Core 2 e Docker
Meetup ASP.NET Core 2 e Docker Meetup ASP.NET Core 2 e Docker
Meetup ASP.NET Core 2 e Docker dotnetcode
 
Guarda, senza mani! Automatizzare build e rilasci con Powershell senza farsi ...
Guarda, senza mani! Automatizzare build e rilasci con Powershell senza farsi ...Guarda, senza mani! Automatizzare build e rilasci con Powershell senza farsi ...
Guarda, senza mani! Automatizzare build e rilasci con Powershell senza farsi ...Marco Amendola
 
Dot netcampus2015 green-template
Dot netcampus2015 green-templateDot netcampus2015 green-template
Dot netcampus2015 green-templateDotNetCampus
 
Javascript task automation
Javascript task automationJavascript task automation
Javascript task automationAntonio Liccardi
 
AntiPatterns: i vizi del programmatore
AntiPatterns: i vizi del programmatoreAntiPatterns: i vizi del programmatore
AntiPatterns: i vizi del programmatoreManuel Scapolan
 
Node js: che cos'è e a che cosa serve?
Node js: che cos'è e a che cosa serve?Node js: che cos'è e a che cosa serve?
Node js: che cos'è e a che cosa serve?Flavius-Florin Harabor
 
Dependency injection questa sconosciuta
Dependency injection questa sconosciutaDependency injection questa sconosciuta
Dependency injection questa sconosciutaAndrea Dottor
 
Del furia signalr-to-the-max
Del furia   signalr-to-the-maxDel furia   signalr-to-the-max
Del furia signalr-to-the-maxDotNetCampus
 
AgileIoT, agile meets IoT - MEC 2016
AgileIoT, agile meets IoT - MEC 2016AgileIoT, agile meets IoT - MEC 2016
AgileIoT, agile meets IoT - MEC 2016Felice Pescatore
 
Continuous Deployment - Agile Day 2010
Continuous Deployment - Agile Day 2010Continuous Deployment - Agile Day 2010
Continuous Deployment - Agile Day 2010migratore
 
CruiseControl.net in un progetto reale
CruiseControl.net in un progetto realeCruiseControl.net in un progetto reale
CruiseControl.net in un progetto realeDotNetMarche
 
Tdd e continuous delivery sull'infrastruttura
Tdd e continuous delivery sull'infrastrutturaTdd e continuous delivery sull'infrastruttura
Tdd e continuous delivery sull'infrastrutturaCodemotion
 
Perché è così difficile il deploy dei database - DevCast DevOps Serie
Perché è così difficile il deploy dei database  - DevCast DevOps SeriePerché è così difficile il deploy dei database  - DevCast DevOps Serie
Perché è così difficile il deploy dei database - DevCast DevOps SerieGiulio Vian
 
Sviluppare Azure Web Apps
Sviluppare Azure Web AppsSviluppare Azure Web Apps
Sviluppare Azure Web AppsAndrea Dottor
 
Continuous Delivery Database - Diego Mauricio Lagos Morales - Codemotion Rome...
Continuous Delivery Database - Diego Mauricio Lagos Morales - Codemotion Rome...Continuous Delivery Database - Diego Mauricio Lagos Morales - Codemotion Rome...
Continuous Delivery Database - Diego Mauricio Lagos Morales - Codemotion Rome...Codemotion
 
ALM Revolutions - What's new in visual studio ALM 11
ALM Revolutions - What's new in visual studio ALM 11ALM Revolutions - What's new in visual studio ALM 11
ALM Revolutions - What's new in visual studio ALM 11DomusDotNet
 
TDD e Continuous Delivery sull'infrastruttura
TDD e Continuous Delivery sull'infrastrutturaTDD e Continuous Delivery sull'infrastruttura
TDD e Continuous Delivery sull'infrastrutturaFilippo Liverani
 

Mais procurados (20)

Azure dev ops meetup one
Azure dev ops meetup oneAzure dev ops meetup one
Azure dev ops meetup one
 
Making Chatbots
Making ChatbotsMaking Chatbots
Making Chatbots
 
Meetup ASP.NET Core 2 e Docker
Meetup ASP.NET Core 2 e Docker Meetup ASP.NET Core 2 e Docker
Meetup ASP.NET Core 2 e Docker
 
Guarda, senza mani! Automatizzare build e rilasci con Powershell senza farsi ...
Guarda, senza mani! Automatizzare build e rilasci con Powershell senza farsi ...Guarda, senza mani! Automatizzare build e rilasci con Powershell senza farsi ...
Guarda, senza mani! Automatizzare build e rilasci con Powershell senza farsi ...
 
Akka.net & Actor Model
Akka.net & Actor ModelAkka.net & Actor Model
Akka.net & Actor Model
 
Dot netcampus2015 green-template
Dot netcampus2015 green-templateDot netcampus2015 green-template
Dot netcampus2015 green-template
 
Javascript task automation
Javascript task automationJavascript task automation
Javascript task automation
 
AntiPatterns: i vizi del programmatore
AntiPatterns: i vizi del programmatoreAntiPatterns: i vizi del programmatore
AntiPatterns: i vizi del programmatore
 
Node js: che cos'è e a che cosa serve?
Node js: che cos'è e a che cosa serve?Node js: che cos'è e a che cosa serve?
Node js: che cos'è e a che cosa serve?
 
Dependency injection questa sconosciuta
Dependency injection questa sconosciutaDependency injection questa sconosciuta
Dependency injection questa sconosciuta
 
Del furia signalr-to-the-max
Del furia   signalr-to-the-maxDel furia   signalr-to-the-max
Del furia signalr-to-the-max
 
AgileIoT, agile meets IoT - MEC 2016
AgileIoT, agile meets IoT - MEC 2016AgileIoT, agile meets IoT - MEC 2016
AgileIoT, agile meets IoT - MEC 2016
 
Continuous Deployment - Agile Day 2010
Continuous Deployment - Agile Day 2010Continuous Deployment - Agile Day 2010
Continuous Deployment - Agile Day 2010
 
CruiseControl.net in un progetto reale
CruiseControl.net in un progetto realeCruiseControl.net in un progetto reale
CruiseControl.net in un progetto reale
 
Tdd e continuous delivery sull'infrastruttura
Tdd e continuous delivery sull'infrastrutturaTdd e continuous delivery sull'infrastruttura
Tdd e continuous delivery sull'infrastruttura
 
Perché è così difficile il deploy dei database - DevCast DevOps Serie
Perché è così difficile il deploy dei database  - DevCast DevOps SeriePerché è così difficile il deploy dei database  - DevCast DevOps Serie
Perché è così difficile il deploy dei database - DevCast DevOps Serie
 
Sviluppare Azure Web Apps
Sviluppare Azure Web AppsSviluppare Azure Web Apps
Sviluppare Azure Web Apps
 
Continuous Delivery Database - Diego Mauricio Lagos Morales - Codemotion Rome...
Continuous Delivery Database - Diego Mauricio Lagos Morales - Codemotion Rome...Continuous Delivery Database - Diego Mauricio Lagos Morales - Codemotion Rome...
Continuous Delivery Database - Diego Mauricio Lagos Morales - Codemotion Rome...
 
ALM Revolutions - What's new in visual studio ALM 11
ALM Revolutions - What's new in visual studio ALM 11ALM Revolutions - What's new in visual studio ALM 11
ALM Revolutions - What's new in visual studio ALM 11
 
TDD e Continuous Delivery sull'infrastruttura
TDD e Continuous Delivery sull'infrastrutturaTDD e Continuous Delivery sull'infrastruttura
TDD e Continuous Delivery sull'infrastruttura
 

Semelhante a Agileday2013 pratiche agili applicate all'infrastruttura

ASP.NET MVC: Andare oltre il 100% (Web@work)
ASP.NET MVC: Andare oltre il 100% (Web@work)ASP.NET MVC: Andare oltre il 100% (Web@work)
ASP.NET MVC: Andare oltre il 100% (Web@work)Giorgio Di Nardo
 
Docker_vs_Rancher_chi_dominerà_i_Desktop_dei_developers.pptx
Docker_vs_Rancher_chi_dominerà_i_Desktop_dei_developers.pptxDocker_vs_Rancher_chi_dominerà_i_Desktop_dei_developers.pptx
Docker_vs_Rancher_chi_dominerà_i_Desktop_dei_developers.pptxGiuliano Latini
 
Azure dayroma java, il lato oscuro del cloud
Azure dayroma   java, il lato oscuro del cloudAzure dayroma   java, il lato oscuro del cloud
Azure dayroma java, il lato oscuro del cloudRiccardo Zamana
 
TYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLD
TYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLDTYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLD
TYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLDDotNetCampus
 
Slide typescript - net campus
Slide typescript - net campusSlide typescript - net campus
Slide typescript - net campusDotNetCampus
 
Slide typescript - xe dotnet - Codemotion Rome 2015
Slide typescript - xe dotnet - Codemotion Rome 2015Slide typescript - xe dotnet - Codemotion Rome 2015
Slide typescript - xe dotnet - Codemotion Rome 2015Codemotion
 
Tanti "piccoli rilasci" con Symfony2
Tanti "piccoli rilasci" con Symfony2Tanti "piccoli rilasci" con Symfony2
Tanti "piccoli rilasci" con Symfony2Fabio Mora
 
Web app slots and WebAPI versioning
Web app slots and WebAPI versioningWeb app slots and WebAPI versioning
Web app slots and WebAPI versioningNicolò Carandini
 
Web app slots and webapi versioning
Web app slots and webapi versioningWeb app slots and webapi versioning
Web app slots and webapi versioningNicolò Carandini
 
Software Engineering Introduction in Italian
Software Engineering Introduction in ItalianSoftware Engineering Introduction in Italian
Software Engineering Introduction in ItalianPierpaoloCaricato
 
Database project alla riscossa
Database project alla riscossaDatabase project alla riscossa
Database project alla riscossaGian Maria Ricci
 
2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...
2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...
2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...Marco Parenzan
 
DbUp - A real case of database migration
DbUp - A real case of database migrationDbUp - A real case of database migration
DbUp - A real case of database migrationAndrea Cirioni
 
Code quality e test automatizzati con JavaScript
Code quality e test automatizzati con JavaScriptCode quality e test automatizzati con JavaScript
Code quality e test automatizzati con JavaScriptRoberto Messora
 
Dynamic Language Programming For The Statically Typed Programmer
Dynamic Language Programming For The Statically Typed ProgrammerDynamic Language Programming For The Statically Typed Programmer
Dynamic Language Programming For The Statically Typed ProgrammerMarco Parenzan
 
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...Meet Magento Italy
 
Qualità del Software
Qualità del SoftwareQualità del Software
Qualità del SoftwareYeser Rema
 
Dal requisito all'implementazione @ CD2010
Dal requisito all'implementazione @ CD2010Dal requisito all'implementazione @ CD2010
Dal requisito all'implementazione @ CD2010Mauro Servienti
 

Semelhante a Agileday2013 pratiche agili applicate all'infrastruttura (20)

ASP.NET MVC: Andare oltre il 100% (Web@work)
ASP.NET MVC: Andare oltre il 100% (Web@work)ASP.NET MVC: Andare oltre il 100% (Web@work)
ASP.NET MVC: Andare oltre il 100% (Web@work)
 
Docker_vs_Rancher_chi_dominerà_i_Desktop_dei_developers.pptx
Docker_vs_Rancher_chi_dominerà_i_Desktop_dei_developers.pptxDocker_vs_Rancher_chi_dominerà_i_Desktop_dei_developers.pptx
Docker_vs_Rancher_chi_dominerà_i_Desktop_dei_developers.pptx
 
Azure dayroma java, il lato oscuro del cloud
Azure dayroma   java, il lato oscuro del cloudAzure dayroma   java, il lato oscuro del cloud
Azure dayroma java, il lato oscuro del cloud
 
VS Package @ CD2008
VS Package @ CD2008VS Package @ CD2008
VS Package @ CD2008
 
TYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLD
TYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLDTYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLD
TYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLD
 
Slide typescript - net campus
Slide typescript - net campusSlide typescript - net campus
Slide typescript - net campus
 
Slide typescript - xe dotnet - Codemotion Rome 2015
Slide typescript - xe dotnet - Codemotion Rome 2015Slide typescript - xe dotnet - Codemotion Rome 2015
Slide typescript - xe dotnet - Codemotion Rome 2015
 
Tanti "piccoli rilasci" con Symfony2
Tanti "piccoli rilasci" con Symfony2Tanti "piccoli rilasci" con Symfony2
Tanti "piccoli rilasci" con Symfony2
 
Web app slots and WebAPI versioning
Web app slots and WebAPI versioningWeb app slots and WebAPI versioning
Web app slots and WebAPI versioning
 
Web app slots and webapi versioning
Web app slots and webapi versioningWeb app slots and webapi versioning
Web app slots and webapi versioning
 
Software Engineering Introduction in Italian
Software Engineering Introduction in ItalianSoftware Engineering Introduction in Italian
Software Engineering Introduction in Italian
 
Database project alla riscossa
Database project alla riscossaDatabase project alla riscossa
Database project alla riscossa
 
2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...
2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...
2014.04.04 Sviluppare applicazioni web (completamente) on line con Visual Stu...
 
DbUp - A real case of database migration
DbUp - A real case of database migrationDbUp - A real case of database migration
DbUp - A real case of database migration
 
Presentazione Unibo
Presentazione UniboPresentazione Unibo
Presentazione Unibo
 
Code quality e test automatizzati con JavaScript
Code quality e test automatizzati con JavaScriptCode quality e test automatizzati con JavaScript
Code quality e test automatizzati con JavaScript
 
Dynamic Language Programming For The Statically Typed Programmer
Dynamic Language Programming For The Statically Typed ProgrammerDynamic Language Programming For The Statically Typed Programmer
Dynamic Language Programming For The Statically Typed Programmer
 
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...
 
Qualità del Software
Qualità del SoftwareQualità del Software
Qualità del Software
 
Dal requisito all'implementazione @ CD2010
Dal requisito all'implementazione @ CD2010Dal requisito all'implementazione @ CD2010
Dal requisito all'implementazione @ CD2010
 

Mais de XPeppers

Yagni, You aren't gonna need it
Yagni, You aren't gonna need itYagni, You aren't gonna need it
Yagni, You aren't gonna need itXPeppers
 
Jenkins Shared Libraries
Jenkins Shared LibrariesJenkins Shared Libraries
Jenkins Shared LibrariesXPeppers
 
The Continuous Delivery process
The Continuous Delivery processThe Continuous Delivery process
The Continuous Delivery processXPeppers
 
A quick and fast intro to Kotlin
A quick and fast intro to Kotlin A quick and fast intro to Kotlin
A quick and fast intro to Kotlin XPeppers
 
How Agile Dev Teams work
How Agile Dev Teams workHow Agile Dev Teams work
How Agile Dev Teams workXPeppers
 
The Phoenix Project: un romanzo sull'IT
The Phoenix Project: un romanzo sull'ITThe Phoenix Project: un romanzo sull'IT
The Phoenix Project: un romanzo sull'ITXPeppers
 
Metriche per finanziare il cambiamento
Metriche per finanziare il cambiamentoMetriche per finanziare il cambiamento
Metriche per finanziare il cambiamentoXPeppers
 
How do you handle renaming of a resource in RESTful way
How do you handle renaming of a resource in RESTful wayHow do you handle renaming of a resource in RESTful way
How do you handle renaming of a resource in RESTful wayXPeppers
 
La tecnica del pomodoro - Come viene adottata in XPeppers
La tecnica del pomodoro - Come viene adottata in XPeppersLa tecnica del pomodoro - Come viene adottata in XPeppers
La tecnica del pomodoro - Come viene adottata in XPeppersXPeppers
 
Collective code ownership in Extreme Programming
Collective code ownership in Extreme ProgrammingCollective code ownership in Extreme Programming
Collective code ownership in Extreme ProgrammingXPeppers
 
What is Agile?
What is Agile?What is Agile?
What is Agile?XPeppers
 
Improve your TDD skills
Improve your TDD skillsImprove your TDD skills
Improve your TDD skillsXPeppers
 
Test driven infrastructure
Test driven infrastructureTest driven infrastructure
Test driven infrastructureXPeppers
 
Banche agili un ossimoro?
Banche agili un ossimoro?Banche agili un ossimoro?
Banche agili un ossimoro?XPeppers
 
Hiring Great People: how we improved our recruiting process to build and grow...
Hiring Great People: how we improved our recruiting process to build and grow...Hiring Great People: how we improved our recruiting process to build and grow...
Hiring Great People: how we improved our recruiting process to build and grow...XPeppers
 
Continuous Delivery in Java
Continuous Delivery in JavaContinuous Delivery in Java
Continuous Delivery in JavaXPeppers
 
Life in XPeppers
Life in XPeppersLife in XPeppers
Life in XPeppersXPeppers
 
Cloud e innovazione
Cloud e innovazioneCloud e innovazione
Cloud e innovazioneXPeppers
 
Company culture slides
Company culture slidesCompany culture slides
Company culture slidesXPeppers
 
Agileday2013 Bravi si diventa
Agileday2013 Bravi si diventaAgileday2013 Bravi si diventa
Agileday2013 Bravi si diventaXPeppers
 

Mais de XPeppers (20)

Yagni, You aren't gonna need it
Yagni, You aren't gonna need itYagni, You aren't gonna need it
Yagni, You aren't gonna need it
 
Jenkins Shared Libraries
Jenkins Shared LibrariesJenkins Shared Libraries
Jenkins Shared Libraries
 
The Continuous Delivery process
The Continuous Delivery processThe Continuous Delivery process
The Continuous Delivery process
 
A quick and fast intro to Kotlin
A quick and fast intro to Kotlin A quick and fast intro to Kotlin
A quick and fast intro to Kotlin
 
How Agile Dev Teams work
How Agile Dev Teams workHow Agile Dev Teams work
How Agile Dev Teams work
 
The Phoenix Project: un romanzo sull'IT
The Phoenix Project: un romanzo sull'ITThe Phoenix Project: un romanzo sull'IT
The Phoenix Project: un romanzo sull'IT
 
Metriche per finanziare il cambiamento
Metriche per finanziare il cambiamentoMetriche per finanziare il cambiamento
Metriche per finanziare il cambiamento
 
How do you handle renaming of a resource in RESTful way
How do you handle renaming of a resource in RESTful wayHow do you handle renaming of a resource in RESTful way
How do you handle renaming of a resource in RESTful way
 
La tecnica del pomodoro - Come viene adottata in XPeppers
La tecnica del pomodoro - Come viene adottata in XPeppersLa tecnica del pomodoro - Come viene adottata in XPeppers
La tecnica del pomodoro - Come viene adottata in XPeppers
 
Collective code ownership in Extreme Programming
Collective code ownership in Extreme ProgrammingCollective code ownership in Extreme Programming
Collective code ownership in Extreme Programming
 
What is Agile?
What is Agile?What is Agile?
What is Agile?
 
Improve your TDD skills
Improve your TDD skillsImprove your TDD skills
Improve your TDD skills
 
Test driven infrastructure
Test driven infrastructureTest driven infrastructure
Test driven infrastructure
 
Banche agili un ossimoro?
Banche agili un ossimoro?Banche agili un ossimoro?
Banche agili un ossimoro?
 
Hiring Great People: how we improved our recruiting process to build and grow...
Hiring Great People: how we improved our recruiting process to build and grow...Hiring Great People: how we improved our recruiting process to build and grow...
Hiring Great People: how we improved our recruiting process to build and grow...
 
Continuous Delivery in Java
Continuous Delivery in JavaContinuous Delivery in Java
Continuous Delivery in Java
 
Life in XPeppers
Life in XPeppersLife in XPeppers
Life in XPeppers
 
Cloud e innovazione
Cloud e innovazioneCloud e innovazione
Cloud e innovazione
 
Company culture slides
Company culture slidesCompany culture slides
Company culture slides
 
Agileday2013 Bravi si diventa
Agileday2013 Bravi si diventaAgileday2013 Bravi si diventa
Agileday2013 Bravi si diventa
 

Agileday2013 pratiche agili applicate all'infrastruttura