d4r^7 - docker alla settima

May. 21, 2018
d4r^7 - docker alla settima
d4r^7 - docker alla settima
d4r^7 - docker alla settima
d4r^7 - docker alla settima
d4r^7 - docker alla settima
d4r^7 - docker alla settima
d4r^7 - docker alla settima
d4r^7 - docker alla settima
d4r^7 - docker alla settima
d4r^7 - docker alla settima
d4r^7 - docker alla settima
d4r^7 - docker alla settima
d4r^7 - docker alla settima
d4r^7 - docker alla settima
d4r^7 - docker alla settima
d4r^7 - docker alla settima
d4r^7 - docker alla settima
d4r^7 - docker alla settima
d4r^7 - docker alla settima
d4r^7 - docker alla settima
d4r^7 - docker alla settima
d4r^7 - docker alla settima
d4r^7 - docker alla settima
d4r^7 - docker alla settima
d4r^7 - docker alla settima
d4r^7 - docker alla settima
d4r^7 - docker alla settima
d4r^7 - docker alla settima
d4r^7 - docker alla settima
d4r^7 - docker alla settima
d4r^7 - docker alla settima
d4r^7 - docker alla settima
d4r^7 - docker alla settima
1 of 33

More Related Content

Similar to d4r^7 - docker alla settima

Aruba, Dell e Intel: una partnership d'eccezioneAruba, Dell e Intel: una partnership d'eccezione
Aruba, Dell e Intel: una partnership d'eccezioneAruba S.p.A.
Modernize Legacy Systems with KubernetesModernize Legacy Systems with Kubernetes
Modernize Legacy Systems with KubernetesGiulio Roggero
Google Dev Fest 2016 - RomaGoogle Dev Fest 2016 - Roma
Google Dev Fest 2016 - Romagabriele nocco
 CI CD per .Net 5? Facile con Azure Pipelines e GitHub Actions  CI CD per .Net 5? Facile con Azure Pipelines e GitHub Actions
CI CD per .Net 5? Facile con Azure Pipelines e GitHub Actions Davide Benvegnù
Introduzione a Docker (Maggio 2017) [ITA]Introduzione a Docker (Maggio 2017) [ITA]
Introduzione a Docker (Maggio 2017) [ITA]Valerio Radice
Introduzione ad ubuntu core  - Qt day 2017Introduzione ad ubuntu core  - Qt day 2017
Introduzione ad ubuntu core - Qt day 2017Marco Trevisan

d4r^7 - docker alla settima

Editor's Notes

  1. Ambiente di Continuous Delivery che gira in container docker produce container docker sfruttando altri container docker, testa container docker usando altri container docker e rilascia container docker in container docker.
  2. Scrum Team cross-funzionale, ma non contiene ragazzi di operation!
  3. Usiamo container per “disaccoppiare” il server dall’applicazione… Unica dipendenza docker-engin e docker-compose Le dipendenze sono inserite nel container in fase di creazione dell’immagine Se il container funziona sul server di dev, esso funzionaerà anche in altri server Le configurazioni sono interne al container… mascherate, generalizzate e semplificate Il container riceve come input un elenco di variabili che sostiuirà nel file di configurazione interno e.g. ip del db server Dire cosa e’ un container
  4. To try somenthing more ambitious, you can run an Ubuntu container ...
  5. Non è una buona pratica… stiamo usando docker per sostituire una vm Dire cosa sono jenkins, docker-registry e docker-compose
  6. Tool Provider: Jenkins si occupa di installare la versione del tool (SDK, compilatore, package manager), in modo semplice e locali al workspace della build (evitando installazioni globali evitiamo conflitti) Jenkins slave: il server Jenkins viene usato come orchestratore e scheduler delle build, tutto il lavoro viene fatto in un nodo dedicato (tipicamente VM) Container docker come slave: immagine sempre pulita… dall’immagine viene creato un container ed eseguito; al termine della build il container viene rimosso
  7. sencha-cmd non è installabile tramite tool provider, quindi creiamo 1 immagine con esso… se servono altri tool li installiamo con il tool provider Vogliamo limitare i container da mantenere e sfruttare il tool provider quando possibile!
  8. 3 applicazioni (arancio) 4 dipendenze (grigio) 7 repository (grigio + arancio) 4 package creati (verdi) 11 job, uno per ogni repository + 1 per creare il pacchetto da rilasciare Con l’attuale struttura delle applicazioni e dei repository: 1 o più repository per applicazioni Lo sviluppo di nuova funzionalità porta sempre codice nuovo in più repository Solitamente lavoriamo trunk based, quindi raramente di capita lavorare su long living branch, ma quando capita vogliamo aggiungere una build per la branch
  9. PROBLEMI: NON si capisce quale job lanciare per fare la build di un progetto - 1 job “radice” per ogni package che si limita a scatenare tutto il downstream partendo dalla prima dipendenza da compilare NON abbiamo un colpo d’occhio sullo stato delle build
  10. VANTAGGI: Pochi job – 1 per progetto può generare 1 o più package, ma abbiamo 1 solo job Si capisce a colpo d’occhio lo stato generale dei progetti (quali sono falliti e quali stabili) La visualizzazione della pipeline ci mostra il dettaglio di quale repository / componente del progetto fallisce… le colonne sono i singoli step La visualizzazione della pipeline ci fornisce il colpo d’occhio sulla storia recente delle build del singolo progetto… ogni riga è 1 esecuzione della pipeline
  11. Abbiamo creato un file docker-compose contenente la definizione di tutta la nostra applicazione
  12. Modifiche alla confiurazione: Usiamo un’altra porta Configuriamo il rest per collegarsi al nuovo schema PostgreSQL in container e script di creazione NON creiamo un nuovo docker-compose… sfruttiamo la funzionalità di override
  13. I repository dell’applicazione sono in subversion… Lavoriamo trunk-based CAMBIAMO IL MODO DI LAVORARE
  14. Multibranch pipeline: Plugin aggiuntivo di Jenkins Nessuna configurazione iniziale Creiamo job di tipo multibranch e in automatico Jenkins: Cerca per noi le branch nel repository che contengono un Jenkinsfile Crea nuovi job figli quando trova nuove branch Esegue la pipeline sulla branch quando viene fatto commit Elimina i job quando vengono eliminate le branch
  15. i progetti aumentano di numero… diventano 2, 3, 4, 5, 6 le tecnologie, i framework e le loro versioni cambiano … Java 8/9/10, Maven, Ant, npm, Node.js 6/8, Ext JS, Angular 2/6 Ma manteniamo l’approccio illustrato prima…. usiamo Jenkins tools provider per installare nei container slave tutto quello che ci serve
  16. Siamo sviluppatori… i copia-incolla non ci piacciono! Significa: Replicare codice Mantenere allineati 2 file quasi per intero identici
  17. Ora lanciamo noi la sfida: Cambiate pure docker server e docker-registry… Non non modifichiamo il codice! OK, per 2 volte e’ cambiato il registry
  18. Le installazioni sono sparse per il mondo… I server stanno in datacenter dislocati nel singoli country… Operation global si deve coordinare con operation locale Vogliamo consolidare l’infrastruttura e usare un unico sistema per entrambi i pacchetti
  19. Fermiamo il container di docker-registry avviamo quello di Sonatype Nexus OSS 3 Così possiamo rilasciare anche pacchetti Bower, Maven/Java, npm e PyPI
  20. Creazione certificati SSL… sembra semplice, ma non possiamo usare Let’s Encrypt perche’ i server sono in intranet e non abbiamo accesso ai DNS Zabbix e’ utilizzato per monitorare i server, possiamo usarlo anche per docker ?