Introduction to CI/CD
CI and CD are often grouped in discussions around software development life cycles or software engineering best practices. However, CI and CD are distinct concepts with their own sets of best practices, challenges, and goals. This section will not attempt to cover the broad subject of CI and CD, but it is essential to talk about a few concepts and ideas to have a discussion that applies to serverless architectures and systems.
Most of these ideas were born out of the Agile and Extreme Programming (XP) communities. While these are not hard rules that every team needs to follow, they do come from groups of people who were looking to solve real-world problems. Adopting these practices can help any team and any project, whether the project is serverless or not.
CI
CI is the process of merging code changes into a mainline branch (for example, often a master
branch if using Git) early and often. Before a merge from a development branch to a master branch, some preconditions...