Originally published by New Context.
鈥
We鈥檝e been discussing continuous integration and continuous delivery (CI/CD) for a couple of articles now. We鈥檝e talked about testing throughout the CI/CD pipeline and some best practices. This should provide you with a solid foundation to move forward with your CI/CD implementation. In this concluding article, we are going to talk a bit about the philosophy behind CI/CD, provide you with some encouragement on this long and winding road, and help walk you through your migration.
鈥
Continuous integration and continuous delivery (CI/CD) is a methodology of automatically building and deploying code in order to provide you with greater speed and reliability. It is done in two parts: continuous integration (CI) and continuous delivery (CD). Continuous integration is the practice of continually integrating code into the main branch of your repository, automatically testing it. Continuous delivery is then getting your code to a deliverable state so that it can be deployed at the push of a button. Or, in the case of continuous deployment, automatically deploying your code if all tests pass.
鈥
So why should you care? This CI/CD methodology allows your developers to quickly get tested and proven code into production by removing barriers through automating testing, approvals if tests pass, security scanning, notifications, and more. It shouldn鈥檛 take longer to merge changes than it takes to make the changes. The fully automated CI/CD approach addresses many of the manual hurdles.
鈥
But CI/CD isn鈥檛 just a methodology. It鈥檚 a mentality. It鈥檚 approaching problems with automation in mind, not allowing manual deployments, ensuring that tests run, dash; and pass! It is speed and efficiency. It is knowing your code is going to work, being able to quickly fix it when things break, and sleeping well at night. In this brief article, we will wax philosophical about CI/CD and walk you through your migration to the CI/CD mentality.
鈥
CI/CD is not a destination; it鈥檚 a goal. Even when you have a CI/CD methodology and workflow established that everyone is following, you鈥檒l find some other improvement or change that needs to happen to your CI/CD framework. This is okay. This is part of the process, and understanding that this is a process and not a destination will help you keep your sanity.
鈥
As you go through the migration to a CI/CD mindset, it鈥檚 important to keep in mind that CI without CD is incomplete. The end goal is speed and reliability which we achieve through automation. CI only solves the first half of that problem. A robust CI process is infinitely better than nothing, but even with your code automatically integrated, it still hasn鈥檛 been deployed anywhere. Remember, CI/CD is not a destination. You鈥檒l always be working toward a better solution. Don鈥檛 plateau. Don鈥檛 get discouraged.
鈥
If this space is new to you or you鈥檙e just starting to think about your CI/CD workflow, it鈥檚 important to understand that you鈥檙e not going to magically be there. It鈥檚 going to take planning and various stages of work. So figure out what you want to accomplish first and prioritize that. There are absolutely some best practices that you鈥檒l want to follow, but best practices are just theory; you are going to have edge cases and special considerations that you鈥檒l need to determine how to best implement in your environment. Start small, prioritize what needs to be done, and work toward a fully-implemented CI/CD pipeline that eventually includes functional testing, integration testing, performance and security monitoring, and automated deployments.
If you鈥檝e been using a CI/CD workflow for years, there are still plenty of questions to ask yourself, including:
These are just some of the questions you can consider to help improve your existing workflow. This is also where value-stream mapping becomes invaluable.
鈥
Your journey into CI/CD is never over. But once you lay the foundation for a proper workflow, the forthcoming pieces will fall more naturally into place. The biggest hurdle is mindset. Take your time, plan it out, figure out what to prioritize, make it happen, and move on to the next bit. You might find yourself asking questions about CI/CD. How do I implement it? How can we improve our existing pipeline? While reading this article, maybe you鈥檝e caught yourself saying, 鈥淢y environment is different; can I do it there?鈥 Don鈥檛 worry. This is something you can do. And there are always experts out there to answer any questions you have, to provide guidance, to help you migrate to a CI/CD mentality. If you have any questions or would like to know more about your next steps contact us below.听
听
Level up your Salesforce DevOps skills with our resource library.