DevOps Basics - Part 1

Posted on Dec 22, 2022

What is DevOps?

DevOps is the combination of cultural philosophies, practices, and tools that increases an organization’s ability to deliver applications and services at high velocity.

The main purpose of DevOps is to boost developer productivity.

Under DevOps model, the operations team is no longer isolated. Sometimes, the two teams, ie, the development team and operations team are merged into a single team where the engineers work across the entire application lifecycle, from development and test to deployment to operations, and develop a range of skills not limited to a single function.

In some DevOps models, quality assurance and security teams may also become more tightly integrated with development and operations and throughout the application lifecycle. When security is the focus of everyone on a DevOps team, this is sometimes referred to as DevSecOps.

Benefits of DevOps

  • Faster delivery of features - DevOps model enables the developers to work in a collaborative environment - faster delivery of features to the end users.
  • Speed - Helps teams move at high velocity, driving innovation for customers faster, adapt to changing markets better, and grow more efficient at driving business results.
  • Reliability - Helps to reduce the time to market and the time to fix. It also helps to reduce the number of bugs and the time to fix them.
  • Scalability - Operate and manage infrastructure and development processes at scale - Automation and consistency helps in managing complex or changing systems efficiently and with reduced risk.
  • Security - DevOps helps to improve security by automating security checks and by making security a part of the development process.
  • Improved collaboration - Build more effective teams under a DevOps cultural model, which emphasizes values such as ownership and accountability. Developers and operations teams collaborate closely, share many responsibilities, and combine their workflows. This reduces inefficiencies and saves time.

Enterprise DevOps

Challenges in Enterprise DevOps:

  • Hundreds of technologies
  • Multiple platforms and vendors
  • Hundreds and thousands of developers
  • Lots of legacy systems and code

All the complicated moving parts of an enterprise causes even simple unit testing to be a challenge. Unit testing is just one topic though, the same organization may have engineering standards in several different categories. Each organization needs to find their own way to implement DevOps practices and tools that work for them.

At a team level, getting an agreement over a topic requires a small number of individuals to agree to something and they can all be in the room for discussion. At an enterprise level, getting an agreement over a topic requires a large number of individuals to agree to something and they may not all be in the same room for discussion. This is where the challenges of enterprise DevOps begin. There are incentives to worry about, vendor contracts to consider, and all of the different timelines and value additions.

The technology itself gets even more complicated. At scale, most functionalities depend on several systems. At an enterprise level, we want to make sure that all the teams leverage a common set of tools to keep the overall architecture maintanable, something an indicidual team has to worry about less. The DevOps transformation for an enterprise is successful only by changing the organizational culture - hard to define and even more difficult to change.

Up next - DevOps Basics - Part 2