Salesforce Release Management - Best Practices and Tools for Deployment
Upcoming SlideShare
Loading in...5
×
 

Salesforce Release Management - Best Practices and Tools for Deployment

on

  • 451 views

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 ...

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.

Statistics

Views

Total Views
451
Views on SlideShare
451
Embed Views
0

Actions

Likes
1
Downloads
19
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Salesforce Release Management - Best Practices and Tools for Deployment Salesforce Release Management - Best Practices and Tools for Deployment Presentation Transcript

  • 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
  • 2 Salesforce @ EMC Isilon Deb Weller IT Development Manager @debdub
  • 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 •
  • 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
  • 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
  • Beyond Release Management Matthew Roark Principal Application Developer @lordwyrmsbane
  • Three critical best practices for SFDC 1. Use test-driven development 2. Use a source repository 3. Maintain a deployment pipeline
  • 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!
  • 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/
  • 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
  • Introducing SfOpticon Matthew Roark Principal Application Developer
  • 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
  • Setup repository Query metadata SFDC Production Store metadata describe Local DB Create repository Clone to local Github
  • Create Branch Query metadata describe SFDC Sandbox Store metadata describe Local DB Create branch Clone to local Github
  • Scan for changes Query metadata SFDC Environment Query last metadata describe Local DB Diff changes Replay changes into branch Github
  • 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
  • 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
  • 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
  • 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!
  • Ryan Parr Deb Weller Matthew Roark Sr. Application Developer IT Development Manager @debdub Principal Application Developer @lordwyrmsbane Josh Arenson