Hey there!
Welcome to our Tech Tips series, this is our flagship post so I thought I’d share some DevOps tips from our resident expert. It’s one of the fasting growing demands in tech, both people and product wise. Everyone wants DevOps, and no one knows what is – or rather, it means something else to everyone. Let’s define it.
What is DevOps?
DevOps, or Development Operations, is the alignment of people, process, technology, and strategy that aims to provide friction-less operations and continuous improvement throughout the software development lifecycle as well as the maintenance and operations lifecycle.
Let’s break that down, shall we?
Development
From conception, to release.
This starts with Agile project management, self-empowered teams, and breaking down silos.
Developers must roll up their hoodie sleeves and tune in to the world of system operators.
Operations
From release to retirement.
This starts as soon as the product hits staging. The developers will be active in the support and management of systems.
This helps them to understand the systems strengths and weaknesses.
Those are nice concepts, but let’s talk through a real-world example.
Company details are changed for privacy.
ThunderView is a machine vision startup that uses AI to scan video for evidence of thunder storms (and also Luguentz Dort).
ThunderView was hip to DevOps practices, and wanted to establish themselves as an integrated, not siloed, engineering team.
ThunderView is using Kubernetes to take advantaged of scalable and automated resource management.
So what does ThunderView do?
Developers write code, and manage their CICD pipelines. This is best done with a combination of a git Version Control System (VCS) and a CI tool such as Actions, Jenkins, or CircleCI.
Once the code passes its unit tests, the pipeline automatically builds a docker image containing the application. It publishes the image to a private repository for safe storage.
Then, an ephemeral version of the app is published to the development environment where a series of automated tests simulate user acceptance testing (navigation, function, etc).
Once passed, the pipeline promotes the image to a staging deployment.
From there, traffic can be split between the staging and production deployments to test in the real world.
In production, monitoring tools capture metrics and logs that are used by developers to analyze defects and write more efficient code in the future.
There are infinitesimal ways to design a DevOps system and culture, and that’s but one example. Many organizations opt for alternative testing and deployment strategies that best suit their needs.
Let’s wrap.
DevOps is more than technology, it’s a culture. It’s even a strategy.
It is the future of software engineering, but one day it too will be replaced by something new.
Let the main lesson here be this: break down organizational silos, invest in your people, strive for continuous improvement, learn from your mistakes, and automate everything you can.