What Actually Is DevOps? Every Other Blog/Video Is Confusing

What Actually Is DevOps? Every Other Blog/Video Is Confusing

introduction

"I've been exploring the field of DevOps for a while now 🕵️‍♂️, and I've observed that the majority of the videos and blogs out there are not able to define what actually is DevOps in a proper way. Even after watching tons of videos and reading several blogs, one is left confused about what DevOps actually is🤔.

In this blog, I'll explain "What Actually is DevOps" in a simple manner while still keeping things detailed enough. (ps. I won't be talking about all those tools🛠️ and DevOps concepts and making things even more complicated for you) "

In simple terms, DevOps is about speeding up the Software Development Life Cycle(SDLC) and delivering the software quickly.

Although the most known definition out there is (don't read it for now)-

DevOps is a set of cultural philosophies, practices, and tools to enhancing collaboration and communication between development (Dev) and operations (Ops) teams throughout the software development life cycle (SDLC).

it is a culture/process of improving application delivery by ensuring:

1.automation 2.quality 3.continuous monitoring 4.continuous testing

(You don't have to care much about it right now, stick with the simple explanation. I'll explain it later in the blog)

It's Simple

That's it. That's all DevOps is about!!

Here's a an example - Let's say there's an organization that has a product. As time passes by, a new update is made to the product. Now to get this update to the end users it takes about a week or 10 days.

This is bad.

By adopting DevOps practices and certain tools you can speed up this process to a day, a few hours, or even a few minutes. (which is how it should be!)

But,

What do you mean by speeding up the SDLC, and delivering the software quickly?

To better understand this we first need to understand "What Actually Is SDLC?". Only after understanding SDLC, we can understand how DevOps can come into the picture and speed it up!

So, What Actually is SDLC?

It stands for Software Development Life Cycle. Simply, it's a structured way to create and work on software. Generally, it has the following phases - Plan, Design, Build, Test, Deploy, and Maintain the software.

Although usually the focus of a DevOps Engineer is on these phases - Build, Test, Deploy, and Maintain.

Now without getting into much technicalities of these phases I want you to understand these phases are just what they sound to you. The goal of a DevOps Engineer is to streamline and automate them.

This is DevOps.

Understanding DevOps

But, How? How streamlining and automating is done via DevOps?

Remember this definition from above, that I strikethrough so that you don't focus much on it?

DevOps is a set of cultural philosophies, practices, and tools to enhancing collaboration and communication between development (Dev) and operations (Ops) teams throughout the software development life cycle (SDLC).

it is a culture/process of improving application delivery by ensuring:

1.automation 2.quality 3.continuous monitoring 4.continuous testing

Now that you have some idea about DevOps and you understand "What Actually is SLDC", let's understand this definition by breaking it apart.

(Here comes the juicy part!!)

  1. Cultural Philosophies: DevOps isn't just about fancy tools🧰 and rules. It's actually a significant shift in how software teams collaborate🤝. The concept aims to break down the walls that traditionally separated development and operations teams and instead foster a culture of trust and open communication. Together, they work towards a common goal: delivering software more quickly⚡ and with higher quality! 🚀 It's all about improving efficiency and accomplishing tasks in a smarter way. 💡

  2. Tools: DevOps utilizes a variety of tools and technologies to enable automation and collaboration. These tools facilitate continuous integration, continuous delivery, monitoring, and various other aspects of the software development lifecycle. Some popular DevOps tools include:

    • Version Control Systems (e.g., Git): For code collaboration and management.

    • Build Automation Tools (e.g., Jenkins, CircleCI): To automate the building and testing of software.

    • Configuration Management Tools (e.g., Ansible, Puppet, Chef): For automating the setup and configuration of infrastructure.

    • Containerization Tools (e.g., Docker, Kubernetes): To create and manage isolated environments for applications.

    • Monitoring and Logging Tools (e.g., Grafana, Prometheus, ELK Stack): For tracking application performance and detecting issues.

  3. Software Development Life Cycle (SDLC): DevOps emphasizes collaboration and communication throughout the entire software development life cycle. It means that developers and operations teams are involved from the early stages of planning and design to development, testing, deployment, and ongoing maintenance. By integrating DevOps practices and tools into every phase of the SDLC, organizations can ensure that the software development process is smooth, iterative, and capable of rapidly responding to changing requirements.

  4. The Ultimate Goal: The ultimate goal of DevOps is to enable organizations to deliver high-quality software products more rapidly, reliably, and efficiently. By adopting a DevOps approach, companies can significantly reduce the time it takes to develop, test, and release software, leading to faster innovation, quicker time-to-market, and improved customer satisfaction.

    I guess now the above definition of DevOps will be making sense for you, why DevOps is called the combination of philosophies, practices, and tools.

    We've reached the end of this blog, but before leaving I'd like to answer some of the most asked newbie questions I've seen around DevOps.

QnA Time!!

Que - Do I need to know Development in order to do DevOps?

Ans - It's not an absolute requirement but it sure is beneficial. As we discussed above DevOps is all about dealing with SDLC, so when dealing with it you should be well aware of how things are working.

personal opinion: You should know development if you want to become an absolute "GigaChad" of a guy in your team. 🗿

Que - Why is it so difficult to find entry-level opportunities in DevOps?

Ans - The thing is DevOps is a role that combines various roles and responsibilities together and thus seen as more of a senior role. Most people transition from other roles to DevOps. Like, from Dev to DevOps or from SysAdmin to DevOps.

personal opinion: Now don't let this get you down, getting into DevOps is just like getting into any other role. You just need to figure out - "What you need to learn and be consistent".

Que - How can I start learning about DevOps?

Ans - While there's no absolute path, here are two videos that I've found pretty useful after consuming several months of content around DevOps.

Video 1: Ultimate DevOps Engineer Roadmap 2023 with Time Tracking Sheet/trainwithsubham

Video 2: DevOps Tools Explained | KodeKloud

personal opinion: Don't take in these videos as is or as your only guide to follow and understand things. Be open to learn from multiple resources. Also, make sure to understand the basics properly before jumping onto new tools every now and then.

I highly recommend TrainWithSubham's 'DevOps: Zero to Hero Course' because I found this course incredibly helpful. 🌟

I don't think anyone wants a DevOps engineer who just mentions buzzwords from k8s/docker/containers but can't even ssh into a server or can't use Linux commands.

The End

That's it for this blog. I hope you were able to understand "What Actually is DevOps". If you're still a bit blurry about it, you can reach out to me on linkedin If I'm inactive there, my bad I'm sorry 😂. I'm sure you can find more links on my linkedin profile to reach out to me!!

Thanks for reading. ; )

what's next

I'm going to share my learning about DevOps and the cloud on this blog.

My hope is that through my blogs, I can help clarify your doubts about DevOps, its various tools, and the world of cloud computing.