A magical discipline
DevOps is a quickly evolving discipline bridging the gap between modern agile software development teams, cloud infrastructure and operational teams. It eliminates human error, avoids manual and repetitive work and supports companies to smoothly deliver software to end customers. Developers can focus on development, testers have more flexibility to test smaller and isolated sets of features and product owners and delivery managers can deploy with confidence. This overall streamlining adds to the professionalism, brings stability and pace and reduces costs in every part of modern development.
Where does DevOps come from?
A revolution in software development
The last decade(s) delivering software has changed dramatically. Moving from floppy disks (yes that weird icon you see on save buttons) to CD-ROMS to DVDs were huge steps in data storage. Software like Windows 95 or Photoshop was distributed via physical carriers making fixing bugs after delivery almost impossible. With the increasing stability of the internet and quicker download speeds, more powerful computers with modern browsers became affordable and two things happened: software became available for download so bug fixes became easier. But more importantly, we shifted to online applications. Applications that run “in the cloud” and could be accessed through a browser on a desktop, laptop, tablet or mobile phone.
Nothing new, right? But in this context, software development changed radically. As an (ex-)developer, you might remember updating an online application by connection with FileZilla to an ftp server, copying your current live code to a directory and overwriting your files, quickly opening your Firefox (Chrome didn’t exist yet), trying to reload your application and quickly checking the critical functions, hoping nobody noticed your application going offline for a few seconds and everything would work just fine. You might also remember the servers you rented which nobody dared to restart because nobody knew how they were configured. Those were the days.
Quickly moving to 2021 physical servers changed into virtual servers and at their turn changed into serverless cloud services. With tech giants like Amazon, Google and Microsoft providing cloud infrastructure, we now have a radical new way of creating, deploying and maintaining stable, robust and scalable online applications.
Enter agile development: faster & scalable
Developing huge online platforms like Facebook require large, international teams working together on multiple features and versions in parallel while fixing bugs or deploying small features. Agile teams work in short sprints, delivering smaller continuous updates, following the CICD philosophy (Continuous Integration Continuous Development/ Deployment).
On the other side, you have your infrastructure team building complex cloud setups using Kubernetes, Docker containers, load balancers, certificate management, CDN, etc. making sure your application runs smoothly around the world, ready to scale when needed, cost optimised, monitored, backed up. All of this is written in code (infrastructure in code), checked in into a repository which makes it easy to maintain. Everybody can read the configuration, but more importantly, an environment is set up by just running scripts. Setting up an acceptance environment, feature preview or production environment is a matter of minutes.
Bridging the gap between agile development and infrastructure
So, we have an oiled machine of agile developers spitting out code on the left, a solid and easy to maintain infrastructure on the right and a huge problem in the middle. A developer writes beautiful code creating functionalities but doesn’t necessarily know anything about deploying the application. And the people working on infrastructure say they’re not developers. That’s how the new expertise came to life: DEVOPS 🙌, connecting development with operations.
It is the magic under the hood that avoids manual work and eliminates human errors. It notices the merge of a branch on your repository, builds your application, deploys it to the right environment, runs all kinds of automated tests (including end-to-end tests) in temporary but real-life testing environments, reports back to you and supports a smooth delivery.
In a nutshell
If you want to create modern applications and deliver the quality your end users expect these days, make sure you have a solid DEVOPS strategy. It’s a beautiful new expertise that brings professionalism to your delivery machine, making use of all the exciting new tools and services that are available. Enjoy!
Would you like help setting up your DevOps workflow?
Get in touch.