Today, we’re excited to announce general availability of Cube Cloud, a fully managed service for running Cube applications in the cloud of your choice.
You can try it out for free at cube.dev/cloud.
The launch follows more than two years of collecting community feedback about running Cube in production, which started with my cofounder Pavel and me helping community members manage Cube under load. We learned a lot about different load footprints, use cases, and patterns of how to scale Cube to match different use cases, and began work on what later became Cube Cloud.
Our mission: to help developers focus on building data applications with Cube, not on running, monitoring, and scaling Cube infrastructure.
Our plan: a platform purpose-built to run Cube applications, smart enough to autoscale to accommodate usage growth, and rich with controls to trace queries, inspect load, and work with Cube pre-aggregations.
I’m excited to share what we’ve built. Let’s take a look at some important new features:
Auto-scale Cube API instances
Cube API instances are designed to be scaled horizontally, but it’s hard to say at what CPU, memory, or requests threshold you need to scale, since this depends on a variety of factors, including your schema structure and footprint, API workload patterns, and database resources.
In Cube Cloud, you don't need to worry about any of it—how many instances to run, how much memory to allocate, etc. Cube Cloud knows how to autoscale your deployment based on API workloads and a multi-tenancy structure to load-balance schemas per API instance.
Cube Cloud also auto-scales pre-aggregations of the Cube relational caching layer. Auto-scaling ingestion helps to keep cache refresh time constant even when the underlying data grows, and the same is true for the querying side: Cube Cloud takes care of bringing more Cube Store workers to process all the incoming requests.
Cache and pre-aggregations warm-up
To ensure a good user experience, we recommend pre-compiling your schema and warming up both in-memory and pre-aggregations caches before serving user requests. It usually happens during the rollout of updates to the data schema. When building multitenant applications and load balancing different schema versions across API instances, it is important to pre-compile versions of the schema per serving API instance, especially for dynamic schemas that make third-party requests.
Cube Cloud takes care of schema pre-compilations and cache warm-ups for you, including balancing multi-tenant schema versions.
GitHub integration and collaborative schema editing
Cube Cloud integrates with GitHub to streamline the process of developing and testing schema edits with your team.
First, Cube Cloud can automatically deploy changes from a connected GitHub repository. Simply commit and git push to trigger a deployment.
Additionally, if you want to edit and test your schema directly in Cube Cloud, you can do so via Development Mode, which deploys your own personal API endpoint to test out via Playground as you edit the schema. When you’re happy with your updates, you can commit and push your changes via the git integration, then share these updates with the rest of your team or push them to a production environment in Cloud.
We’re now actively working on some neat features to support staging environments and more collaborative workflows. For example, multiple branches on each deployment will soon allow you to set up multiple environments with the same backend data source and caches, while using different schema versions and resource configurations. We’ll also enable you to open pull requests and merge branches directly from Cube Cloud. Watch this space.
Monitoring
Cube Cloud provides performance monitoring for API instances and your source database. Use this tool to monitor overall load, and spot slow queries to optimize.
Additionally, we're working on integrations with third-party alerting and APM tools like Datadog and PagerDuty, so you can export metrics and logs of your Cube Cloud deployment to these tools.
Query Tracing
Query tracing provides a historical view of all your Cube API and database queries. This can be very helpful both during development and in production to find slow queries, understand the lifecycle of each query, and optimize performance and caching configuration.
Pre-aggregations management
Cube can accelerate a query by utilizing pre-aggregations—aggregated and optimized representations of source data—instead of processing raw data. In Cube Cloud, it’s easier to create and configure pre-aggregations during development and maintain them in production. We've built a control panel to view all your pre-aggregations in one place.
This tool lets you view build history, partitions, build times, refresh times, and much more. You can also build pre-aggregations manually with the Build All
button, or select individual partitions to build.
To track the history of pre-aggregations over time, Cube Cloud provides a list of every build that happened.
Security
Cube Cloud is not just the fastest way to run Cube; we aim for it to be the most secure.
For starters, all communications between Cube Cloud and your databases can be encrypted. In addition, it’s possible to run Cube Cloud in an isolated, dedicated VPC that can be peered to your database's VPC.
Encryption at rest for pre-aggregations using Customer Key Management is available for dedicated VPC instances.
To make it easier to use Cube Cloud in large enterprise environments, we’re actively in the process of earning our SOC-2 certification. If you’d like to be updated on our progress with this certification, please let us know.
Starting price: $0
We’re so confident that Cube Cloud is the superior way to develop and run Cube, and proud of the features that we’ve added, that we encourage every developer to use it.
Cube Cloud is totally free for up to 1GB/month of processed data—with no limitations on access to the Cube Cloud IDE and no cap on the number of data stores you connect or API instances you create. Give it a try now. (For additional data as well as auto-scaling and high availability, pricing starts at just $99/month. Learn more about Cube Cloud pricing here.)
If your team requires dedicated infrastructure, support and training, SLAs, or other custom enterprise features, get in touch: we’re happy to help.
This is just the beginning
More is definitely in store! We will continue to build more tools in Cube Cloud to ensure smooth development, staging, and production for Cube-powered data applications. We also hope you’ll share your feedback and feature requests by dropping us an email, finding us on Twitter, or participating in our Slack community.