Foreword
When we began writing Continuous Delivery in Java in 2017, both Abraham Marín-Pérez and I knew that DevOps would be a big part of our book. Since then, the importance for Java developers to know and understand operational concepts has only increased. With the rise of technologies such as cloud and containers, and supporting concepts of observability and site reliability engineering (SRE), the vast majority of us are no longer “just” developers; we’re now often responsible for the coding, shipping, and running of our applications. Therefore, it makes sense for developers to embrace ops and vice versa.
The term DevOps is not new; it has been in use for 15 or so years. The concept was originally based around agile infrastructure, which emerged from the 2008 Agile Conference in Toronto where Patrick Debois, Andrew Clay Shafer, and many others met to discuss the challenges within traditional sysadmin approaches. The desire to “program” infrastructure meant that there has always been the influence of software engineering in this space. At the 2009 O’Reilly Velocity conference, John Allspaw and Paul Hammond presented their now-famous talk entitled, “10 Deploys a Day: Dev and Ops Cooperation at Flickr,” which cemented the importance of devs collaborating with ops.
In my day job at Ambassador Labs, I see an increasing number of organizations building platforms to enable developers to rapidly get their ideas and code into production and in front of customers. The two most important ...