One of the biggest software development shifts of the past decade has been the emergence of the DevOps movement. As the need for DevOps Engineers grows, organizations that have embraced these practices are becoming more efficient in iterating through service delivery.
DevOps at the most basic is a combination of two words, “Dev” of software development and “Ops” of information technology operations, a blanket term for IT, network engineers, system administrators, DBAs, operations engineers, release engineers, infrastructure engineers, reliability engineers and more.Before the world of DevOps, there was a growing divide in organizations between the creators of the product and the support of the product. These silos meant more production issues which could have been avoided. Agile methodology got developers, product managers, customers and QA working together to rapidly iterate towards a better product but still didn’t address the operations and infrastructure stakeholders. DevOps can be seen as an extension of Agile to include infrastructure and service delivery in the product.The framework for DevOps is called the CAMS model, created by Damon Edwards and John Willis of the DevOps Cafe podcast. CAMS stands for Culture, Automation, Measurement and Sharing.Culture: The most important part of this movement isn’t to automate everything but to put value on the culture of people and processes that help with building and delivering products and services reliability with quicker iterations.Automation: This is the shift in the operations world towards infrastructure as code, whether that’s infrastructure automation of your system and app configuration management to provisioning and continuous delivery to monitoring and orchestration. More and more open source tools and projects became available that helped this automation take off. It’s often not true when people think of DevOps as just a set of tools for automation, or as the people who develop automation tools.Measurement: Similar to Kaizen, DevOps is all about measuring continuous improvement with data. Increasing observability so you know what’s happening at all times, if your systems are up and working or if it’s not, what is failing and quickly getting to the root cause of it. Measurement and monitoring helps make decisions based on facts not opinions.Sharing: Visibility, transparency and the transfer of knowledge a valued in a DevOps organization. This helps teams work together, create collective intelligence and also optimize to easily on-board new team members. This mode of operation encourages collaboration where the problem is the enemy, not each other.See also, Top 5 DevOps Tools to Use Before Deploying Your Code
The technical specialists primarily responsible for the implementation of the new approach are defined as DevOps engineers. By definition, DevOps engineers are developers and engineers specializing in application/product creation, deployment, and integration. Though there is currently no formal career track for this new specialization, DevOps engineers usually come from two backgrounds.The first contingent of DevOps engineers were initially sysadmins who showed a penchant for coding and scripting, shifting towards the development side where their skills benefited the testing and deployment cycles. The other group of DevOps engineers began as developers who demonstrated interest and aptitude for deployment, scale and network operations and has shifted their role to take on more of those responsibilities.In both cases, DevOps engineers evolve beyond their traditional job descriptions and technical areas of competence, to become experts with a more holistic view of their technical environments. We consider DevOps engineers to be the special forces of every software company because there are so few experts that combine the expertise of both developers and operations. The top skill areas for this kind of staff are generally: scripting or coding; frequent, incremental code testing and deployment; process re-engineering; and collaborating and communicating with team members.From a cultural point of view, DevOps engineers are comfortable with open communication, collaboration and reaching across functional borders within an organization. They also must have a solid grasp on the end goals and a laser-like focus on business outcomes.
DevOps engineers must demonstrate rock solid knowledge of the tools and infrastructure involved, with proven expertise of systems and IT operations, automation tools and a wide variety of relevant open source tools and technology. Ultimately this has become the go to process of the current age because of its demonstrated ability to collaborate with cross-functional teams, increasing the speed and efficacy of the overall deployment process. DevOps engineers are the emerging champions of this mindset to take ownership of not only creating products but making sure they’re launched and supported in scalable ways.At LogDNA, we're proud of the insights we provide to DevOps teams and we have an amazing DevOps team and culture. Take a look here to find our job postings: https://logdna.com/careers/