TL;DR: We're upgrading our MongoDB deployments to give you more powerful infrastructure and more control over your database... we think you're going to enjoy them!
In June, we let our community know that we will be enhancing our MongoDB deployments. We've been hard at work preparing what will become our new standard MongoDB deployment.
In the coming weeks, we'll be announcing our roll-out plan - don't worry, you'll receive ample notice before the release. You'll receive even more notice when your "legacy" MongoDB deployment will be out of style and you'll be required to update.
As we embark on some final preparations, here's an overview of our new deployment architecture that should help you get comfortable with what we'll be changing.
Our current MongoDB Elastic Deployments are made up of three key members, housed together in a replica set:
- Two data capsules, accessible from the Internet via public hostname/port.
- One backup capsule, allowing the databases to be backed up without needing to stop.
Looking at our new MongoDB deployments, it's clear we've added a significant amount of substance to our offering:
Let's take a quick tour to see what's new:
We are putting two routers in front of your database. By using MongoDB's sharding (mongos) with just one shard, we can route queries and write operations to database instances within the single shard's replica set. This reduces the complexity you see when querying your database. Instead of needing to know the topology of your replica set to specify which database member you'd want to connect to, the routers manage that and become the central point for your connections.
Haproxy has been added into these routers, providing an avenue for secure SSL connections. By moving the proxy into the mongos router capsule, you will be able to control white-list IP address filtering and implement other security access features. With everything in the capsule, the transit between the router and the proxy is separate, quick, and secure.
The new router nodes are not the only new part of the deployment. To help the routers manage the connection between themselves and the single shard replica set, the deployment comes with three configuration servers and an arbiter. The configuration servers conduct the communication between the pair of mongos routers and the single shard. The single shard's replica set has an additional component, over our current MongoDB Elastic deployment architecture, an arbiter. The set contain two members for data and one member for backup. As the backup member doesn't take part in the replica set's voting (as it can't take over when something goes down), an additional member, the arbiter, is added to allow the replica set nodes to vote decisively.
All the nodes of the MongoDB architecture exist within a secure private VLAN, created on-demand using Software Defined Networking. With the routers handling the SSL connections, the private VLAN prevents the need for redundant SSL connections - just the way MongoDB likes it.
The new architecture provides a more robust, secure, maintainable MongoDB deployment:
By placing a pair of mongos routers in front of your database, it makes it easier for us to service and maintain your deployments. This means less downtime and a less disruptive process for maintenance.
We've made some significant improvement to how our MongoDB deployments handle fail-over. By using the mongos router, we avoid common MongoDB driver related performance hits that can occur during change-over even when the change-over is properly managed.
The mongos routers give you a fixed connection point; all you need is the address of the routers. No need to re-specify members within your application if your topography happens to change.
The updated configuration brings MongoDB fully in line with our other database offerings, giving you seamless back-and-forth communication and better consistency.
Strengthened security: With SSL handled by an independent proxy and internal communications on a private VLAN, there's no redundant SSL connections between the nodes of your deployment.
More control for you! Thanks to our improved security and capsule-based architecture, you now have the ability to create your own privileged users.
More infrastructure up-front for $31, same $18 cost per GB to scale.
New architecture enables quicker deployment of new add-ons so you can use them faster. If you liked our New Relic integration, you'll be pleased with what we have coming (hint, hint).
You should now have a good general idea what our new approach could mean for your applications. The new deployments provide a stronger backbone at an additional cost. If you'd like to see how we came to the $31 initial deployment cost, you can see our pricing logic laid out clearly within this article.
We've taken the simplicity, power, and flexibility of our previous MongoDB Elastic Deployments, and brought the same databases that just work experience to a more expansive, secure and maintainable offering.
For a deeper look into what we've added, in particular the added SSL security, you can find the information here.
We encourage you to take the hands-on approach until we're fully launched. Login to your Compose account or sign-up or our 30-day trial, select 'Create Deployment', then spin-up our next generation of MongoDB deployment by selecting a MongoDB+ beta deployment.
If still you're a bit fuzzy on the details, or would like to give us some feedback, we'd love to hear from you.