Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DevOps by examples - Agile O'Day 2017

DevOps by examples - Agile O'Day 2017

Sessione dell'Agile O'Day 2017 (Napoli)

71984178d7a6505ddd417b8528b869ed?s=128

Giulio Vian

May 12, 2017
Tweet

More Decks by Giulio Vian

Other Decks in Technology

Transcript

  1. DevOps by examples Giulio Vian http://blog.casavian.eu/ giulio.dev@casavian.eu @giulio_vian http://www.getlatestversion.it/

  2. 1990 1992 1999 2014 2010 2016 1995 freelance 2014 2015

    TFS Aggregator 2017 ?
  3. L’ultimo progetto cui ho partecipato © 2016 IMG Universe, LLC.

    All Rights Reserved 3
  4. Inquadramento della Sessione Livello 100/200 Cogliere l’essenziale dell’approccio DevOps Interrompere

    solo per domande fulminee Sì, No, Può ripetere, ... 4
  5. Di che si chiacchiera? DevOps? Esempi Un ambiente per il

    codice Una applicazione Il suo rilascio Riconfigurazione Riassunto e riferimenti 5
  6. Tocca a voi Azure? Visual Studio Team Services (VSTS)? ASP.NET

    ? Linux (Ubuntu) ? 6
  7. «Antipasto» 7

  8. DevOps è un lavoro? 8

  9. DevOps è un prodotto? 9

  10. DevOps is a culture, movement or practice DevOps is a

    term used to refer to a set of practices that emphasizes the collaboration and communication of both software developers and other information- technology (IT) professionals while automating the process of software delivery and infrastructure changes. DevOps represents a change in IT culture, focusing on rapid IT service delivery through the adoption of agile, lean practices in the context of a system-oriented approach. DevOps emphasizes people (and culture), and seeks to improve collaboration between operations and development teams. DevOps implementations utilize technology — especially automation tools that can leverage an increasingly programmable and dynamic infrastructure from a life cycle perspective. DevOps is the union of people, process, and products to enable continuous delivery of value to our end users. Wikipedia (2017) Gartner Microsoft (Donovan Brown) 10
  11. Evoluzione di Continuous Delivery… Source: Jez Humble © 2010 11

  12. …fondata sui principi Agile Individuals and interactions over processes and

    tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan http://agilemanifesto.org/
  13. «Le portate» Dove? Infrastructure-as-Code Cosa? Build & Package Come? Deploy

    13
  14. Ambiente di esecuzione Sistema Operativo Moduli S.O. Servizi locali, Librerie

    Applicazione Rete e Servizi esterni Dati 14
  15. Ambiente di esecuzione (alternativo) Base container Custom Container Applicazione (in

    container) Rete e Servizi esterni (e.g. Kubernetes) Dati 15
  16. Considerazioni sull’ambiente di esecuzione Tempi di allestimento Capacity planning Costi

    di esercizio 16
  17. Infrastructure-as- Code Azure Resource Manager • Codice • Automazione 17

  18. Infrastructure-as-Code – Considerazioni Dichiarativo o imperativo Version Control Continuous Integration

    Dinamico o Statico Azure Resource Manager Dichiarativo, Json-based Estendibile (script, DSC) Tutta l’infrastruttura AWS CloudFormation Dichiarativo, Json-based Docker Non cosi dichiarativo Livello di singolo container Swarm, Kubernetes, Mesos, … Ansible, Puppet, Chef, CFEngine, … 18
  19. Applicazione Pagina web con dati da DB • Ambiente •

    Configurazione 19
  20. Build & Packaging Raccogliere tutto quanto possa servire 20

  21. Build & Packaging – Considerazioni Version Control Continuous Integration Semantic

    Versioning Artifacts Immagini (Docker, AMI, Azure VM images) 21
  22. Deploy VSTS Release Management • Automazione controllata 22

  23. Password e chiavi (secrets) Build time Signing Deploy time Credentials

    Run time Tokens Avoid exposures git push hook Static analysis .gitignore Version Control centralizzato Repositories dedicati Azure Key Vault AWS Key Management Service 23
  24. Deploy – Considerazioni Categoria Dev / QA / Prod Integrato

    (dinamico) Frequenza di Rilascio Feature toggles 24 Source: Pete Hodgson
  25. Configurazione dinamica Feature Toggle 25

  26. Non abbiamo il tempo di parlare di Monitoraggio delle applicazione

    Risoluzione dei problemi Feedback verso Dev …e molto altro 26 Ops Dev
  27. Persone (Photo: DoD) 27

  28. Automazione (Photo: Alexander Dummer) 28

  29. Risorse 29 (Photo: User:Elya, Wikimedia)

  30. Call to action (Photo: Gorge Deep) 30

  31. Bibliografia & Riferimenti https://github.com/giuliov/DevOps-by-examples http://www.slideshare.net/giuliov/presentations http://martinfowler.com/articles/feature-toggles.html https://leanpub.com/build https://launchdarkly.com/ http://agilemanifesto.org/ https://azure.microsoft.com/en-us/services/application-insights/

    https://github.com/tfsaggregator/tfsaggregator https://github.com/aspnet https://azure.microsoft.com/en-us/services/key-vault/ https://aws.amazon.com/kms/ https://blogs.msdn.microsoft.com/buckh/2016/09/30/controlling-exposure-through-feature-flags-in-vs- team-services/ 31
  32. Bibliografia (2) Continuous Delivery: Reliable Software Releases through Build, Test,

    and Deployment Automation — J.Humble, D.Farley (Addison-Wesley) https://www.amazon.com/Continuous- Delivery/dp/0321601912/ The Phoenix Project — G.Kim, K.Behr, G.Spafford (IT Revolution Press) https://www.amazon.com/Phoenix-Project- DevOps-Helping-Business/dp/0988262509/ 32
  33. Bibliografia (3) The DevOps Handbook — G.Kim, P.Debois, J.Willis, J.Humble

    (IT Revolution Press) https://www.amazon.com/DevOps- Handbook-World-Class-Reliability- Organizations/dp/1942788002/ Continuous Delivery with Visual Studio ALM 2015 — M.Olausson, J.Ehn (Apress) http://www.amazon.it/Continuous-Delivery- Visual-Studio-2015/dp/1484212738/ 33
  34. Compiti per casa Dove tengo la configurazione Come aggiorno la

    configurazione Come separo configurazioni di sviluppo da produzione Dove tengo le chiavi segrete e chi vi ha accesso Come traccio le versioni Chi autorizza i cambiamenti e come Come conservo i Dati Come aggiorno schemi database e interfacce tra moduli Costruisco immagini o faccio il deploy via script Che finestre di rilascio ho Come traccio le attività e gli errori Come raccolgo informazioni dalla produzione 34
  35. Fine delle trasmissioni 35