Finally Free Escape Is Now Open Source

Today we’re excited to announce that Escape, our cross-cloud release
engineering toolkit, has been
open sourced!

Escape is a command line tool written in Go
to help with the release engineering, life-cycle management and Continuous
Delivery of software platforms and its artefacts.

Managing Multiple Environments

Whether it’s source code. cloud infrastructure, data or documentation; most
artefacts go through one or several phases before going live. Often this means
that there will be at least one environment that is as close to the real
thing as possible so that the business can develop and test new features, but
on big projects there may be dozens; some only short-lived.

Managing, promoting and changing configuration between these different
environments can often be quite difficult. Escape’s goal is to make
managing multiple environments easier and automatable.

Different Layers, Different Tools, Same Process

Different artefacts are often built and configured using different tools. For
example: we may be building a Docker image using the docker command and
deploy the image using the kubectl command on a Kubernetes cluster that was
built on AWS using the terraform command.

Having different tools targetting different layers makes it hard to orchestrate
the deployment of a complete environment and to verify its consistency.
Escape’s goal is to make it easy to compose packages, potentially containing
different kind of artefacts, into entire platforms.

Enable Best Practices in Modern Release Engineering

A modern software application stacks consists of many different layers that all
need to be versioned, configured, deployed and operated differently. The
integration points between these layers are often bespoke, hard to change, and
full of technical debt.

"Release engineering is the difference between manufacturing software in small
teams or startups and manufacturing software in an industrial way that is
repeatable, gives predictable results, and scales well. These industrial style
practices not only contribute to the growth of a company but also are key
factors in enabling growth." — Boris Debic, Google Inc

Escape’s goal is to bring and somewhat standardise the best practices in
release engineering, but without being overly opinionated.

Identifiable Packages, Self-Documenting Environments

It can be hard to find out what version is live, what version has passed
integration tests, what change was deployed, who authored it, etc.

With Escape we want to give you the tools to make everything:

  • Identifiable
  • Reproducible
  • Consistent

How we use Escape

The projects we work on often involve the cloud and containers. Our customers
are typically working on an application and get us on to help with
infrastructure and architecture. More often than not this includes setting up a
reliable pipeline for software delivery. No company or process is ever the
same, but Escape provides us the flexibility to fit most use cases, whilst
allowing us to maintain common components and integrate them into a customer’s
pipeline. For example: we maintain packages for a micro-services “quickstart”
environment on Kubernetes in Google Cloud, making it very easy to get new
projects of the ground.

We also use Escape to release Escape itself, plus it’s used to build and
operate our internal services.

Try it out!

See the documentation for Escape


Bart Spaans, November 27, 2017

Tweet this

Check out more Related Articles around Cool Life Hacks