Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

DevOps by examples - Continuous Lifecycle London 2017

318 views

Published on

DevOps by examples - Continuous Lifecycle London 2017
English including screenshots

Published in: Technology
  • Be the first to comment

DevOps by examples - Continuous Lifecycle London 2017

  1. 1. DevOps by examples Giulio Vian http://blog.casavian.eu/ giulio.dev@casavian.eu @giulio_vian http://www.getlatestversion.it/
  2. 2. 1990 1992 1999 2014 2010 2016 1995 freelance 2014 2015 TFS Aggregator ?
  3. 3. Most recent project © 2016 IMG Universe, LLC. All Rights Reserved 3
  4. 4. This Session 100/200-level Grasp the essentials of the DevOps approach. (well …, some essentials) Leave open questions to the end 4
  5. 5. What we will talk about? DevOps intro Demos Environment hosting the app The Application itself Deployment Dynamic configuration Wrap-up 5
  6. 6. Your turn Azure Visual Studio Team Services (VSTS) ASP.NET Linux (Ubuntu) 6
  7. 7. «Appetizer» 7
  8. 8. DevOps is a job? 8
  9. 9. DevOps is a product? 9
  10. 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. 11. Continuous Delivery evolution… Source: Jez Humble © 2010 11
  12. 12. …rooted in Agile Principles 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. 13. «Main course» Where? Infrastructure-as-Code What? Build & Package How? Deploy 13
  14. 14. Execution environment Operating System O.S. Modules Local Services, Libraries Application Network & External Services Data 14
  15. 15. Execution environment (alt) Base container Custom Container Application (in container) Network & External Services (e.g. Kubernetes) Data 15
  16. 16. Execution environment – Comments Setup times vs. launch times Capacity planning Running costs (Buy vs. Make) 16
  17. 17. Infrastructure-as- Code Azure Resource Manager • Code • Automation 17
  18. 18. Infrastructure-as-Code – Comments Declarative vs. Imperative Version Control Continuous Integration Dynamic vs. Static Azure Resource Manager Declarative Json-based Extensible (script, DSC) Entire infrastructure AWS CloudFormation Declarative Json-based Terraform Docker Not much declarative Single container Swarm, Kubernetes, Mesos, … Ansible, Puppet, Chef, CFEngine, … 18
  19. 19. Application Web page showing DB data • Environment • Configuration 19
  20. 20. Build & Packaging Collect everything 20
  21. 21. Build & Packaging – Comments Version Control Continuous Integration Semantic Versioning Artifacts Images (Docker, AMI, Azure VM images) 21
  22. 22. Deploy VSTS Release Management • Controlled Automation 22
  23. 23. Secrets Build time Signing Deploy time Credentials Run time Tokens Avoid exposures git push hook Static analysis .gitignore Centralized Version Control Distinct repositories Azure Key Vault, AWS Key Management Service, etc. 23
  24. 24. Deploy – Comments Category Dev / QA / Prod Integrated (dynamic) Release cadence Feature toggles 24 Source: Pete Hodgson
  25. 25. Dynamic Configuration Feature Toggle 25
  26. 26. Additional DevOps topics (out-of-scope) Application Monitoring Troubleshooting Feedback loop …and more 26 OpsDev
  27. 27. «Dessert» 27
  28. 28. People (Photo: DoD) 28
  29. 29. Automation (Photo: Alexander Dummer) 29
  30. 30. Resources 30 (Photo: Elya)
  31. 31. Call to action 31 (Photo: Francesco Canu)
  32. 32. Bibliografy & References 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/ 32
  33. 33. To know more 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/ 33
  34. 34. To know more (cont’d) 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.com/Continuous- Delivery-Visual-Studio-2015/dp/1484212738/ 34
  35. 35. Partial checklist Where is configuration stored? How is configuration updated? Is production configuration isolated and secured? Where are the secrets and who can access them? How versions are tracked? Who authorizes changes and how? How data is preserved on updates? How data schema and module interfaces updates? Using environment images or scripts? How big is the deploy window? How are the tracked activities and errors? How are operational data is collected from production? 35
  36. 36. Fine delle trasmissioni 36
  37. 37. Demo Screenshots 37
  38. 38. Infrastructure-as-Code
  39. 39. Azure Portal
  40. 40. Resource Groups
  41. 41. Resulting Resource Group
  42. 42. Visual Studio Team Services – Project home 42
  43. 43. Visual Studio Team Services Release Management
  44. 44. Create/Update Resource Group
  45. 45. Install packages
  46. 46. Environment creation in progress
  47. 47. Resulting Environment 47
  48. 48. Application 48
  49. 49. Version Control
  50. 50. Home page 50
  51. 51. Query “C” 51
  52. 52. Build & Packaging 52
  53. 53. Continuous Integration
  54. 54. Semantic Versioning
  55. 55. App build script
  56. 56. Deploy 56
  57. 57. App deploy script – Database
  58. 58. App deploy script – Copy files to Target
  59. 59. App deploy script – Run final setup script
  60. 60. App deploy – configuration data
  61. 61. App deploy – source packages
  62. 62. Deploying the app
  63. 63. Deploying the app – pick a version
  64. 64. App deploy log
  65. 65. App deployed 65
  66. 66. Dynamic Configuration 66
  67. 67. Toggle feature script – generate new config files
  68. 68. Toggle feature deploy script – deploy config changes
  69. 69. New configuration data

×