Today we’re excited to announce that Escape, our cross-cloud release
engineering toolkit, has been
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
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:
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