What is DevOps?

Learn what DevOps is all about

Greetings DevOps community!

It's that time again when we gather to explore the latest happenings, insights, and inspiration in the world of DevOps.

Get ready for another edition of our newsletter, packed with valuable content to fuel your passion for DevOps.

Whether you're a seasoned pro or a curious beginner, we've got you covered.

So grab a cup of coffee, find a comfy spot, and let's dive into this edition of Brady’s DevOps Insights.

I hope you enjoy!

What even is DevOps?

Today, we are going to talk about the basics. Let’s talk about the concepts of DevOps. The definition given by Amazon is the following:

DevOps is the combination of cultural philosophies, practices, and tools that increases an organization’s ability to deliver applications and services at high velocity: evolving and improving products at a faster pace than organizations using traditional software development and infrastructure management processes.

Here’s my definition:

DevOps is the philosophy of building software fast.

That’s it.

That’s what it is all about.

Building Software Fast

To build software fast, we need to incorporate essential DevOps concepts. The main two that you will hear of are:

  • Continuous Integration

  • Continuous Deployment

Both are equally important to achieving a DevOps-style development team. Let’s dive into each in detail.

Continuous Integration

The concept of continuous integration is the concept of every revision of the software triggers an automated build and test. There is a caveat. This does not mean that every commit on every branch in a repository needs a build. Here’s my recommendations on how to achieve continuous integration in the code base:

  • Use trunk-based development over git-flow

  • Develop in small batches

  • Use feature-flags to wrap new changes

  • Implement automated testing

    • Unit - Verify individual functions in the app

    • Integration - Ensure components behave properly together

    • Acceptance - Focus on business logic working properly

    • UI - Certify the app functions from a user perspective

  • Keep active branch count low (1-3)

Try integrating each of these one at a time into your organization to start gaining the benefits of DevOps.

Keep in mind that if the company is not doing any of these currently, there will be push-back. People can be difficult. Change is hard. Ease these into the process and the benefits will start showing themselves.

Continuous Deployment

The idea of continuous deployment takes the output of a continuous integration process and releases it into an environment. If continuous integration is the fast feedback loop for developers, continuous deployment is the fast feedback loop for customers.

Continuous deployment allows you to ship your features fast. Shipping fast makes customers happy. Happy customers means more money.

There’s also a hidden benefit…

Customers find bugs faster.

At first you might think, that’s a problem, right?

Nope.

Finding bugs faster means that you can fix them faster. Fixing bugs fast makes your product and team look good.

Product & team look good to customers? More $$$.

When should you enact continuous deployment? In my opinion, if you have a robust suite of tests, a consistent build and deploy mechanism, you should be deploying on every commit to your main branch.

Things to consider and ask:

  • Rollback - What happens when you absolutely obliterate production?

  • Verification - Ensure that what you deployed is working properly. If not, rollback.

  • Monitoring - Gather real-time data on how your deployment went and how the environment is performing

  • Metrics - Gauge how successful your deployment was. Ex: What’s the success/failure response rates for your API?

  • Alerts - How will the SRE/Operations team be notified of a failure?

All of the above are crucial for a successful continuous deployment system.

That’s all for this insight on DevOps.

If you enjoyed this insight, please share this with anyone you feel could benefit from this type of content. I will be diving deeper and deeper into the rabbit hole of DevOps as time progresses. There’s a lot to cover in this space!

See you next week,

Brady