Join us to learn how EMC?s Isilon Storage Division has adopted salesforce.com best practices to better manage deployments on the Force.com platform. We'll also introduce the ?SfOpticon? tool, a custom-built, open-source solution which uses the Force.com Metadata API and Github to monitor, track, branch, package and deploy changes to our salesforce.com environments.
Scaling API-first – The story of a global engineering organization
Salesforce Release Management - Best Practices and Tools for Deployment
1. Salesforce Release Management
Best Practices and Tools for Deployment Efficiency
Matthew Roark, EMC2 Isilon Storage Division, Principal Application Developer
@lordwyrmsbane
Deb Weller, EMC2 Isilon Storage Division, IT Development Manager
@debdub
3. 2
All about EMC Isilon Storage Division
A Division of EMC2; Isilon Systems was acquired in 2010
• Founded in 2001
• World leader in scale-out NAS
• Salesforce.com customer since 2002
•
4. Salesforce.com history at EMC2 Isilon
▪ Salesforce was implemented in 2002
• System was owned and managed by the Sales team
• Usage grew across other teams (Marketing, Customer Support, Partners)
• Custom code implemented piecemeal by a variety of consultants
▪ IT inherited the “organically grown” instance in 2006
• Most users were systems admins
• Competing groups in the company had conflicting needs and interests
• No formal change or release management in place
5. First steps…
▪ Limit the number of system administrators
▪ Start tracking your changes in a systematic way
▪ Get your stakeholders to help prioritize projects
▪ No staff? Harness the power of admins in other departments
▪ Leverage native Salesforce tools for release management
• Sandboxes
• Cloud Deploy / Change Sets
7. Three critical best practices for SFDC
1. Use test-driven development
2. Use a source repository
3. Maintain a deployment pipeline
8. One Step Beyond…
Release engineering!
• Identifiable
•
Identify all of the source, environment, and other components in a particular release
• Reproducible
•
Integrate source, data, and deployment externals of a software system for better operational stability
• Accountable
•
Provide audit and accountability for software deployments
• Agile
•
Continuous integration! Iterative development! Distributed teams! Nirvana!
9. The biggest challenge
▪
*
▪ It’s difficult to merge changes across multiple SFDC environments
▪ We are a small team of developers
▪ Is there a way we can do this automatically?
* Image “borrowed” from http://soberbuildengineer.com/blog/2011/08/the-elevator-storyteller/
10. What we wanted in a tool
SFDC
Sandbox
SFDC
Sandbox
SFDC
Sandbox
Ch
ang
es
Changes
Changes
s
nge
ha
C
Commit
Github
SFDC
Production
12. SfOpticon
▪ Open source Ruby application released under the Apache license
▪ Developed by Ryan Parr and Josh Arenson
▪ SfOpticon
▪ Monitors your Salesforce environments and automatically synchronizes changes between environments
▪ Integrates with github and uses native SCM branching to track changes between environments
▪ Can rebase environments, merging changes using snapshot comparisons
▪ Did I mention it is open source?
https://github.com/ryanparr/sfopticon
15. Scan for changes
Query metadata
SFDC
Environment
Query last
metadata describe
Local DB
Diff
changes
Replay changes
into branch
Github
16. Merge and deploy changes
Create integration
branch off of
source branch
Return list of changed
files
Build
Manifest
Deploy manifest
Detect
conflicts
Github
Merge
integration
branch into
target branch
SFDC target
environment
• Because SfOpticon is aware of previous state, it can detect destructive changes and renames!
• Can be used to ‘rebase’ objects from any SFDC environment to any other environment
17. Demo
• Requirements for installing SfOpticon
• Creating a new production environment
• Branching a config environment
• Demonstration of SfOpticon change detection
• Demonstration of merging and deploying changes with SfOpticon
18. SfOpticon: future enhancements
• Certify additional metadata types
• Currently only supports ApexPages, ApexTriggers, ApexClasses, ApexComponents
• Integration with additional source control adapters
• E.g. subversion, local git, others?
• Update SfOpticon to allow for Heroku deployment
• Web- based interface in addition to command line
19. To get there, we need your help!
▪ SfOpticon is available on github
▪ https://github.com/ryanparr/sfopticon
▪ Open source under the Apache license
▪ Please download, use, and contribute to the project!
▪ Help us make this the next ‘must have’ tool for the Salesforce.com platform!
20. Ryan Parr
Deb Weller
Matthew Roark
Sr. Application Developer
IT Development Manager
@debdub
Principal Application
Developer
@lordwyrmsbane
Josh Arenson