The Spaceship Secret Master Plan
I was inspired to write this post by Tesla’s Secret Master Plan and Master Plan, Part Deux, both of which lay out the long-term plans that have led to their success. Now you can get a similar peek behind the curtain to see how Spaceship will revolutionize the world of Continuous Delivery.
Spaceship exists to make the process of delivering software to users easier, faster, and more reliable than ever before. In order to do this, we need to take our initial product, further its capabilities, and reach new customers and use cases.
Luckily, we have a plan. Here’s how we get there:
Stage 1: Get everyone using Continuous Delivery
While we have a great foundational product for Continuous Delivery, not everyone can use it in its current form. Many organizations use complex delivery processes that are less straightforward than just “deliver new code to production.” There are staging environments, canary deploys, manual approvals, multi-stage deliveries, release scripts, and many, many more variations.
Supporting each of these requires careful systems design and feature planning. We plan to add fundamental features that enable many of these use cases. And for the ones we don’t directly support, we will enable creative configurations that will expose those as features for us to build further down the line.
Here are some of these core features we’re building right now:
- Destinations: Most organizations have multiple places to which they deliver software. That may be as simple as a staging and production environment, or it may be as complex as a multi-regional distribution of running services. Whatever the system, we need to support managing those delivery destinations and enable deliveries to them.
- Delivery Triggers: The most common reason for a delivery is when developers push new code to their master branch, which we currently support. However, there are other actions that trigger a delivery, along with complex conditional requirements to run them. For example, you may deliver a staging branch to your staging cluster or you may only deliver code that has been manually tested to production. We are working to support more use cases for when and where code gets delivered.
- Manual Deliveries: While we believe strongly in the benefits of Continuous Delivery, not all organizations are ready to start using it. But rather than locking away the other benefits of Spaceship, we will enable organizations with a manual delivery process to start using our platform immediately and gradually adopt Continuous Delivery as they’re ready.
- Release Steps: A delivery is usually more complex than just shipping code to a set of servers. You may need to upload assets to a CDN or run database migrations prior to starting the service. We have built a system to handle complex release requirements for any application.
Stage 2: Treat your data as a deliverable
Once we have support for a broad range of application types and delivery processes, we can start to bring more parts of the application lifecycle into the world of Continuous Delivery. In particular, we believe treating data as a deliverable is a key function to enable a host of other features down the line.
While we support some of this currently via Release Steps, we need to go beyond that by allowing things like provisioning new data stores and managing external data providers and APIs. This will allow quick and easy testing of new data formats or APIs without interrupting other testing efforts or production data. It can also ease Disaster Recovery and other operational processes for data stores that are typically problematic and error-prone.
We are building a simple managed Postgres database product to start. Over time, we will add features and support other data store types, such as Redis, Elasticsearch, and Memcache. Because this is so critical to our long-term success, our goal is to be a best-in-class managed data store provider.
In addition, dealing with external APIs and data sources is a common pain point for most developer and operations teams. These are similar external dependencies that require management of sensitive credentials and secrets. We will create a system to allow these services to be defined as add-ons to your applications in Spaceship. This allows you to treat them the same as any other deliverable, including allowing for automatic credential management and rotation. This will be both a relief for operations teams and a big security upgrade for services that typically never rotate their credentials.
Stage 3: Bring Continuous Delivery to your entire organization
Spaceship, as it is built today, is suited primarily for developers and operators. While we will always have much to offer the DevOps space, we want to expand our impact to the whole of any organization. QA, design, support, sales, marketing, and management all have something to gain if we bring Continuous Delivery to them.
One of the key ways we do this is through a tentpole feature for the Spaceship platform: Review Environments. These are temporary spaces to run your applications, separate from your production environment. Their primary purpose is for running a pre-release version of your applications to test new features or fixes that are in development.
While the most obvious beneficiary of Review Environments is your QA team, this feature positively impacts other teams as well:
- Designers can see their mockups in a real, running application
- Product Managers can ensure the complete feature matches their exact specifications
- Support teams can work with customers to confirm their issues have been truly fixed
- Marketing can start building media assets well ahead of an upcoming release
Review Environments are a game-changing feature on which we are already hard at work. Much of the previously mentioned features and systems work toward us realizing this vision. We’ve laid out our thinking for Review Environments in a separate blog post, so be sure to check that out for a complete picture of what we’re building.
That is our plan: Bring Continuous Delivery to every organization, then get everything and everyone to use it. We believe strongly that Continuous Delivery is the future of software delivery and are working as hard as we can to position Spaceship at the forefront of that revolution.
Buckle up, it’s going to be a wild ride!