In October 2015 I was at the Velocity conference in NYC where I had the pleasure to meet the wonderful Bryan Liles of Digital Ocean, who BTW gave a very impressive keynote there. Bryan mentioned he’s about to establish a new term: appops. And the more I thought about it, the more I liked it and so I decided to help establish this term.
The basic idea behind appops is that the person who writes an app—aka ‘the developer’—is also the person responsible for operating the app in production. 24/7 and with SLOs.
Think about it: it’s not about replacing HDD or mounting a rack; it’s not about upgrading the operating system or keeping up-to-date with security patches; it’s not about provisioning a Kubernetes or Apache Mesos cluster. All we’re asking for is that you deploy your app and keep it running.
How hard can it be? Turns out, not that hard:
- With the container revolution you’re well set up to manage your application-level dependencies. You can guarantee that your environment looks the same, from your laptop to the production cluster.
- With container management systems such as Apache Mesos+Marathon, Kubernetes and Nomad you can deploy microservices-style apps and keep them up-and-running without breaking a sweat.
Of course, there are many more relevant topics worth exploring to make this happen, such as monitoring etc.—I suggest Joe Beda’s excellent write-up Anatomy of a Modern Production Stack for further reading.
So, I believe that ‘appops’ is the right role description—rather than the fuzzy devops term—and we should strive to support this concept. I’ve started my little part in contributing over the weekend with kploy, an opinionated Kubernetes deployment system for appops.
In a nutshell, kploy applies the convention over configuration paradigm to Kubernetes deployments. You use your Replication Controller and Service manifests (YAML files) to define your app and can validate and then deploy your app with a single command:
Note that kploy is very early days. It’s more of a MVP currently and certainly not meant to be used in production. I mainly want to learn if this paradigm is useful for appops. The to do list is in place, though ;)