An introduction to DevOps

Mohammad Sahil
9 min readJan 11, 2022

When working as a student on a project, you might have come across the word “DevOps”, right? According to a recent DevOps Institute report, demand for DevOps skills is expected to grow 122% over the next five years, making it one of the fastest-growing skills in the workforce. Unfortunately, having skills alone won’t ensure success. Gartner predicts that through 2024, more than 75% of DevOps initiatives will fail to meet expectations due to issues around organizational learning and change. The number one reason for failing to meet expectations is not around skills, it’s not around tools, but due to issues around organizational learning and cultural change. Cultural change can have a significant positive effect on DevOps’s success.

According to George Spafford, Senior Director Analyst at Gartner, “People-related factors tend to be the greatest challenges — not technology.” DevOps is not a tool. DevOps is not a job title. DevOps is the practice of development and operations engineers working together through the entire software development lifecycle, following Lean and Agile principles that allow them to deliver software in a rapid and continuous manner

DevOps

In order to change your culture, you need to learn new ways of how to think, how to work, how to organize, and how to measure. According to the 2021 Accelerate State of DevOps Report by the DevOps Research and Assessment (DORA) team, which represents seven years of research and data from more than 32,000 professionals worldwide-

“Team culture makes a large difference to a team’s ability to deliver software and meet or exceed their organizational goals.”

In order to really embrace the DevOps culture, you have to be willing to make changes… lots of changes. You must be willing to experiment and understand that it’s okay if an experiment fails because “Every failure is a learning opportunity.” So, fail fast.

LifeCycle of DevOps

DevOps is a set of practices that combines software development and IT operations. It aims to shorten the systems development life cycle and provide continuous delivery with high software quality. DevOps is complementary with Agile software development; several DevOps aspects came from the Agile methodology — Wikipedia

DevOps is not just Dev and Ops working together while remaining in their separate silos. DevOps is a cultural change in which development and operations engineers work together during the entire development lifecycle.

Business Disruptions and DevOps

Since the year 2000, more than 52% of the Fortune 500 companies are gone. Fifty-two percent! That is almost half of the Fortune 500 companies that existed in the year 2000, are now gone! What were they up against?

In a word, disruption. It is not if you get disrupted, it is when you get disrupted. Established institutions like banks might think, “Who is going to disrupt me?” You can talk to banks about the need to deploy fast and use continuous delivery, but they are not always responsive. Then the bank down the street comes out with an app that can take a picture of a check and deposit it. Meanwhile, if it takes your bank six months to get your app updated to take a picture of a check and deposit it, that bank is going to lose a lot of customers in those six months. It is not a matter of if you get disrupted. It is a matter of when.

Big Bang Disruption

The disruptors just had a different business model. Uber is the big disrupter. So, let’s think about what was the amazing technology that allowed Uber to disrupt the taxi industry?

Well, they had GPS, but GPS has been around for a while. We’ve had a lot already ( like Garmins and TomToms ) on our dashboards for years, so that’s nothing new. That is fairly old technology. Then there are electronic payments. Electronic payments are older than GPS — they have been around for decades. Then there is “a smartphone in every pocket”. This is pretty commonplace as well. But Uber put the three of those things together with a new business model. Instead of waiting for a taxi to drive by or hailing a cab, or making a phone call to a dispatcher, “what if we allowed people to summon a driver from their smartphone? Let the driver know where they are, and then the nearest driver comes and gets them, and they can track where they are when they will be picked up.” Uber had a different business model and people loved it.

You either adapt or you go extinct! Disruption is everywhere in every industry. Think about Blockbuster, Think about Blackberry, Think about Kodak, MySpace, Yahoo, and Xerox, etc

Let’s take Blockbuster Video. Back in the 80s, we would rent videotapes, VCRs were a big thing. We would physically go to the Blockbuster store. If we brought the tape back late, they would penalize us. It was like checking in a library book late. We accepted it! Then Netflix came around and Netflix realized that DVDs had just come out and that DVDs were a lot smaller than these big bulky tapes.

They could mail them out so the first business model for Netflix was that they would mail you a DVD and then you would have a list of DVDs that you wanted. You did not get the next DVD until you mailed the one you had back. If you kept it for six months, that didn’t change, they did not give you a late fee. They did not care if you kept it for six months. You just didn’t get another one for six months. You had to send one back before you could get another one. Then after a while, Netflix realized they did not need the DVDs. Everyone has broadband internet to their homes. So, Netflix began streaming the movies into the customers’ homes. The problem for Blockbuster was that they thought they were in the video rental business. But Netflix understood they were in the entertainment business. They were in a totally different business. They were entertaining people now, and now they have their own shows on Netflix, produced shows by Netflix, and Blockbuster went out of business.

So the message here is that Technology is the enabler of innovation. It is not the driver of innovation. You must have a great business model idea and a great model and then leverage that technology. Technology alone is not going to drive innovation. It just enables it.

DevOps Adoption and Implementation

What if you could fail fast and roll back quickly? You could limit your blast radius of a change

What if you could test in the market instead of second-guessing and analyzing? Companies do this all the time. Companies take a subset of their customers and show them something new and see how they react, instead of trying it out on everyone. This is testing in the market and it can be very powerful.

What if you had an application design that allowed you to change individual components to be replaced?

You wouldn’t have big-bang releases. This is how apps like Spotify are designed. Spotify is not just one big monolithic app. It is a bunch of little microservices. They have a recommendation engine, it’s a microservice that shows up on the app. If they want to roll out a new recommendation algorithm, that team can roll that new recommendation out without affecting any other part of the app.

In 2009, at the Velocity conference, It opened a lot of people’s eyes. John Allspaw and Paul Hammond gave their famous presentation at the Velocity 2009 conference, entitled “10+ Deploys per day — Dev and Ops Cooperation at Flickr”. Allspaw was at Flickr at the time, and he talked about how they are doing 10 deploys per day and people’s heads exploded — 10 deploys per day! when many companies were completing fewer than one deploy every six months. This was a key moment in the growth of DevOps.

They were happy if they could just get a deploy out every six months. But they were not deploying all of Flickr 10 times a day. People did not realize this at first. They had a different application design. They were deploying little pieces. This opened a lot of people’s eyes to the possibility of what could be if Dev and Ops worked together to move things out instead of Ops being the gate for Dev. In that talk, they said that in the last week there were 67 deploys of 496 changes by 18 people at Flickr. And that was back in December of 2008. In January 2011, Etsy talked about deploying to production 517 times that month. What they actually said was that in January 2011, a month, they had over a billion views, their code was committed by 76 unique individuals and deployed to production a total of 517 times. I did a little back of the napkin calculation and estimated that they are deploying every 25 minutes. People were looking at this and saying, “How are they doing it?”

These are the sparkly unicorns. No one could ever do this in a big enterprise, right? No way, no how. Enterprises or Unicorns cannot change and move that fast.

Chad Dickerson was the Chief Technical Officer of Etsy. He said that Etsy’s deployment environment requires a lot of trust, transparency, communication, and discipline across the teams. He and his teams, working together for a common goal, not working against each other in silos.

If you want to move faster, you have to break down those barriers and push changes faster. Until and unless you change the culture of your company, you will fail at attempting DevOps because DevOps is not about tools. DevOps is about trust, transparency, communication, coordination, and discipline.

Essential Characteristics of DevOps

There are three pillars for agility.

  1. One of the pillars is DevOps. This includes cultural change, automated pipelines, infrastructure as code, and immutable infrastructure.
  2. The second pillar is microservices and includes a loosely coupled application design using microservices that communicate via REST APIs. Microservices are designed to resist failure and are tested by breaking them and failing fast.
  3. The third pillar is containers. Containers are developer-centric environments that give us portability and fast startup. They also enable an ecosystem that allows quick deploys with immutable infrastructure.

Taken separately, these are impressive technologies on their own, but together they enable powerful change. You have DevOps for speed and agility, microservices for small deploys, and containers for ephemeral run times with fast startup.

Essential Characteristics of DevOps

Let’s talk about application evolution for a moment. In the past, there was Waterfall, with its monolithic applications deployed on physical servers. Then at some point in time, we migrated to Agile and used Service Oriented Architectures and virtual machines. Then DevOps followed. Now we are using microservices deployed in immutable containers. This has been an incremental evolution. We broke the monoliths into services. The services were still large, using Service Oriented Architecture, but we had embraced services as a design concept. Then we had virtualization and the Cloud. This made things much smaller. With DevOps, we have evolved again into microservices and containers to deploy them in.

DevOps has three dimensions: Culture, Methods, and Tools. Countries have cultures. Companies have cultures. Many companies attempt to become DevOps but fail to change their culture. This change must come down from the top and be embraced from the bottom up, in order for the change to happen. This is not an easy thing to do. How do you change a culture?

  1. You must change the way people think. They have to start thinking differently.
  2. You must change the way people work
  3. You must change the way people are organized. This is one a lot of companies don’t get.
  4. You must change your measurement system and measure differently

Final Thoughts

Technology is the enabler of innovation, rather than the driver of innovation. You must have an innovative business idea to leverage technology while DevOps is the practice of development and operation engineers working together during the entire development lifecycle, following Lean and Agile principles that allow them to deliver software in a rapid and continuous manner. We also talked about DevOps is not just Dev and Ops working together. It is a cultural change and a different way to work. It has three dimensions: culture, methods, and tools. Culture is the most important of these.

That’s all for now!

In the next article, we’ll talk about Traditional Waterfall Methods, Extreme Programming, and Agile Development. If you enjoyed this article please do Like and Comment. Follow if you want to know more about DevOps.

--

--

Mohammad Sahil

If everyone is moving forward together, then success takes care of itself.