DevOps Tutorial — Why & What is DevOps?

Saurabh Kulshrestha
Edureka
Published in
5 min readOct 18, 2016

--

Out of keen interest in DevOps, I thought of coming up with a series of blogs that will educate you about the new culture being adopted in Software Development and help you understand what is it all about. This is the first of the many blogs in the series called as - The DevOps Tutorial.

The DevOps Tutorial

This DevOps tutorial blog series will familiarize you with DevOps methodology & industry-wide used tools. In this blog, I will take you through the following things, which will be the base of the upcoming blogs:

  • What led DevOps to come into existence
  • Introduction of DevOps

Waterfall Model

Let’s consider developing software in a traditional way using a Waterfall Model.

Waterfall Model - DevOps Tutorial

In the above diagram, you will see the phases it will involve:

  • ­In phase 1- Complete Requirement is gathered and SRS is developed
  • In phase 2 - This System is Planned and Designed using the SRS
  • In phase 3 - Implementation of the System takes place
  • In phase 4 - System is tested and its quality is assured
  • In phase 5 - System is deployed to the end users
  • In phase 6 - Regular Maintenance of the system is done

Waterfall Model Challenges

The Water-fall model worked fine and served well for many years however it had some challenges. In the following diagram, the challenges of the Waterfall Model are highlighted.

Waterfall Model Challenges - DevOps Tutorial

In the above diagram, you can see that both Development and Operations had challenges in the Waterfall Model. From the Developers point of view there were majorly two challenges:

  1. After Development, the code deployment time was huge.

2. The pressure of work on old, pending and new code was high because development and deployment time was high.

On the other hand, Operations was also not completely satisfied. There were four major challenges they faced as per the above diagram:

  1. It was difficult to maintain ~100% uptime of the production environment.

2. Infrastructure Automation tools were not very affective.

3. Number of severs to be monitored keeps on increasing with time and hence the complexity.

4. It was very difficult to provide feedback and diagnose issue in the product.

In the following diagram proposed solution to the challenges of Waterfall Model are highlighted.

Solutions To Waterfall Model - DevOps Tutorial

In the above diagram, Probable Solutions for the issues faced by Developers and Operations are highlighted in blue. This sets the guidelines for an Ideal Software Development strategy.

From the Developers point of view:

  1. A system which enables code deployment without any delay or wait time.

2. A system where work happens on the current code itself i.e. development sprints are short and well planned.

From Operations point of view:

  1. System should have at-least 99% uptime.

2. Tools & systems are there in place for easy administration.

3. Effective monitoring and feedbacks system should be there.

4. Better Collaboration between Development & Operations and is common requirement for Developers and Operations team.

DevOps integrates developers and operations team to improve collaboration and productivity.

According to the DevOps culture, a single group of Engineers (developers, system admins, QA’s. Testers etc turned into DevOps Engineers) has end to end responsibility of the Application (Software) right from gathering the requirement to development, to testing, to infrastructure deployment, to application deployment and finally monitoring & gathering feedback from the end-users, then again implementing the changes.

This is a never-ending cycle and the logo of DevOps makes perfect sense to me. Just look at the above diagram

What could have been a better symbol than infinity to symbolize DevOps?

Now let us see how DevOps takes care of the challenges faced by Development and Operations. Below table describes how DevOps addresses Dev Challenges.

How DevOps solves Dev Challenges - DevOps Tutorial

Going further, below table describes how DevOps addresses Ops Challenges.

How DevOps solves Ops Challenges - DevOps Tutorial

However, you would still be wondering, how to implement DevOps. To expedite and actualize DevOps process apart from culturally accepting it, one also needs various DevOps tools like Puppet, Jenkins, GIT, Chef, Docker, Selenium, AWS etc to achieve automation at various stages which helps in achieving Continuous Development, Continuous Integration, Continuous Testing, Continuous Deployment, Continuous Monitoring to deliver a quality software to the customer at a very fast pace.

Now take a look at the below DevOps diagram with various DevOps Tools closely and try to decode it.

DevOps Tools - DevOps Tutorial

These tools has been categorized into various stages of DevOps. Hence it is important that I first tell you about DevOps stages and then talk more about DevOps Tools.

DevOps Lifecycle can be broadly broken down into the below DevOps Stages:

  • Continuous Development
  • Continuous Integration
  • Continuous Testing
  • Continuous Monitoring
  • Virtualization and Containerization

These stages are the building blocks to achieve DevOps as a whole.

So that brings an end to this blog on DevOps Tutorial. If you wish to check out more articles on the market’s most trending technologies like Artificial Intelligence, Python, Ethical Hacking, then you can refer to Edureka’s official site.

Do look out for other articles in this series which will explain the various other aspects of DevOps.

1. Git Tutorial

2. Jenkins Tutorial

3. Docker Tutorial

4. Ansible Tutorial

5. Puppet Tutorial

6. Chef Tutorial

7. Nagios Tutorial

8. How To Orchestrate DevOps Tools?

9. Continuous Delivery

10. Continuous Integration

11. Continuous Deployment

12. Continuous Delivery vs Continuous Deployment

13. CI CD Pipeline

14. Docker Compose

15. Docker Swarm

16. Docker Networking

17. Ansible Roles

18. Ansible Vault

19. Ansible for AWS

20. Jenkins Pipeline

21. Top Git Commands

22. Top Docker Commands

23. Git vs GitHub

24. DevOps Interview Questions

25. Who Is A DevOps Engineer?

26. DevOps Life cycle

27. Git Reflog

28. Ansible Provisioning

29. Top DevOps Skills That Organizations Are Looking For

30.Waterfall vs Agile

31. Maven For Building Java Applications

32. Jenkins CheatSheet

33. Ansible Cheat Sheet

34. Ansible Interview Questions And Answers

35. 50 Docker Interview Questions

36. Agile Methodology

37. Jenkins Interview Questions

38. Git Interview Questions

39. Docker Architecture

40. Linux commands Used In DevOps

41. Jenkins vs Bamboo

42. Nagios Interview Questions

43.DevOps Real-Time Scenarios

44.Difference between Jenkins and Jenkins X

45.Docker for Windows

46.Git vs Github

Originally published at www.edureka.co on October 18, 2016.

--

--

Saurabh Kulshrestha
Edureka

Saurabh is a technology enthusiast with interest in DevOps, Artificial Intelligence, Big Data and Data Science.