  Adopting DevOps practices is nowadays a recurring task in the industry.
DevOps is a set of practices intended to reduce the friction between the
software development (Dev) and the IT operations (Ops), resulting in higher
quality software and a shorter development lifecycle. Even though many
resources are talking about DevOps practices, they are often inconsistent with
each other on the best DevOps practices. Furthermore, they lack the needed
detail and structure for beginners to the DevOps field to quickly understand
them.
  In order to tackle this issue, this paper proposes four foundational DevOps
patterns: Version Control Everything, Continuous Integration, Deployment
Automation, and Monitoring. The patterns are both detailed enough and
structured to be easily reused by practitioners and flexible enough to
accommodate different needs and quirks that might arise from their actual usage
context. Furthermore, the patterns are tuned to the DevOps principle of
Continuous Improvement by containing metrics so that practitioners can improve
their pattern implementations.
