I am paraphrasing myself from one of my very successful LinkedIn Articles that I wrote 6 years ago. It’s an important blog as it defines how more complicated it is to manage a fully automated cloud infrastructure that supports live web software/SaaS that undergoes changes in real time.
As Information Technology evolves, so do new roles and defined levels of expertise. Two terms that have readily become mainstream buzzwords (thanks to companies like Google branding) are DevOps and Site Reliability Engineering (SRE). These terms are new, do the responsibilities under these titles represent anything new or revolutionary? Is there value to these roles or are they just new buzzwords to enhance resumes?
There is enough confusion regarding these titles that is has actually opened a debate as to what they actually do. Some may take a hard look and come away with the conclusion that they are basically the same thing. There is a lot in common, especially when you take into account the underlying objectives; scaling, automating and bridging a gap between operations and Development. However, I believe there is a clear difference between them.
Dynamic organizations that wish to scale at an aggressive pace will want to lay the foundation for an IT department that can be both nimble and agile. To do so, they will require engineering departments that can create a foundation to support their goals. The directors of these teams would have to leverage automation tools to enable wide-spread orchestration of the infrastructure and management to multiple teams.
I believe that there are two main disciplines here - SRE is more defined as to architect a fully automated IT infrastructure, while DevOps is more of an orchestration of an Agile or Lean development team - serving infrastructure as code/tasks to coders when needed.
Quite often, IT infrastructure is constructed piece by piece as the company grows. Systems are configured to serve the business from day one and changes will be made as they are required. System Administrators play a vital role in making sure that daily maintenance and system updates are facilitated to protect the IT investments and enable a productive environment. In this model. the admins spend their days making sure everything is working, updated and address breaks when they are need.
More sophisticated IT departments will engineer automation scripts into the infrastructure from the start, removing the future reliance on administrative. The system engineer/architect can then orchestrate policy, patches and management over the entire network through a single, centralized management system. These systems will also proactively monitor the environments and detect potential issues within the infrastructure before they become issues.
SRE is more focused on the system engineer role of core infrastructure and it is generally more applicable to a production environment. DevOps on the other hand is a practice used to automate and simplify the development teams and their non-production computing environments.
A major difference between SRE and DevOps is the focus on coding and type of environment you are in. DevOps will always be on the side of creation and testing. Because these departments are dynamic and embrace an Agile or Lean method to run their teams, there has to be automation to help manage the process.
Developers leverage automation tools such as Puppet, Ansible, or Chef (and many other tools) to assist with this challenge. DevOps share common ground with SRE as a DevOps engineer is the top of the pyramid, architecting both a culture and a system to automate the delivery of infrastructure or tasks within the development process.
The underlying theme here is that new roles (SRE and DevOps) are being defined to help IT run more efficiently. As we progress, we fully expect that practices will continue to evolve and new roles will be born. What is important here is that what drives change is fully contingent or operational efficiency. These forms of efficiency help support innovation with more velocity and enable IT departments, as a whole, to scale and run more fluidly.
Mindcentric is a San Diego based technology firm that focuses on architecting and managing complex Cloud Infrastructure, designed for Internet based applications/SaaS. We’ve been performing the role of an SRE for many years, just never thought to brand ourselves that way. DevOps and SRE, regardless of how you define them, are dynamic titles that are here to stay. We expect to see more professionals develop experience within these roles and the evolution will continue to drive efficiency and productivity.