Reliably managing cattle, not pets


A Dev-Ops team deals with deployments and infrastructure the same way software engineer would approach it: with code and automation.

Dev-ops automate infrastructure and deployment, and make an organisation resistant to signle points of failure. By treating the resources as disposable with an automated approach (cattle analogy), as opposed to manually and carefully take care of each of them (pet analogy) they remove manual errors and make the deployments more reproduceable.

The development of Containerization and infrastructure tools like Docker and Kubernetes Dev-Ops teams can deploy, scale, and manage computer applications. With computing becoming more ubiquitous than ever, related tools have grown with it.

A phased approach to continuous delivery is not only preferable, it’s infinitely more manageable. — Maurice Kherlakian


Continuous Deployment

Releasing lots of small(er) changes often is more resilient than a big release every few months.

Blue Green Deployments

Blue green deployment, and related strategies, consist of releasing gradually, as opposed to a big released switch. It is possible to release a new update of the software to a smaller audience — for instance, a particular geographic location — while monitoring errors and other KPIs. Only once this smaller audience is confirmed not to have any big issue, it is possible for the Dev-Ops team to open the new release to a bigger and bigger audience.


Another way to avoid big mistakes when deployment is to use feature flags. The software engineers make sure to wrap new features between a conditional system based on flags — if the flag is on, the feature is running; off, is not running. With this technique, the application gets deployed, and features can be enabled selectively — similarly to a Blue Green Deployment.

Another advantage of feature flags is that they enable experiments — testing of different features on specific audiences before rolling enw features. A disadvantage is that they pollute the source code with extra wraps to check for the flags. They also need to be tracked with state, to make sure that a specific user is not jumping between feature flags during the same session.

To expand your skills

Here are some resources to expand your skills as a .

When to use Rust and when to use Go

The Go Developer's Quickstart Guide to Rust