Skip to main content Skip to Footer

BLOGS


Nicholas Gulrajani
Nicholas Gulrajani
October 24, 2017

DevOps applied to Salesforce.com is a different beast—know the challenges

DevOps as applied to Salesforce.com (SF.com) development is a different kind of animal—there are a number of challenges to address and guiding principles toward success.

It’s not a typical Java (Maven-Jenkins) based software development. It’s about managing changing object configurations and releasing them and it is less about writing code, as one would with Java.

To a degree, however, the Apex development environment must not be ignored (see link below).

These are common challenges in software development and release management.

  1. Low confidence in testing


Low confidence in testing
  • New and untested deployments for every request between environments.

  • Testing suffers when environments differ, resulting in defects and production issues.

  • Loss of confidence in testing results when environments are different, leading to defects and re-work.


  1. Environments not in sync


Environments not in sync
  • Environments quickly get out of sync. Refreshing takes time, deployments have errors.


  1. Deployment challenges


Deployment challenges
  • Manual deployments are a bottleneck across projects and test phases.

  • Developers directly update environments, leading to missed deployment steps.

  • Future Releases built on an old Production refresh requires additional testing and deployment time.


  1. Maintenance issues


Maintenance issues
  • Go-Live is painful with hundreds of manual steps and 8+ hour outage windows.


Managing multiple environments and multiple project work streams also pose hurdles (for example, Prod Hot Fix, R1 Major Release, R2 Major Rel, Features 1 and 2 Releases with varying degrees of Prod Envs).

Please see Table below in Exhibit A and a Proposed Branching Model in Exhibit B.


Exhibit A 

Exhibit B – A Parallel Development Release Branching Model


Exhibit B

Your odds of success will be enhanced if you account for the following:

  • Source code version control

  • A change of history that is visible to all team members

  • Ability to alert developers if there is a code conflict

  • Enforcing test classes to be run in sandboxes so that test class issues can be discovered at an early stage

  • Ability to roll back to a previous point

  • Ability to roll back specific changes

  • Allow weekly (possibly daily) deployments

  • Ensure that the Release Management Team can manage deployments

  • Ensure that the workflow is not too complicated for Delivery Teams

  • Ability for releases to be initiated by Delivery Team Leads

  • Release Management Team can use the same releases created by Delivery Team Leads for deployments


DevOps Success Criteria

Milestone 1: Establish Source Code Control

Milestone 1: Establish Source Code Control 
  • Establish Git Repository as “golden source” of entire solution, both code and configuration.

  • Bring governance and transparency to the code review process.

  • Achieve environment consistency with dynamic, repeatable deployments to every environment.


Milestone 2: Empower the Developers


Milestone 2: Empower the Developers 
  • Provide real-time deployment validation feedback to developers with any deployment errors.

  • Empower the developer to resolve their own issues, rather than back-and-forth with an environment manager.

  • Keep the release branches 100 percent deployment-ready as errors are never committed.


Milestone 3: Continuous Deployment Lifecycle


Milestone 3: Continuous Deployment Lifecycle 
  • Automated, immediate validations and deployments when code is merged.

  • On-demand, triggered, and scheduled deployments to keep any number of environments in-sync.

  • Add Selenium regression testing scripts and automated code review tools to DevOps pipeline.


In conclusion, developing in the SF.com with DevOps is more about managing configurations and less about coding. To a degree however, there is Apex environment which must not be ignored. Read more details here.

Get the biggest stories of the week, delivered to your inbox.

Archive