Handwritten Text Recognition for manuscripts and early printed texts
Continuous Delivery with Dynamics CRM - CRMUG Webinar 2014
1. Continuous Delivery with
Dynamics CRM
Deliver business value more frequently in
a consistent and reliable manner
Wael Hamze
CRM Architect
2. @CRMUG
Agenda
▪ Manual Approach
▪ What is Continuous Delivery?
▪ Build Automation
▪ Deployment Automation
▪ Test Automation
▪ Release Automation
▪ Questions?
3. @CRMUG
Challenges and Issues
• Manual
• On Developer Workstation
Builds
• Manual
• Lots of documentation
Deployments
• Manual
• Lots of scripts
Testing
• No well defined process
• No ALM tools
Processes
• Inconsistencies
• Wasted time and
effort
• Long releases
• Long cycles
• Faulty
Deployments
4. @CRMUG
What is Continuous Delivery?
▪ Delivering small changes more frequently
▪ Continuous business value
▪ Ability to release every single successful
change to production
▪ One-click deployments
▪ Makes Agile methodologies possible
▪ Happy teams and customers
5. @CRMUG
What does it take?
Consistent
Repeatable
Fast
Build
Deploy
Test
Release
Build Deployment Test Release
7. @CRMUG
Build Architecture
TFS
TFS Database
Build
Communicate
Build Service
Build Controller
Build Agent Build Agent
Store
Drop Location
Copy Packages
-Download Binaries
-Download Source
-Store Build Info
Build Server
Software Dependencies
Custom Assemblies
Queue Build
Process
Visual Studio
installed on
Build Server
Required by Build
Definition & Loaded
from Source Control
Coordinates
Build
Does the
Build
Build Definition
stored in Source
Control
Project Collection
-Source Control
-Build Information
-Work Items
-Test Runs
-CRM Solutions
-Dependencies
8. @CRMUG
CRM Online Build
• Requires CRM Server
• CRM is the golden source
• Works well with one stream of work & one shared server
• Store whole package in source control for reference
• No way to track changes to customisations
CRM Development
Source Files
Compile
CRM Solution
Components
-Plug-ins
-Workflow Assemblies
-Web Resources
-XAML Workflows
Deploy & Publish
CRM
Solution
Export
Developer
Customise
10. @CRMUG
CRM Solution Packager
• Tool provided by the CRM SDK UR10
• Allows to extract the whole Solution Package into individual
files that can be tracked in source control
• Allows to re-create the Solution Package back from the
Extracted files
• Allow team development and merging customisations from
different sources
11. @CRMUG
CRM Offline Build
• Does not require a CRM Server
• Source Control is the golden source
• Works well with parallel work streams & multiple environments
• Store unpacked customisation files in source control
• Track changes to customisations in source control
14. @CRMUG
Automation Stack
Windows OS + .NET
File System
IIS
Third
Party
Hyper-V
Azure
SQL Server
Dynamics
CRM
API
(Web Services, COM, .NET)
PowerShell
(Cmdlets, Scripts, Modules)
Release Automation Tools
(TFS, InRelease, Nolio)
19. @CRMUG
Test Automation
▪ Run Automated Tests
frequently as part of
your Builds
▪ Favour Context
Driven Tests over full
Regression packs
▪ Fix defects as soon
as possible
Manual
Functional
Integration Tests
Unit Tests
20. @CRMUG
Target State – End to End CD
• Source Control
• Automated Build
• Project Management
• Test Management
• Automated Deployment
• Approval Gates
• Release Pipeline
• Environment Management
• CRM Build Template
• CRM PowerShell Cmdlets
• Samples
CI Framework
• Dynamics CRM
SDK Services