How mature is your release process? We would like to think that we have almost forgotten about the times when state-of-the-art release process involved only ANT, few sandboxes and version control system. The truth is, many Salesforce projects still do not care about sfdx cli, are reluctant to try out scratch orgs and automated testing is considered too much hustle. In the modern world, an efficient DevOps strategy is key to an agile, but robust release process.
Not many materials exist to help set up advanced Devops process for Salesforce. Come and learn about what are the different areas that should be considered when designing a great release process, but also what are the different stages of advancement for each of those areas. Do you need to develop everything in-house? Or maybe use some existing frameworks? Or maybe there are feature-full solutions that you can just deploy? Let’s discuss methods that can be applied in different environments to find out the best strategy to get from where you are now to reach a desired ambition level of improvement and efficiency.
2. #CD22
What I do:
- Project leading
- Architecture design
- Development
- Board games
What I don’t do:
- Things I don’t have time for
Salesforce Solution Architect
at Aquiva Labs
4. #CD22
What is DevOps?
❞DevOps is the combination of cultural philosophies, practices, and tools
that increases an organization’s ability to deliver applications and services at
high velocity: evolving and improving products at a faster pace than
organizations using traditional software development and infrastructure
management processes. This speed enables organizations to better serve their
customers and compete more effectively in the market.
Source: https://aws.amazon.com/devops/what-is-devops/
11. #CD22
Development Environment Setup
Up-to-date metadata
Level 1
Static data setup
Level 2
Dynamic, production-based
data setup
Level 3
Possible solution for static setup:
- sfdx force:data:tree:import
- SF Data Migration Utility Tool 💗
- Apex Classes
Possible solution for dynamic setup:
- sfdx force:data:tree:import
- SF Data Migration Utility Tool 💗
12. #CD22
Version control
TO HAVE one
Level 1
Use Git
Level 2
Use a sensible* Git flow
Level 3
Try declarative version
control, like Flosum or Copado
Feasible
Alternative
…Changesets are NOT version control and
neither is your Dev Lead laptop’s dedicated folder.
13. #CD22
Handling changes
Use Pull Requests
Level 1
Have Code Reviews
Level 2
Have process for production
changes retrieval
Level 3
14. #CD22
Code review process
Enforcing checks
Level 1
Validate code & run tests
Level 2
Run static code analysis
- Apex PMD
- SFDX Scanner
- Clayton
Level 3
15. #CD22
Code review process - bonus points
Selective test/validation run
Bonus 1
Whole team is engaged in the
process
Bonus 2
Integration with your internal
communicator
Bonus 3
21. #CD22
Salesforce Devops Maturity Matrix
Area Level 1 Level 2 Level 3
Development Envs Architecture Sandboxes Sandbox per developer Scratch orgs
Development Envs Setup Up-to-date metadata Static data setup Dynamic data setup
Version control Have it Use Git Use Git flow
Handling code changes Pull requests Perform Code Review Retrieve production changes
Code review process Enforce checks Validate code & run tests Static code analysis
(Continuous) Deployment Deployment of merges Deployment of profiles Deployment of manual steps
Testing By devs By testers By automates
Production Metrics Handling reported errors Error logging framework Dashboard
23. #CD22
Salesforce Devops Maturity Matrix
Area Level 1 Level 2 Level 3
Development Envs Architecture Sandboxes Sandbox per developer Scratch orgs
Development Envs Setup Up-to-date metadata Static data setup Dynamic data setup
Version control Have it Use Git Use Git flow
Handling code changes Pull requests Perform Code Review Retrieve production changes
Code review process Have it Validate code & run tests Static code analysis
CI/CD Deployment of merges Deployment of profiles Deployment of manual steps
Testing By devs By testers By automates
Production Metrics Handling reported errors Error logging framework Dashboard
✅
✅
✅
✅
✅
✅
✅
✅
✅
✅
✅
✅
🐾
🐾
🐾
🐾
24. #CD22
“It matters not much whether we actually achieve our highest
ideals so be it that they are high” - Robert Baden-Powell
Will I ever reach greatness?
25. #CD22
- Great repository of SFDX plugins:
https://github.com/mshanemc/awesome-sfdx-plugins
- Official Salesforce space dedicated to Architects:
https://architect.salesforce.com/
- Books! E.g. “Mastering Salesforce DevOps” by Andrew Davis
If you lack motivation, check resources!
Describe in view words what are devops phases and how does it work, to have some common understanding
Reference the popular myth, that the only real holy grail is continuous delivery.
Devops is not a huge staircase with production based CI/CD on top
Good approach to Devops as similar to approach to healthy lifestyle. Just because you don’t sleep regularly doesn’t mean there is no benefit to you eating high quality food. Lack of exercise doesn’t disregard the benefits of good sleep schedule. Also, each of elements of healthy lifestyle has its own levels of progress. Excluding fast food from your diet is a progress. Including vegetables & fruits is a progress. So, the question is - what does Devops Healthy Lifestyle consist of, and what are the different steps to improve each part?
Let’s start with something obvious - version control. So, what are the levels of mastery i
Let’s start with something obvious - version control. So, what are the levels of mastery i
Let’s start with something obvious - version control. So, what are the levels of mastery i
Let’s start with something obvious - version control. So, what are the levels of mastery i
Let’s start with something obvious - version control. So, what are the levels of mastery i
Let’s start with something obvious - version control. So, what are the levels of mastery i
Testing and delivery processes are tangled. You cannot deliver constantly without testing constantly. So, what are your options?
Mention salesforce production changes
Testing and delivery processes are tangled. You cannot deliver constantly without testing constantly. So, what are your options?
Mention salesforce production changes
Testing and delivery processes are tangled. You cannot deliver constantly without testing constantly. So, what are your options?
Mention salesforce production changes