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.

Zero To DevOps - Source Control and Release Strategy for Dynamics 365 Solutions - Crm Saturday 2017

724 views

Published on

Zero To DevOps - Source Control and Release Strategy for Dynamics 365 Solutions - Crm Saturday Melbourne 2017 Slide Deck

Published in: Software
  • Be the first to comment

  • Be the first to like this

Zero To DevOps - Source Control and Release Strategy for Dynamics 365 Solutions - Crm Saturday 2017

  1. 1. Zero to DevOps - Source Control and Release Strategy for Dynamics 365 Solutions Shane Carvalho Consultant | Dynamics 365 | Oakton
  2. 2. Hi! I’m Shane Carvalho • Geek. Developer. Blogger. • Mobile to multi-tenant SASS solutions in the .NET ecosystem. • Dynamics CRM 4  Dynamics 365. • Passion for ALM and DevOps. • Automate everything!!!
  3. 3. nullfactory.net github.com/shanec- @shanec_ Hi! I’m Shane Carvalho
  4. 4. VehicleBookingModule_1_0_0_0_20170102.zip VehicleBookingModule_1_0_0_0_20170217.zip VehicleBookingModule_1_0_0_0_20170320.zip VehicleBooking.Plugins VehicleBooking.Workflows
  5. 5. But, wouldn’t it be nice to … • Automatically maintain a history of what went into a release? • What new features were included? • What bugs were fixed? • To have a single source of truth (not dependent on a CRM instance) • Rebuild your custom plugin/workflow assemblies – inject them into your CRM solution as part of a single build. • Rollback individual artifacts or commits. • Compare differences between releases. • Automate the entire deployment a CRM solution with the click of a button?
  6. 6. The Solution SolutionPackager.exe Official CRM SDK Individual Parts
  7. 7. The Solution SolutionPackager.exe Official CRM SDK Individual Parts
  8. 8. The Solution Project Structure SolutionPackager.exe Official CRM SDK Visual Studio Solution Official CRM SDK via NuGet Packages Helper Scripts (via Microsoft.Xrm.Data.PowerShell module)
  9. 9. Source Control – Build Definition The Solution Project Structure SolutionPackager.exe Official CRM SDK Visual Studio Solution Official CRM SDK via NuGet Packages Deployment – Release Definition Helper Scripts (via Microsoft.Xrm.Data.PowerShell module)
  10. 10. Source Control – Build Definition The Solution Project Structure SolutionPackager.exe Official CRM SDK Visual Studio Solution Official CRM SDK via NuGet Packages Deployment – Release Definition Scaffolding via Yeoman generator (generator-nullfactory-xrm) Helper Scripts (via Microsoft.Xrm.Data.PowerShell module)
  11. 11. Development Environment CRM Developer – Technical CRM Developer – Functional CRM Developer – Technical Build / Release Manager CI Build “Release” Build Deploy to UAT UAT Environment Pull Solution Typical Application Lifecycle Apply Versioning
  12. 12. The Challenge - Demo Development Environment UAT Environment VSTS using Git Team Build Release Management
  13. 13. Now, what does this mean?
  14. 14. No more “Golden” CRM Instance Deployment is not dependent on a source CRM Instance
  15. 15. A Single Source of Truth April 3.0x Release Bug Fix #10 Feature X Partial Feature X Done Sprint 4 QA Release Point in Time / Commits The Repository is the Source of Truth
  16. 16. A standard way of storing and managing projects across the organization. Project A & B Developer Project C Developer Project A Project B Project C Consistent way of Managing Projects
  17. 17. Traceability User Story / Feature Task Bug CommitAssociated with MS Build Commit Task Commit Task Commit Commit Commit Commit Build 1 Build 2 Build 3 Automatically maintain a history of what went into a release. Associated with Associated with Associated with
  18. 18. Quality of Artifacts – Integrity of Solution Ensure that your product can be built and deployed at any given time MS Build Continuous Integration / Scheduled (nightly) Build Commit Trigger 3AM Week Nights Continuous Deployment Release Success Success Automated
  19. 19. Consistently Reproducible Deployments QA UAT PROD
  20. 20. Form of Documentation VSTS Release Documentation Environment Specific Configuration Deployment Steps + Secure Configuration
  21. 21. Dynamics 365 Environment Visual Studio Team Services VSTS MS Build VSTS Release Repository Build + Test Release Bring Your Own Infrastructure
  22. 22. Deployment Guy Authorise Releases QA Release Approver UAT Release Manager or Approvers Group
  23. 23. Things to keep in mind… Dependence on the SDK tools Buy-In of the team Not a silver bullet You still have to follow the best practices when developing and deploying CRM Solutions. DevOps is people following a process enabled by products to deliver value to our end users. – Donovan Brown
  24. 24. More information available at http://nullfactory.net generator-nullfactory-xrm [https://github.com/shanec-/generator-nullfactory-xrm] http://nullfactory.net http://github.com/shanec- Thank You DesignedbyFreepikfromwww.flaticon.com programmerbyChanutisIndustriesfromtheNounProject designedbyfromFlaticon
  25. 25. Thank you
  26. 26. Step1 Visual Studio Solution Scripts + Toolset Generate scaffold Demo Recap – Scaffolding
  27. 27. Pull-CrmSolution.ps1 SolutionPackager.exe Plugins Project Workflows Project Web resources Project Development Environment Export Step2 Repository Visual Studio Solution Demo Recap – The Setup
  28. 28. Build SolutionPackager.exe Step3 Repackage Managed.zip Unmanaged.zip MS Build Step4 Testing Environment Deploy-CrmSolution.ps1 Release Management Demo Recap – Build and Release

×