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

Cloud Ready DevOps Using Azure and VSTS

Cloud Ready DevOps Using Azure and VSTS

The presentation is about some core DevOps Concepts and how VSTS - Visual Studio Team Services, a Microsoft Azure offering, implements these concepts

Avatar for Dinesh Pillai

Dinesh Pillai

May 02, 2018
Tweet

More Decks by Dinesh Pillai

Other Decks in Technology

Transcript

  1. What is DevOps? “DevOps is the union of people, process,

    and products to enable continuous delivery of value to end users.”
  2. 12 Factor App  Factor 1: Codebase  Factor 2:

    Dependencies: explicitly declaring and isolating dependencies  Factor 3: Config – environment specific variables in config  Factor 4: Backing Services: DB, File share etc.  Factor 5: Build, Run, Release: Separate the Build and Run stages  Factor 6: Stateless Processes: Mutability  Factor 7: Port Binding - exporting services via port binding  Factor 8: Concurrency – Horizontal scalability  Factor 9: Disposability - start up and take down fast  Factor 10: Dev-Prod Parity  Factor 11: Logs – Centralized logging  Factor 12: Admin Processes – Monitoring, or any other portal to manage resources
  3. Good Reads “If it hurts, do it more frequently, and

    bring the pain forward.” - Jez Humbl “The earlier you catch defects, the cheaper they are to fix.” ―David Farley
  4. Best Practices of CI/CD • URIs & Versioning • Expand/Contract

    • Blue-Green Incremental Low Risk Releases • Dark Launches • Feature Toggles Decouple Deployment and Release • Frequent, small Releases vs Infrequent Large Releases Reducing Batch Size • BMW vs Jeep • mean time between failures (MTBF) vs mean time to restore service (MTRS) • Chaos Monkey Optimize for Resilience
  5. VSTS Basic Architecture for CI/CD Dev Machines Code Repository Build

    Definition Release Definition Agents Target Environments
  6. VSTS Recommended Architecture Environments Code Repo Build Definition Release Definition

    Build Artifact Repo Test Servers Production Servers UAT Servers Mobile Devices Build & Release Agents - Shared Dev Machines MAC Build Agents Cloud/OnPrem Servers On Prem\Cloud\Hosted VSTS
  7. Demo  Agile/Work item Tracking  Code Repo  GIT

     Pull Requests  TFVC  Artifact Repo  Build and Release agents  Agent configuration  Supported scripting languages  Variables
  8. Demo: Creating builds using VSTS Build Activities Define a Build

    Attach the definition to a code base Add Build Tasks Output: Build Definition Building Output: Build Artifact
  9. Demo: Deployment using VSTS Release Activities Define a Release Attach

    a build definition Create Environments Release a good build/Create a Release Deploy to Test env Deploy UAT Deploy to PROD
  10. Demo: Other features  Build and Release Tasks  Build

    and release retention policies  CI and CD triggers  Third-Party Tasks  Custom Tasks  VSTS Extensions  Integration to other tools/technologies/platforms:  Azure  Jenkins  Docker  Maven  Xcode  Android  Sonarcube  VSTS Rest APIs
  11. CI/CD Maturity Levels/Road map: •All manual Level 0 •Some automation

    outside VSTS Level 1 •Code & Build in VSTS •CI Level 2 •CD till UAT •Automated Unit tests • Starts automated Functional & regression test cases Level 3 •Solid automated test suites •TDD •Automated roll backs Level 4 •DB deployments •Automate repetitive tasks: Eg: ITIL Change management •More code quality tools •More feedback: Performance & security Level 5 •Refactor apps to accommod ate smaller changes Level 6 •Make application s infrastruct ure independe nt •Automate infrastruct ure Level 7 •Commits to master branch •Elastic scaling up and down •Business to release and roll back Level 8
  12. Reference  VSTS Build and Release: https://docs.microsoft.com/en-us/vsts/build- release/  VSTS

    APIs: https://www.visualstudio.com/en-us/docs/integrate/api/overview  12 Factor App: https://12factor.net/  https://docs.microsoft.com/en-us/azure/devops/what-is-devops