What is DevOps?

What is DevOps?

Nowadays, people have been talking more and more about #DevOps. What is it, how to utilize it, hope the following could be of some help.

Definition of DevOps

DevOps (a clipped compound of "development" and "operations") is a software development methodology that combines software development (Dev) with information technology operations (Ops) to shorten the systems development life cycle while delivering features, fixes, and updates frequently in close alignment with business objectives.

How did DevOps come?

In one article by Demir Selmanovic, he gives us an introduction on how DevOps evolves from the old days. To make it simple, it's like the following:

The programmers in the old days gave birth to machine language. Machine language gave birth to the assembler. The assembler gave birth to the compiler. Now there are thousands of languages, and each language has its place within the software.

Then programmers were mostly replaced by developers, software engineers, system architects, web developer, QA engineer, etc. And they came up with Waterfall. This was a brilliant idea, as it utilized the fact that different groups of developers communicated only when necessary. When one group finished their part of the job, it communicated with the next group to send work down through the process and never looked back at it.

Then with more demanding from client, some people realized the importance of working together with client, communicating, and being flexible to assure their clients to receive the best possible solution, which brought Agile Manifesto to the world in early 2001.

Agile manifesto was the first big step in bringing peace to the Galaxy and restoring balance to the Force. For the first time in a very long time, connecting all stakeholders in software development process was based on the cultural and “human” way, as much as on procedural and mechanized manner. People started to talk to each other, meet on a regular basis, and exchange ideas and comments all the time. They realized that they have much more in common that they thought, and clients became part of the team, not just some external factor that was expected to send the money and ask no questions.

Added on top of Agile, Lean principles supported the mentality and the focus on doing the right things, while being flexible during the whole process.

Once Agile and Lean were adopted by software development teams, it took just one more step to apply the whole set of principles to IT as a Whole - which finally brought us to DevOps.

Understanding DevOps

DevOps is an approach to culture, automation, and platform design intended to deliver increased business value and responsiveness through rapid, high-quality service delivery. This is all made possible through fast-paced, iterative IT service delivery. DevOps means linking legacy apps with newer cloud-native apps and infrastructure.

DevOps describes approaches to speeding up the processes by which an idea (like a new software feature, a request for enhancement, or a bug fix) goes from development to deployment in a production environment where it can provide value to the user. These approaches require that development teams and operations teams communicate frequently and approach their work with empathy for their teammates. Scalability and flexible provisioning are also necessary. With DevOps, those that need power the most, get it—through self-service and automation. Developers work closely with IT operations to speed software builds, tests, and releases—without sacrificing reliability.

The Three Ways

DevOps is more than just automating the deployment pipeline. In the words of John Allspaw, DevOps is about, "Ops who think like devs. Devs who think like ops." Elaborating on that thought, Gene Kim explains The Three Ways as principles of DevOps:

The first way - System Thinking - emphasizes the performance of the entire system, as opposed to the performance of a specific silo of work or department — this can be as large as a division or as small as an individual contributor.

The second way - Amplify Feedback Loops - creates the right to left feedback loops. The goal of almost any process improvement initiative is to shorten and amplify feedback loops so necessary corrections can be continually made.

The third way - Culture of Continual Experimentation and Learning - creates a culture that fosters two things: continual experimentation, taking risks and learning from failure; and understanding that repetition and practice is the prerequisite to mastery.

DevOps organization checklist

Here is a checklist that you can use to validate how DevOps enabled your IT organization is.

  • There is no wall between development team and operations team. Both are part of the same process
  • Work that is sent over from one team to another is always verified and top quality
  • There is no “piling” of work, and all bottlenecks are handled
  • Development team is not using Operations time for its activities, because deployment and maintenance are part of the same time box
  • Development team does not deliver the code for deployment at 5PM on Fridays, leaving operations to clean up their work over the weekend
  • Development environments are standardized, and operations can easily reproduce and scale them into production
  • Development team can deliver new versions as they find appropriate and operations can easily deploy them into production
  • There are clear communication lines between all teams
  • All team members have time to experiment and work on improvement of the system
  • Defects are introduced (or simulated) and handled in the system on a regular basis. Lessons learned from each experiment are documented and shared with all relevant people. Incident handling is a routine and mostly handled in a known way

Summary

DevOps is a way of thinking. We are all part of the same process, we share the same time and deliver value together. Every person that takes part in the software delivery process can speed up or slow down the entire system. A bug created during development can bring down the system, as well as the wrong firewall configuration.

All of the people are part of DevOps, and once your organization understands that, tools and technology stack that will help you manage it will magically show up, like Chef, Docker, Ansible, Packer, Troposphere, Consul, Jenkins, SonarQube, AWS, etc.

 

Reference:

https://en.wikipedia.org/wiki/DevOps

https://baike.baidu.com/item/devops/2613029?fr=aladdin

https://www.redhat.com/en/topics/devops

https://www.atlassian.com/agile/devops

https://www.toptal.com/devops/what-the-hell-is-devops

 

There is no such thing as DevOps, only " ***к ***к и в продакшн"

Thanks for sharing your insights on DevOps

Like
Reply

To view or add a comment, sign in

More articles by Rhoda Yang

  • QA vs. QC

    The other day I had a chat with an ex-colleague who joined a new company for quality assurance related work. After…

    1 Comment
  • Preliminary Understanding of Project Management

    Project management is defined as the practice of initiating, planning, executing, controlling, and closing the work of…

    1 Comment
  • Aortic Dissection

    Someone may get confused what this is about, it sounds not like technology. Well, this is a medical term.

    3 Comments
  • Five Hundred Miles

    Sharing the song I like so much..

  • China's Spring Festival

    Spring Festival is the most important festival in China, like Christmas Day in western world. Spring Festival is for…

    5 Comments
  • Are You a Real Scrum Master?

    I thought I know well of scrum by project delivery scheduled within different sprints, but it turns out that there are…

    9 Comments
  • Let's Cherish the Most Important!

    If I ask you, what is the most important in your life, what people cannot live with..

    1 Comment
  • Regret Medicine

    In Chongqing city of China, there is one Cliff Swing program, where people has to pay for the regret medicine if they…

    4 Comments

Others also viewed

Explore content categories