DevOps 101

Covenant Chukwudi
MyCloudSeries
Published in
5 min readFeb 4, 2019
DevOps — Intersection of Dev & Ops :)

In the Beginning

If you are a developer like me that has worked in some companies in the early days, you would have noticed that you’d usually have two(2) teams that work separately to see through the technical aspect of a project. These 2 teams were usually

  1. The Development Team
  2. The Operations Team

The development team would usually consist of programmers, coders, software testers and QA personnel who were responsible for building and implementing features specified by a project requirement.

The Operations Administration Team also would usually consist of network administrators, deployments specialist, database administrators and system administrators who were responsible for setting up servers, deployment environments and taking the “finished code” from the dev-team to production.

There were a whole lot of cultural and knowledge boundaries between these two(2) distinct teams which typically led to frictions causing frustrations across board and inefficiencies such as unstable & infrequent product deployments, awfully lot of time being spent before a piece of code could be deployed to production.

You see, we are currently in a competitive and fast paced world where speedy continuous deployments & the ability to take features right from development to production in minutes is an absolute necessity.

With the advent of cloud computing, the line between development and operations needs to be broken as we can’t just write code and throw it over to the operations team to deploy hence the advent of dev-ops.

What is DevOps

DevOps — a fustion of Development & Operations 😎

DevOps is a fusion of development & operations, It’s a combination of processes, philosophies, tools and culture that gives a unit the ability to deliver products, applications and services at incredible high velocity.

Ewere Diagboya would always say: “DevOps is not about tools but about culture and processes”.

DevOps are processes and philosophies that makes it possible for a feature to go from idea to production in a matter of minutes. DevOps gives units(organizations) the ability to better thrive in the competitive and fast paced world that we find ourselves in today.

In DevOps, development and operations teams are no longer isolated from each other.

This new team (DevOps) consists of members who develop skills needed across the entire product-life-cycle, from the idea and coding stages to production-deployments sometimes including “security” (DevSecOps😎)

Automation is key in a DevOps culture, processes that have been known to be slow such as testing, server provisioning, database provisioning, network setups, Integrations, release-management e.t.c are completely automated in a dev-ops inclined culture hence giving rise to highly efficient and rocket speed streamlined workflow.

Advantages Of DevOps

Teams that have switched to a DevOps culture have experienced alot of improvements in their product delivery and quality. From major tech teams at Netflix & Amazon to even small-scale software shops, firms have experienced the agility and performance gains that comes with a “DevOps first” culture.

Here’s a pretty interesting interview about the advantages of DevOps at scale in Netflix engineering teams

Here are some of the advantages of DevOps, most of which I’ve personally experienced also.

Rocket Speed Deliveries

A core component of a DevOps culture is “continuous integration” & “continuous deployment”. These are processes that automates the release of software from build -> deployment.

This is really great as it enables you deploy bug fixes, new features and feature enhancement very quickly therefore giving your organization the ability to innovate, improve & respond to your users needs at a very very fast rate.

Streamlined Scalability

Remember when we talked about automation being one of the heartbeats in DevOps?, automated deployments gives you the consistency and speed which is very much needed when managing systems that needs to scale.

Software Systems that require scale are bound to become complex as the need for scalability increases, “Infastructure As Code” one of the pillars of DevOps is a set of processes that helps tackle these challenges by enforcing the mindset of declarative deployments (all deployment and server provisioning tasks being automated and specified in “code like manner” with no manual operations at all 🤓).

DevOps processes gives you the ability to scale up and scale out your software deployments with increasing agility in a repeatable manner.

There are many more advantages of DevOps but the above 2 are my favorites.

Building A DevOps Culture

I do believe you’ve had envisioned the immense productivity that a DevOps ecosystem can bring to your workflows 😇.

You can take the radical-transformation path or the gradual-transformation path, either-ways here are some steps in building a DevOps culture:

  1. Remove barriers between both teams (development & operation).
  2. Encourage sharing of knowledge across individuals in your team.
  3. Organize mini workshops for your team on the various processes in DevOps. Initiating that mind-shift is a critical part of the process.
  4. Kick-start an automation first mindset where manual tasks is avoided as much as possible and declarative automation of tasks is highly encouraged. For-example, you should never have to ssh into your ec2 instance to do manual tasks attached to deployments.
  5. Map out tools for the various components of DevOps and facilitate learning of those tools.
  6. Encourage and Facilitate regular review of your workflows.
  7. Remember to automate every single thing that can be automated.

Components Of DevOps

The AWS Team has an excellent list of the processes which are considered as pillars in a DevOps-first culture

  1. Continuous Integration: this enables your team discover and fix bugs easier and faster through the aid of automatic builds and tests.
  2. Continuous Delivery: this enables your team to have a systematic process that enables deployments of application codes that has passed certain tests in an automated fashion.
  3. Micro-services: this is the philosophy of building software applications as a composition of independent service components that are loosely coupled where each component serves a well defined purpose.
  4. Declarative Infrastructure (Infrastructure As Code): this enables your team to avoid any form of manual server, database and infrastructure provisioning. Instead, all forms of provisioning are done declarative through code. Terraform is an awesome tool that serves this purpose
  5. Automated System Health Management: this enables you manage and monitor your infrastructure health in an automated fashion.
  6. Monitoring and Logging: we all know that logging and monitoring is critical to having high availability and performance. DevOps incorporates advanced monitoring processes.
  7. Agile Communication: Knowledge diffusion and circulation is critical in a DevOps culture especially during the phase where you integrate the development & operations teams together.

In Conclusion

DevOps is a very interesting philosophy and your organization is sure to benefit immensely by implementing it.

Hire Me

Have an interesting project?😇, shoot me an email: covenantchukwudi@gmail.com

--

--

Covenant Chukwudi
MyCloudSeries

I build products that would have positive effect on lives