Compose Enterprise Explained


We've just launched the beta of Compose Enterprise, a new powerful option for using Compose which lets you make use of Compose's power and convenience within your own cloud clusters. We know you want to know more, so let's explain:

What is Compose Enterprise?

When we want to set up a new AWS region for Compose hosted customers, we create our own VPC in that region and then deploy a whole range of hosts and infrastructure to that VPC. Our customers see a new region option in the available region list when deploying. With Compose Enterprise, you can deploy that same Compose technology into your own VPC, wherever it is. You pick the size and power of hosts you want to power your databases, and optionally set how you want the networking to be configured for those hosts. You also get the features and security of Amazon's VPC offerings - the VPC is under your control.

Once set up, and it's remarkably easy to do, all that power is then harnessed by your Compose console so that when you need a database on your terms, you click "Create Deployment" and select your own Compose Enterprise cluster.

Why Compose Enterprise for Compose?

It's because Compose Enterprise is an integral part of Compose's story arc. As such it's been in our plans for years and became a focus for development we when joined IBM.

At Compose we are on a mission to deliver database power as quickly, simply and efficiently as possible wherever it is needed. When we developed our current generation of database hosting, we built it so we could efficiently deliver databases into our own quick deploy infrastructure. With that perfected, we could then also deliver that same power to anyone who needed it. Compose Enterprise is that plan coming together and yes, we like it when a plan comes together.

It means the same technology is used everywhere; with Compose Enterprise, you get to choose where that technology is deployed.

Why Compose Enterprise for me?

As a consumer of databases, as you scale you want more control. You want to be able to set how much hardware firepower is driving your production databases. At the same time, if you are a Compose user you don't want to lose the convenience of Compose deployed and managed databases. Compose Enterprise lets you have both.

There's a good chance you are already deploying your applications on AWS and want to get your database even closer to your applications. You can deploy Compose Enterprise databases into the same VPC your applications run in.

With Compose Enterprise you also get to pick which region your databases reside in. There's only so many regions we can cover with Compose Hosted but that limitation doesn't exist with Compose Enterprise. Wherever there's an EC2 capable AWS region with Ubuntu AMI's available*, you can deploy Compose Enterprise and take control of your data destiny.

And to ensure you are better protected, we've built in encrypted backups by default.

* That currently means not Seoul due to a lack of those AMIs, but hopefully that will be fixed soon.

I don't see any Enterprise UI. Where is it?

Compose Enterprise is seamlessly integrated into your Compose experience. Look on the left hand side of the Compose console and there's a Clusters button. That'll take you to all the provisioning and management setup for your Compose Enterprise clusters. A cluster is a group of machines, and associated supporting nodes, configured and managed by Compose on your own AWS VPC.

What does Compose look like to a Compose Enterprise user?

If you've used Compose for any time you'll know that in the top right hand corner of your deployments view there's a Create Deployment button. That button is now also your route to deploying onto your Compose Enterprise clusters. Click it and you'll be at the familiar, but not quite the same New Deployment page. Now select a database...

If you have a Compose Enterprise cluster configured, you'll be able to choose between Compose Hosted and your own clusters. By default, it selects your first Compose Enterprise cluster that has capacity. And that's all that is visibly different. Everything else works the same.

Exactly the same? Really?

Well, the connection strings will look different as they will be pointing at your cluster deployments and those cluster deployments will only be accessible from within your VPC. Everything else will work the same as your Compose Hosted database deployments. That said, the flexibility of the Compose Enterprise cluster should allow us to offer some extra features to Compose Enterprise databases in the future, but currently you'll be hard pressed to tell the difference.

What is different?

The way you are billed is different. As it's your AWS VPC, you pay them for the cost of resources on the Amazon service. For the Compose service, a cluster with 24GB of RAM over its three data nodes costs $600 with each extra gigabyte of RAM costing $25. You can select how much memory you need in your cluster when you create it by setting the kind of host you want to use. You can deploy as many databases into the cluster as you have RAM to support them and it's easy to increase the RAM you've allocated.

As an Enterprise oriented offering we're expecting people to predominantly want to deploy larger databases. With that in mind, the smallest memory allocation per node is 1GB of RAM (or 1020MB depending on the database and how it scales on Compose). That 1GB of RAM will usually be matched with a 1:10 ratio of storage, so for MongoDB that would give you 10GB of storage. That's the general rule; the notable exception is MongoDB with WiredTiger (4GB of storage with 1GB of RAM). Remember this is the per node allocation and there are three nodes over which the database is deployed, so a database deployment using 1GB of RAM will use 3GB of the total RAM deployed to the cluster.

Where do backups go?

We encrypt your Compose Enterprise deployment backups and put them onto Amazon S3. That makes them secure but easily accessible by you and whatever applications you want consuming them.

What happens behind the scenes?

Compose Enterprise takes care of most of the hard work of configuring a managed cluster. You create a AWS VPC and then Compose creates a template for Amazon's Cloudformation. That template is then used to create all the resources in the VPC needed to host Compose Enterprise databases. All of that then automatically plugs itself into Compose's deployment and management platform, letting you get on with creating the databases you want.

What does this mean to Compose Hosted?

Everything and nothing. Everything, because it's all based around the same code so Enterprise and Hosted will feed off each other's improvements. And nothing, because we're going to keep on being the quickest and easiest place to spin up a production-ready database, be it MongoDB, Elasticsearch, PostgreSQL, RethinkDB, Redis, etcd, RabbitMQ or whatever we have waiting in the wings to come next. Compose Enterprise users have the flexibility to also spin up Compose Hosted databases like any other Compose user for those projects which don't need to live on their Compose Enterprise clusters.

Dj Walker-Morgan
Dj Walker-Morgan was Compose's resident Content Curator, and has been both a developer and writer since Apples came in II flavors and Commodores had Pets. Love this article? Head over to Dj Walker-Morgan’s author page to keep reading.

Conquer the Data Layer

Spend your time developing apps, not managing databases.