deploying solution enhancements to production
DESCRIPTION
TRANSCRIPT
aras.comCopyright © 2013 Aras. All Rights Reserved.
DOMOREA C E 2 0 1 3
aras.comCopyright © 2013 Aras. All Rights Reserved.
A C E 2 0 1 3
Deploying Solution Enhancements to Production
Learn about Best Practices for deploying changes, extensions, or new solutions from development to production
aras.comCopyright © 2013 Aras. All Rights Reserved. Slide 3
Agenda
Deployment Challenges Getting Started
Environment Planning Terminology
Our Approach Tools that you need Walk through some example deployment scenarios Common Pitfalls
aras.comCopyright © 2013 Aras. All Rights Reserved. Slide 4
Deployment Challenges
How do you insure accurate deployments? How do you avoid regressions? How to manage parallel development? How do you keep environments in sync? How do you plan deployments?
aras.comCopyright © 2013 Aras. All Rights Reserved. Slide 5
Scenarios for Today
Moving enhancements to a production environment
Parallel or multi-resource development of a solution
Dev
Test
Production
Dev
GETTING STARTED
aras.comCopyright © 2013 Aras. All Rights Reserved. Slide 7
Getting Started
Establish your environment Establish your starting point or baseline Establish a source control plan Plan your deployment strategy Establish a validation plan
aras.comCopyright © 2013 Aras. All Rights Reserved. Slide 8
The Development Environment
3 Environments minimum Development
This is where you work Test/QA/Staging
Imports are tested here User validation is conducted here Should always reflect your
baseline to start Production
This is your baseline
Dev
Test
Production
aras.comCopyright © 2013 Aras. All Rights Reserved. Slide 9
Terminology Deployment Package
Complete set of all development changes Must be fully applied for proper deployment Typically contains full AML definitions Depends on a pre-defined Baseline
Patch Subset of development changes Provides for quick and pointed updates Can eliminate the need for a merge May contain AML snippets vs. full definition Must be applied in a particular order
Baseline A simple snapshot of system functionality Defines a starting point for development Doesn’t typically change during a development cycle
aras.comCopyright © 2013 Aras. All Rights Reserved. Slide 10
Importance of Baselines
Provides a solid foundation for the development / deployment process
New environments can be built using the baseline as a starting point
Eliminates the issue of a ‘Moving Target’
Critical for accurate deployments
aras.comCopyright © 2013 Aras. All Rights Reserved. Slide 11
Deploy
Development
Development
Deploy
Example Baseline
Standard Aras
Innovator
Development
New Baseline(Phase 2 Production System)
Target(Phase 1 Production System)
New Baseline(Phase 1 Production System)
Merge Point
aras.comCopyright © 2013 Aras. All Rights Reserved. Slide 12
Source Control Plan
Establish a system for how and where deployment packages will be stored Source control File server
Establish a naming convention for these packages Establish where the baseline will be stored Think about the sequence in which features will be
deployed
aras.comCopyright © 2013 Aras. All Rights Reserved. Slide 13
Plan your deployment
Determine how your solution will be deployed All at once Separate deployments
Deployment strategy can help define packaging Establish a validation plan
aras.comCopyright © 2013 Aras. All Rights Reserved. Slide 14
Validation plan
Defines how you will test for accuracy Define Test Strategy which includes:
Use Cases/Test Cases Test Data Test Environment How do we know when we are done?
Don’t underestimate this !
OUR APPROACH
aras.comCopyright © 2013 Aras. All Rights Reserved. Slide 16
Development & Packaging
Development Process
Plan Develop Build Deploy Test Rollout
Project PlansDeployment PlansTest & Validation strategyBaseline Established
Export PackagesBuild Cleanup scriptsPackage Code Tree ChangesBuild Custom DLLs
Run cleanup scriptsMerge activitiesImport packagesDeploy CodeTree ChangesDeploy Custom DLLs
Execute validation planRun test scripts
Repeat deployment steps in production
aras.comCopyright © 2013 Aras. All Rights Reserved. Slide 17
Deployment ProcessSingle Developer Solution
Export Package(s)
Compare to Baseline
Create Deployment Package(s)
Import into Test
Merge Conflicts
Plan Develop Build Test RolloutDeploy
PlanDevelop
Build
TestRollout
aras.comCopyright © 2013 Aras. All Rights Reserved. Slide 18
Deployment ProcessMultiple Developer Solution
Export Package(s)
Compare to Baseline
Create Deployment Package(s)
Import into Test
Merge Conflicts
Plan Develop Build Test RolloutDeploy
PlanDevelop
Build
TestRollout
Merge Development and Baseline
This is a 3 way Compare and Merge
aras.comCopyright © 2013 Aras. All Rights Reserved. Slide 19
Exporting Packages
Done using the Aras Export tool Use the same version of the Import/Export tools to
establish the baseline and export your development Use Tools like the Aras Customization report to assist
with packaging Usually best to export entire packages to help with
the merge process Export the same packages from development and
baseline
Export Package(s)
Compare to Baseline
Create Deployment Package(s)
Import into Test
Merge Conflicts
aras.comCopyright © 2013 Aras. All Rights Reserved. Slide 20
Comparing Baselines
Requires a good XML compare utility You need to understand AML and the significance of
changes Don’t ignore differences..
Make sure that you understand the reason for the diff. Use a 3 way compare tool when multiple
developers are involved
Compare to Baseline
Export Packages
Create Deployment Package(s)
Import into Test
Merge Conflicts
aras.comCopyright © 2013 Aras. All Rights Reserved. Slide 21
Merging Conflicts
The focus is CONFLICT Resolution A difference is not necessarily a conflict
A conflict could be: An AML element that differs from the baseline AML elements that wont produce the same result
The Aras Import tool will merge changes that are not conflicted
Merge Conflicts
Export Packages
Create Deployment Package(s)
Import into Test
Compare to Baseline
aras.comCopyright © 2013 Aras. All Rights Reserved. Slide 22
Creating a Deployment Package
May require some scripts for pre-processing Deleting items Versionable items
Should be a full and complete package in most cases There are some cases for delta files and patches
Name package in accordance with your plan Store the package in the defined location Notify the team
Create Deployment
Package
Export Packages
Merge Conflicts
Import into Test
Compare to Baseline
aras.comCopyright © 2013 Aras. All Rights Reserved. Slide 23
Importing into Test
Target system MUST be equivalent to the baseline Execute any pre-processing scripts Import the deployment package using the Aras Import
Tool Move on and execute your validation plan When Issues are Identified:
Fix them in Development and repeat Patching test is OK but you should repeat the whole process
to simulate the deployment process
Import into Test
Export Packages
Merge Conflicts
Create Deployment
Package
Compare to Baseline
aras.comCopyright © 2013 Aras. All Rights Reserved. Slide 24
Synchronizing Environments
Dev 1
Dev 2
Test
Prod
Check In / Out
SourceControl RefreshBuilds /
Patches
TOOLS THAT YOU NEED
aras.comCopyright © 2013 Aras. All Rights Reserved. Slide 26
Tools – Source Control
GIT CVS SourceSafe Subversion File System Etc.
aras.comCopyright © 2013 Aras. All Rights Reserved. Slide 27
Tools -XML Diff / Merge
Beyond Compare Altova DiffDog KDiff3 Etc.
aras.comCopyright © 2013 Aras. All Rights Reserved. Slide 28
Tools – Aras
Import / Export Move solution items between environments via AML
Console Upgrade Command line version of Import / Export Tools
Nash Apply AML directly to the Innovator Server
AML Studio Similar to Nash, but with intellisense. Community Solution
EXAMPLES
aras.comCopyright © 2013 Aras. All Rights Reserved. Slide 30
Example – Simple ChangeSingle Developer
Add new field to existing Part Form:
aras.comCopyright © 2013 Aras. All Rights Reserved. Slide 31
Deployment ProcessSingle Developer Solution
Export Package(s)
Compare to Baseline
Create Deployment Package(s)
Import into Test
Merge Conflicts
Plan Develop Build Test RolloutDeploy
PlanDevelop
Build
TestRollout
aras.comCopyright © 2013 Aras. All Rights Reserved. Slide 32
Compare AML Baseline vs Development
Baseline DevelopmentBeyondCompare
aras.comCopyright © 2013 Aras. All Rights Reserved. Slide 33
DeployImport Tool Nash / AML Studio
Test / Production
OR
aras.comCopyright © 2013 Aras. All Rights Reserved. Slide 34
Verify
aras.comCopyright © 2013 Aras. All Rights Reserved. Slide 35
Example 2 - A two developer Scenario
Developer 2 - Change Label, Name of field
Developer 1 – Adds ‘Weight’ fieldTwo Developers working in parallel make changes to the same Form. Changes are made in separate environments
aras.comCopyright © 2013 Aras. All Rights Reserved. Slide 36
Deployment ProcessMultiple Developer Solution
Export Package(s)
Create Deployment Package(s)
Import into Test
Plan Develop Build Test RolloutDeploy
PlanDevelop
Build
TestRollout
Merge Development and Baseline
aras.comCopyright © 2013 Aras. All Rights Reserved. Slide 37
Development & Baseline CompareFirst Difference
Baseline Developer 1 Developer 2
KDiff3
Developer2 has modified the label and name
Developer 1 has not changed the baseline here
This is a DIFFERENCE but not a CONFLICT
No Merge Required!
aras.comCopyright © 2013 Aras. All Rights Reserved. Slide 38
Development & Baseline CompareSecond Difference
Baseline Developer 1 Developer 2
KDiff3
Developer 1 has added the Weight field to the form
Developer 2 has not changed the baseline here
This is a DIFFERENCE but not a CONFLICT
No Merge Required!
aras.comCopyright © 2013 Aras. All Rights Reserved. Slide 39
DeployImport Tool Nash / AML Studio
Test / Production
OR
aras.comCopyright © 2013 Aras. All Rights Reserved. Slide 40
Verify
aras.comCopyright © 2013 Aras. All Rights Reserved. Slide 41
Example of a conflictBaseline Developer 1 Developer 2
KDiff3
Developer2 has modified the label and name
Developer1 has also modified the label and name
This is a CONFLICTMerge Required!
aras.comCopyright © 2013 Aras. All Rights Reserved. Slide 42
Handling Special Cases Special cases include:
Handling Deletes
Edit properties or relationships from items in other packages
You can execute custom AML during the import process Place AML files in a folder with any name
‘Fixes’ for folder name is best practice
Files are processed by name in alphabetical order
Fixes are executed at the end of the import process Pre-Processing can be done by using multiple packages
Copy snippets of AML during Diff Analysisas a starting point
Patches can be created by editing the exported AML
aras.comCopyright © 2013 Aras. All Rights Reserved. Slide 43
Common Pitfalls Manual changes directly in Test or Production
Lack of source control
Deferring deployment planning too late in the project
Insufficient Team Communication
Waiting too long to synchronize environments
Too many manual deployment steps
Failure to adjust baseline if changed during project
aras.comCopyright © 2013 Aras. All Rights Reserved.
A C E 2 0 1 3
Questions?