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 Salesforce online training 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
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.
2. Environments not in sync
- Environments quickly get out of sync. Refreshing takes time, deployments have errors.
3. 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.
4. 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 B – A Parallel Development Release Branching Model
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
- 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
- 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
- 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 online training Hyderabad regression testing scripts and automated code review tools to DevOps pipeline.
