ݺߣ

ݺߣShare a Scribd company logo
1
Carlo Fedeli
carlo.fedeli@elfo.net
@cafedo84
Il “rilascio” con Octopus Deploy
(visto dagli occhi di un dev)
R&D in Elfo S.r.l.
Sponsors & Organizers
getlatestversion.it
Io sono un DEV
• Quello che vedrete è tratto da storie vere
• I fatti esposti sono realmente accaduti
• Tutto è stato fedelmente riportato
Applicazione distribuita
Windows Server Frontend
Web App Web Service
Windows Server DB
Database
Applicativo
Database
Log
Windows Server Backend
Win Service Web Service
Cosa la rende “di valore”?
Cosa la rende “di valore”?
• Coinvolge più macchine per non stressare un unico Host
Cosa la rende “di valore”?
• Coinvolge più macchine per non stressare un unico Host
• Scala verticalmente e/o orizzontalmente in risposta al carico di
lavoro
Cosa la rende “di valore”?
• Coinvolge più macchine per non stressare un unico Host
• Scala verticalmente e/o orizzontalmente in risposta al carico di
lavoro
• Garantisce alta disponibilità
Cosa la rende “di valore”?
• Coinvolge più macchine per non stressare un unico Host
• Scala verticalmente e/o orizzontalmente in risposta al carico di
lavoro
• Garantisce alta disponibilità
• Scritta secondo le più moderne tecniche di programmazione
Cosa la rende “di valore”?
• Coinvolge più macchine per non stressare un unico Host
• Scala verticalmente e/o orizzontalmente in risposta al carico di
lavoro
• Garantisce alta disponibilità
• Scritta secondo le più moderne tecniche di programmazione
• (Soddisfazione personale per averla sviluppata )
Cosa la rende “di valore”?
• Coinvolge più macchine per non stressare un unico Host
• Scala verticalmente e/o orizzontalmente in risposta al carico di
lavoro
• Garantisce alta disponibilità
• Scritta secondo le più moderne tecniche di programmazione
• (Soddisfazione personale per averla sviluppata )
•DEVE ESSERE RILASCIATA ($)
Applicazione distribuita
Windows Server Frontend
Web App Web Service
Windows Server DB
Database
Applicativo
Database
Log
Windows Server Backend
Win Service Web Service
Applicazione distribuita
Windows Server Frontend
Web App Web Service
Windows Server DB
Database
Applicativo
Database
Log
Windows Server Backend
Win Service Web Service
Applicazione distribuita
Windows Server Frontend
Web App Web Service
Windows Server DB
Database
Applicativo
Database
Log
Windows Server Backend
Win Service Web Service
Team Viewer
Metodi di rilascio
• “Alla carlona”
• Copio/incollo file da una repository ad un’altra in base a miei ricordi e
ad indicazioni verbali di colleghi
• L’ordine delle operazioni è dettato dallo stress del momento
• Probabilità di errore: NaN
• Il dev non è presente al momento del rilascio => AIUTO
Metodi di rilascio
• “Checklist cartacea o digitale
• Elenco puntato ordinato con i passi da compiere
• Sono comunque sempre operazioni manuali
• Probabilità di errore: Elevato
• Il dev non è presente al momento del rilascio => AIUTO
Metodi di rilascio
Metodi di rilascio
• Automatizzato
• Elenco ordinato di script da eseguire in sequenza
• Pensato già dal giorno 0 dello sprint
• Tempo di realizzazione diluito nello sprint e risparmiato su tutti i rilasci
• Nessun collo di bottiglia nel team
• Chi ha sviluppato <> Chi rilascia
• Il termine “ferie” diventa meno sconcio
Strumento
#Project #Process #Step #PowerShell
Octopus Deploy (hashtags)
#Environment #Project #Release
Octopus Deploy (hashtags)
#Octopack #Build #Nuget
Octopus Deploy (hashtags)
DEMO
Chiariamoci le idee…
Listening Tentacle
• Windows service installato sul pc “tentacolo”
• Porta TCP 10933 in ingresso
• Registrazione tramite thumbprint generato dal Octopus Server
• E’ la consigliata, usa meno risorse
Polling Tentacle
• Windows service installato sul pc “tentacolo”
• Porta TCP 10943 in uscita
• Porta TCP 80 o 443 in uscita
• A seconda di dove il server di octopus è esposto
• Registrazione tramite user/password
DEMO
Andiamo avanti!
Offline package drop
• Quando non possiamo aprire porte o eseguire l’installer dei
tentacle
• La drop folder è un UNC Path
• Sensitive-variable salvate a parte in un file crittografato
• Master key AES128
API ed integrazioni
• Octo.exe command line
• Octopus.Client .NET library
• Octopus REST API
• Visual Studio Team Services (VSTS)
• Team Foundation Server (TFS)
• …
http://docs.octopusdeploy.com/display/OD/API+and+Integration
Continuos Delivery
• Usiamo le integrazioni per:
Sviluppo
Source
Control
Build Dev Staging Prod
auto auto
auto
one-click one-click
Continuos Delivery
one-click
Cosa non è e cosa non fa
• Non è un tool per fare build
• Non è pienamente compatibile con Linux o OS X (SSH e Bash)
• Gli environment sono pensati in ambiente Windows
• Powershell e .NET
• Non fa “transazioni” quando rilascia
• C’è un errore => Deploy release precedente oppure fix e nuova release
• https://octopus.com/blog/rollback
Pricing
• Vari modelli
• Free (anche per uso commerciale)
• 5 utenti, 5 progetti, 10 tentacoli
• Professional (700$)
• 20 utenti, 20 progetti, 20 tentacoli
• Team (2000$)
• 60 utenti, 60 progetti, 60 target
• Enterprise (5000$)
• Utenti, progetti e target illimitati
• Licenza perpetua con 1 anno di aggiornamenti
https://octopus.com/purchase
Conclusioni: “Ci investo ?”
Conclusioni: “Ci investo ?”
• Ha un costo iniziale
Conclusioni: “Ci investo ?”
• Ha un costo iniziale
• Si risparmia sul costo finale
Conclusioni: “Ci investo ?”
• Ha un costo iniziale
• Si risparmia sul costo finale
• Fornisce un risultato ottimale e controllato per il consumatore
Conclusioni: “Ci investo ?”
• Ha un costo iniziale
• Si risparmia sul costo finale
• Fornisce un risultato ottimale e controllato per il consumatore
• Chi lo usa è molto contento
Conclusioni: “Ci investo ?”
• Ha un costo iniziale
• Si risparmia sul costo finale
• Fornisce un risultato ottimale e controllato per il consumatore
• Chi lo usa è molto contento
26

More Related Content

What's hot (9)

PDF
Come scegliere l'Hosting per WordPress - WordPress Meetup Bologna - Paolo Dolci
WpSEO.it
PPTX
Le novità di Visual Studio 2015 per lo sviluppatore ASP.NET
Emanuele Bartolesi
PPTX
Creare un Information Radiator con Delphi
Marco Breveglieri
PDF
Bbox
nois3lab
PDF
#vBrownBag.IT - Session 1
Andrea Mauro
PPTX
Php for ASP.NET Developers
Emanuele Bartolesi
PPTX
Workflow Dev-Test-Live per WordPress
Farnedi ICT srl
PDF
Node js: che cos'è e a che cosa serve?
Flavius-Florin Harabor
PPTX
Branching & Merging strategies (with TFS)
Klab
Come scegliere l'Hosting per WordPress - WordPress Meetup Bologna - Paolo Dolci
WpSEO.it
Le novità di Visual Studio 2015 per lo sviluppatore ASP.NET
Emanuele Bartolesi
Creare un Information Radiator con Delphi
Marco Breveglieri
#vBrownBag.IT - Session 1
Andrea Mauro
Php for ASP.NET Developers
Emanuele Bartolesi
Workflow Dev-Test-Live per WordPress
Farnedi ICT srl
Node js: che cos'è e a che cosa serve?
Flavius-Florin Harabor
Branching & Merging strategies (with TFS)
Klab

Similar to Il "rilascio" con Octopus Deploy (visto dagli occhi di un dev) (10)

PPTX
Keep calm and deploy
Klab
PPTX
Keep calm and Deploy - Panoramica sui problemi che emergono in fase di rilasc...
Andrea Cirioni
PPTX
DevOps e scelte architetturali: tre scenari reali
Mauro Servienti
PPTX
Dall'idea al deploy un lungo viaggio che passa per git flow e semver
Mauro Servienti
PPTX
Come avverare i tuoi sogni di 100% uptime con la strategia blue/green
Monica Colangelo
PPTX
Oltre il Worker Role, da Serverless computing a VM Scale Set
Vito Flavio Lorusso
PPTX
Guarda, senza mani! Automatizzare build e rilasci con Powershell senza farsi ...
Marco Amendola
PDF
Codemotion fuse presentation
Ugo Landini
PPTX
OpenDevSecOps 2019 - Open devsecops un caso di studio
Emerasoft, solutions to collaborate
PDF
"Configuration Manager: il ruolo nel ciclo di vita del software" by Omar Rossini
ThinkOpen
Keep calm and deploy
Klab
Keep calm and Deploy - Panoramica sui problemi che emergono in fase di rilasc...
Andrea Cirioni
DevOps e scelte architetturali: tre scenari reali
Mauro Servienti
Dall'idea al deploy un lungo viaggio che passa per git flow e semver
Mauro Servienti
Come avverare i tuoi sogni di 100% uptime con la strategia blue/green
Monica Colangelo
Oltre il Worker Role, da Serverless computing a VM Scale Set
Vito Flavio Lorusso
Guarda, senza mani! Automatizzare build e rilasci con Powershell senza farsi ...
Marco Amendola
Codemotion fuse presentation
Ugo Landini
OpenDevSecOps 2019 - Open devsecops un caso di studio
Emerasoft, solutions to collaborate
"Configuration Manager: il ruolo nel ciclo di vita del software" by Omar Rossini
ThinkOpen
Ad

Il "rilascio" con Octopus Deploy (visto dagli occhi di un dev)

  • 1. 1 Carlo Fedeli carlo.fedeli@elfo.net @cafedo84 Il “rilascio” con Octopus Deploy (visto dagli occhi di un dev) R&D in Elfo S.r.l.
  • 3. Io sono un DEV • Quello che vedrete è tratto da storie vere • I fatti esposti sono realmente accaduti • Tutto è stato fedelmente riportato
  • 4. Applicazione distribuita Windows Server Frontend Web App Web Service Windows Server DB Database Applicativo Database Log Windows Server Backend Win Service Web Service
  • 5. Cosa la rende “di valore”?
  • 6. Cosa la rende “di valore”? • Coinvolge più macchine per non stressare un unico Host
  • 7. Cosa la rende “di valore”? • Coinvolge più macchine per non stressare un unico Host • Scala verticalmente e/o orizzontalmente in risposta al carico di lavoro
  • 8. Cosa la rende “di valore”? • Coinvolge più macchine per non stressare un unico Host • Scala verticalmente e/o orizzontalmente in risposta al carico di lavoro • Garantisce alta disponibilità
  • 9. Cosa la rende “di valore”? • Coinvolge più macchine per non stressare un unico Host • Scala verticalmente e/o orizzontalmente in risposta al carico di lavoro • Garantisce alta disponibilità • Scritta secondo le più moderne tecniche di programmazione
  • 10. Cosa la rende “di valore”? • Coinvolge più macchine per non stressare un unico Host • Scala verticalmente e/o orizzontalmente in risposta al carico di lavoro • Garantisce alta disponibilità • Scritta secondo le più moderne tecniche di programmazione • (Soddisfazione personale per averla sviluppata )
  • 11. Cosa la rende “di valore”? • Coinvolge più macchine per non stressare un unico Host • Scala verticalmente e/o orizzontalmente in risposta al carico di lavoro • Garantisce alta disponibilità • Scritta secondo le più moderne tecniche di programmazione • (Soddisfazione personale per averla sviluppata ) •DEVE ESSERE RILASCIATA ($)
  • 12. Applicazione distribuita Windows Server Frontend Web App Web Service Windows Server DB Database Applicativo Database Log Windows Server Backend Win Service Web Service
  • 13. Applicazione distribuita Windows Server Frontend Web App Web Service Windows Server DB Database Applicativo Database Log Windows Server Backend Win Service Web Service
  • 14. Applicazione distribuita Windows Server Frontend Web App Web Service Windows Server DB Database Applicativo Database Log Windows Server Backend Win Service Web Service Team Viewer
  • 15. Metodi di rilascio • “Alla carlona” • Copio/incollo file da una repository ad un’altra in base a miei ricordi e ad indicazioni verbali di colleghi • L’ordine delle operazioni è dettato dallo stress del momento • Probabilità di errore: NaN • Il dev non è presente al momento del rilascio => AIUTO
  • 16. Metodi di rilascio • “Checklist cartacea o digitale • Elenco puntato ordinato con i passi da compiere • Sono comunque sempre operazioni manuali • Probabilità di errore: Elevato • Il dev non è presente al momento del rilascio => AIUTO
  • 18. Metodi di rilascio • Automatizzato • Elenco ordinato di script da eseguire in sequenza • Pensato già dal giorno 0 dello sprint • Tempo di realizzazione diluito nello sprint e risparmiato su tutti i rilasci • Nessun collo di bottiglia nel team • Chi ha sviluppato <> Chi rilascia • Il termine “ferie” diventa meno sconcio
  • 20. #Project #Process #Step #PowerShell Octopus Deploy (hashtags)
  • 22. #Octopack #Build #Nuget Octopus Deploy (hashtags)
  • 24. Listening Tentacle • Windows service installato sul pc “tentacolo” • Porta TCP 10933 in ingresso • Registrazione tramite thumbprint generato dal Octopus Server • E’ la consigliata, usa meno risorse
  • 25. Polling Tentacle • Windows service installato sul pc “tentacolo” • Porta TCP 10943 in uscita • Porta TCP 80 o 443 in uscita • A seconda di dove il server di octopus è esposto • Registrazione tramite user/password
  • 27. Offline package drop • Quando non possiamo aprire porte o eseguire l’installer dei tentacle • La drop folder è un UNC Path • Sensitive-variable salvate a parte in un file crittografato • Master key AES128
  • 28. API ed integrazioni • Octo.exe command line • Octopus.Client .NET library • Octopus REST API • Visual Studio Team Services (VSTS) • Team Foundation Server (TFS) • … http://docs.octopusdeploy.com/display/OD/API+and+Integration
  • 29. Continuos Delivery • Usiamo le integrazioni per: Sviluppo Source Control Build Dev Staging Prod auto auto auto one-click one-click Continuos Delivery one-click
  • 30. Cosa non è e cosa non fa • Non è un tool per fare build • Non è pienamente compatibile con Linux o OS X (SSH e Bash) • Gli environment sono pensati in ambiente Windows • Powershell e .NET • Non fa “transazioni” quando rilascia • C’è un errore => Deploy release precedente oppure fix e nuova release • https://octopus.com/blog/rollback
  • 31. Pricing • Vari modelli • Free (anche per uso commerciale) • 5 utenti, 5 progetti, 10 tentacoli • Professional (700$) • 20 utenti, 20 progetti, 20 tentacoli • Team (2000$) • 60 utenti, 60 progetti, 60 target • Enterprise (5000$) • Utenti, progetti e target illimitati • Licenza perpetua con 1 anno di aggiornamenti https://octopus.com/purchase
  • 33. Conclusioni: “Ci investo ?” • Ha un costo iniziale
  • 34. Conclusioni: “Ci investo ?” • Ha un costo iniziale • Si risparmia sul costo finale
  • 35. Conclusioni: “Ci investo ?” • Ha un costo iniziale • Si risparmia sul costo finale • Fornisce un risultato ottimale e controllato per il consumatore
  • 36. Conclusioni: “Ci investo ?” • Ha un costo iniziale • Si risparmia sul costo finale • Fornisce un risultato ottimale e controllato per il consumatore • Chi lo usa è molto contento
  • 37. Conclusioni: “Ci investo ?” • Ha un costo iniziale • Si risparmia sul costo finale • Fornisce un risultato ottimale e controllato per il consumatore • Chi lo usa è molto contento
  • 38. 26

Editor's Notes

  • #19: Il DevOps è un set di pratiche e di cambiamenti culturali supportati da strumenti automatici, che consente di automatizzare il rilascio del software rispetto alla sua catena di produzione, permettendo alle organizzazioni di poter contare su un software e applicazioni di qualità superiore e sicura in modo estremamente più rapido, per accontentare i clienti nel modo migliore e più rapidamente. l'idempotenza è una proprietà delle funzioni per la quale applicando molteplici volte una data funzione, il risultato ottenuto è uguale a quello derivante dall'applicazione della funzione un'unica volta.
  • #20: Il DevOps è un set di pratiche e di cambiamenti culturali supportati da strumenti automatici, che consente di automatizzare il rilascio del software rispetto alla sua catena di produzione, permettendo alle organizzazioni di poter contare su un software e applicazioni di qualità superiore e sicura in modo estremamente più rapido, per accontentare i clienti nel modo migliore e più rapidamente. l'idempotenza è una proprietà delle funzioni per la quale applicando molteplici volte una data funzione, il risultato ottenuto è uguale a quello derivante dall'applicazione della funzione un'unica volta.
  • #21: #Step = è la singola azione, il singolo script #Process = elenco di script da compiere #PowerShell = è lo strumento principe
  • #22: #Environment = ambiente di lavoro, collezione di servers #Project = quello che voglio deployare, il mio progetto #Release = la versione di quello che sto deployando #Variables = visto che gli script sono statici ed idempotenti, la loro personalizzazione è legata a variabili
  • #25: Può essere installato anche tramite group policy di Windows
  • #26: Può essere installato anche tramite group policy di Windows
  • #28: Può essere installato anche tramite group policy di Windows
  • #29: TeamCity Jenkins Bamboo Continua CI
  • #33: Non farò parallelismi su altri prodotti (TFS e VSTS Release Management non ho grande esperienza, ma mi sembra macchinoso e poco flessibile) Farò considerazioni sull’usare o no un tool di deploy, e mi riferisco ad eventuali manager presenti in sala
  • #34: Monetario e di Know How
  • #35: Ci metto meno tempo a rilasciare; quindi, non è che poi recupero quello su cui ho investito?
  • #36: Abbiamo il più basso margine d’errore tra tutte le tecniche di rilascio ad oggi conosciute
  • #37: Il team è felice Sapete che ne penso io?
  • #38: Il team è felice