DevOps 101: What Does DevOps Mean & Why Do I Need it?

Posted by Dustin Keib, Head of Cloud Enablement, - Aug 12, 2020

If you’re familiar with the cloud even a little bit, you’ve probably heard the term “DevOps” mentioned more than once. While it sounds like something out of a sci-fi novel, it’s a digital movement that improves life in the cloud. 

And, chances are, it’s one that you need to understand and implement in your cloud strategy. 

That’s why we’re starting this latest blog series, DevOps 101. In this and future blogs, we’ll demystify the concept and walk you through what makes DevOps so valuable in the cloud world.

So What is DevOps, Anyway?

Let’s say you are a developer and you need to build code for a Software as a Service (SaaS) application that is delivered via your company’s website. You write the code but don’t have any significant contact with the IT Operations Team who runs the infrastructure that delivers your code and serves the website. You do your thing; they do theirs.

Most of the time this works out OK, but sometimes you run into problems once your code moves into the production environment. You feel as though the operations team didn’t configure things quite as well as they should have, and it seems like the configurations are always changing, leaving you feeling like you’re chasing a moving target. 

DevOps togetherYou are always wanting to ship new features and bug fixes to your customers, but they always push back, not wanting to “break things that are working.”

On the flip side, let’s say you lead the operations team and often feel like the work passed along by the developers just isn’t quite ready to be deployed to production. There may be untested errors, and it feels like every time the developers push an update, everything breaks and you get an endless stream of user tickets.

So was it bad coding and testing or poor execution to blame on these failures? It might just be the fact these teams work in separate worlds. 

This scenario is all-too-common across all sectors in organizations of all sizes. Keeping development and operations teams separate can create all sorts of headaches and slow your time to market.

What if you could combine your teams into one holistic unit that works together, breaking down silos and fostering a true collaborative connection between your development and production teams?

DevOps does just that. It blends the philosophies, the people, the technologies and cultures of two different digital areas, software development (the Dev) and IT operations (the Ops). One major component of a successful DevOps initiative is a major shift in your way of thinking about infrastructure: to begin treating your servers as disposable components, and expressing their configuration using what is known as “infrastructure as code” as opposed to treating each one as a special snowflake.

DevOps blends the philosophies, the people, the technologies and cultures of two different digital areas, software development (the Dev) and IT operations (the Ops). @OnixNetworking

combining brainpowerThis means that the operations side of the equation will version control and deploy infrastructure it manages in the same way that the developers develop application code. We’ll talk about this more in our next DevOps 101 blog.

For now, realize that by combining the brainpower, processes and energy of these two groups, you can deliver your application and software services at a faster pace and lessen the time it takes your products to go to market.

What are DevOps Best Practices?

To achieve this, you apply core DevOps best practices to the process and its “infrastructure-as-code” philosophy. While we’ll break down these practices and related features in future DevOps 101 blogs, let’s take a quick look so you can familiarize yourself with them.

Infrastructure Automation

As part of any successful DevOps program, you’ll deploy your instances, Operating System configuration and applications using “infrastructure-as-code” tools which are highly automated. 

Automating deployment and configuration management helps to ensure your infrastructure is stable and secure and cuts down on the number of processes (and team members) needed to manage the environment. 

Applications and their dependencies can be “pinned” to specific versions, giving your developers a consistent platform to ship features from, and your operators predictable infrastructure to manage.

Please note that while a DevOps team blends the responsibilities of a Development Team with an Operations Team, it is critical that representatives from different backgrounds participate - this blending of the 2 usually opposed views is precisely the magic of DevOps - as both concerns are represented in a single team. 

diverse technology and teamIt is a wise practice to look to developers and operators from many different business or software disciplines when staffing such a team, as diversity can lead to more effective and holistic solutions to common DevOps challenges.

You can use a number of tools and techniques to streamline your automation process. These include, but aren’t limited to, Terraform for infrastructure deployment, Docker for containerization, Kubernetes to orchestrate those containers into services (check out our Kubernetes 101 series for more about this), Git for version control, Ansible, Chef, and Puppet for configuration management and much more!  Nearly anything that used to be a manual process in software delivery can be automated these days, enabling cool things like ChatOps.

Continuous Integration/Continuous Delivery

Automation allows you to make this next practice, continuous integration/continuous delivery (CI/CD), a reality. When you automate your software deployment pipeline, you can quickly build, test and deploy apps, reducing the time to do this down from months to minutes or hours, often almost instantly, allowing developers to push code updates to the application many times a day.

This is critical especially in large organizations, where many teams of developers may work on the same product. In these organizations, the coordination of release cycles becomes more important, requiring high levels of automation in software delivery.

Using the CI/CD practice, your DevOps team will push smaller, more frequent automatic code updates first to a testing environment to ensure all of these changes will work when released to production. Once approved by the team, the updates are good to go. This means you can identify bugs easier and deliver updates faster than your pre-DevOps days.

Site Reliability

Businessman shaking hands with a colleague in the officeWhen you practice DevOps, your holistic team will architect and deploy scalable and elastic environments that are durable enough to withstand spikes in activity and outside attacks without crashing.

DevOps site reliability engineering allows you to create stronger protocols for optimizing redundancies, keeping a solid monitoring program in place and setting and reacting to alerts when your environment has gone awry. You also can incorporate crucial security best practices into your strategy.

Why Should I Implement a DevOps Strategy?

It’s no cliche that in today’s hyper-competitive environment, speed is everything. You want to get your products and services to market quickly and deliver your software services and apps faster and more reliably.

Traditional software development and infrastructure practices can’t keep up with this need for speed. They’re too siloed. A holistic approach like DevOps keeps you moving and innovating. 

When you automate formerly slow, manual processes, your application environment can evolve quickly so you can react better to changing market conditions, the need for speedy updates and, as always, customer demands. 

It’s recently been said that while software services and apps used to “support a business,” they are now an integral part of how you do business every day, from how you interact with customers, sell goods and services and deliver them, among other things. A solid DevOps strategy allows you to do this with safeguards and strategy in place.

Post Your Comments


SEARCH Blog

application modernization

MEET THE AUTHOR

Dustin Keib, Head of Cloud Enablement

Dustin Keib, Head of Cloud Enablement

Dustin is a software engineer, systems architect, and cloud scalability expert at Onix. His deep understanding of the full SaaS and Paas stack comes from 20+ years of enterprise IT experience. Dustin is a Certified Google Cloud Solutions Architect, AWS Solutions Architect - Associate, and Puppet Professional and has a deep knowledge of infrastructure automation, containers, and CI/CD system design and implementation.

MORE POSTS BY DUSTIN KEIB, HEAD OF CLOUD ENABLEMENT

Are you cloud ready?

The variety of cloud options can be overwhelming. Speak with Onix to discover your best options for today and beyond. 

Get a Cloud Assessment