RavenDB Cloud solution is a managed instance of RavenDB. It is offered on Azure and AWS in all regions. We are going to be in GCP google cloud by the end of the year. We want to offer you as hassle free an experience as possible. The idea here is for you to be able to just do.
Setting up a RavenDB instance takes about a minute or two depending on the weather condition in the cloud. You don’t really need to worry about the deployment, the provisioning. You click on “create a new cluster,” you wait a bit and then you have it. A free instance has the set of features offered in the community edition license.
All of the features available in the professional and enterprise editions for the on-premise license are available in the developer and production instances. This includes encryption at rest, pull replication, added availability, and more.
Using RavenDB Cloud, you are responsible for is putting data in RavenDB and getting it out. That’s it. We are responsible for provisioning, the setup, the security, monitoring the system, managing update patches, backups, pretty much everything.
In about as much time as it took to download RavenDB we have a managed cloud instance.
A free instance lets you run queries with automatic index optimizations. You will see how you gain great returns on the cloud because even though a free index uses a less powerful machine, you can do a lot on it and with quality performance.
In this example, we are taking the sample database and making it larger to demonstrate how RavenDB Cloud handles heavy loads. I am increasing the total number of orders in our test database by a factor of 10. See how easy it works. Not too bad for a free version.
So, what do we get? We get a full RavenDB cluster, even in the free instance. In the free edition, it is just a simple node. But I can manage everything I want to do here. I don’t have to go to a separate API. If I want to work with my system, the only thing that I need to do is to work with the standard RavenDB API.
This is a lot easier for everyone.
The sad part of being on the cloud is that we have to pay for everything. They are charging us for three separate issues: instances, storage, and network traffic.
The most common scenario is that you will see are charging explicitly for the instance’s types and the storage that you are using. You can see on RavenDB Cloud that we have the instance type, and that can impact what price you have. Storage has a minor impact on price. There are also data transfer costs which are typically you would run your cloud instance in the same region as you would the system so that the cost is very small. But just be aware of it. We also have automatic backup and we can actually see that here.
Right now, you can see I am running one free instance. I also have three instances of RavenDB running as a cluster. We have Node A fully loaded pushing data to B and C. In a very short time, they will be fully replicated. You can see that the database size is interesting. We have 10GB size, and we are fine. I want my database to be boring. It should be something that you set, and just forget about.
At will, I can change the storage size. I can also change to a premium edition.
Now, we are deploying changes. At this point, we simply wait for them to take effect. RavenDB allows you to make those kinds of operations without us caring about where the changes are taking place.
The type of instances we have:
Free instance: the community edition.
Development tier: It allows you to run a single instance of various sizes. The idea is that for development you don’t actually need to have any sort of high-availability, SLA, any kind of those things. But you might want a machine to test things out. With this tier, you get a single node in a cluster.
The production tier: you have two options.
The basic tier is what we call burstable instances. Those are instances that have variant power. The basic idea here is that you are not running a highly loaded system, then you can benefit here. It means that we are not giving you 100% of the system. We are giving you some of that but you have the capability of gathering resourced over time and being able to spend them during peak times.
The standard option is more powerful. They come with very high CPU workload and they tend to be much more powerful in general if you need to go there. The idea is that depending on your needs, you can select exactly the instance that you want.
You can also do that when you are running. For example, my system is still running. We are currently running on AWS and AWS has a limited storage. You can only change storage once every six hours or so. So now I am running on my lowest instance. I am going to change that right now. I am going from 2 core and 2GB to 4 cores and 4GB.
I am going to do that while I have the client running. Something bad happens. I lost my server. RavenDB is a distributed database, failure of an instance is expected. It is for sure going to happen. But from the point of view of the client, there is a peak in latency for a split second, but no disruption in service.
Upgrading an instance between sizes takes 2 minutes. Upgrading an entire cluster takes less than 10 minutes. You can see on the management studio that right after we made the change, we went up from 2 to 4 cores and to 4GB of storage.
Hitting the Boundaries of Your Instance
What happens when we run through the available resources of the system? Let’s increase the total number of orders by an order of 10,000. Please do not try this at home.
We are putting a lot of load on the server. We are consuming a lot more resources. You see that we are beginning to get a lot of notifications from RavenDB saying, “something is going on!”
Staying In Control of Your Database
One of the issues with managed services and cloud infrastructure is that you lose a lot of control. That can be really frustrating because you need to know what the system is doing. You need to go into the logs and see what is happening. What is costing me so much time? On the cloud, in many cases the platform has to hide it because of the architecture and the way they are running multitenant systems.
RavenDB makes sure you can see its logs. We take this “job” away from the cloud provider so you can see every action that is taken in your database to diagnose anything that is costing you too much in time or money.
Now that we created 10,000 times the original orders, RavenDB is telling you that you have reached the limits of your resources and need to act. The first thing you can do is to check the behavior of your database internally. What actions are consuming so much of your resources?
Let’s take a look at what is happening behind the scenes. You will need to diagnose what is utilizing too much and delivering too little.
A few important things: This is your cluster. You can do whatever you want. Indexes. Databases. You are free to do with your database whatever you want. All the diagnostics of your database you don’t need to call support to find out what is going on. We have done a lot of work on RavenDB to make these things visible to the user and we are not willing to give that up just because we are in the cloud. We have had to do quite some interesting things to make this possible, but it works and it is something we are very proud of.
Cutting Costs on the Cloud
We have several ways to reduce cost on the cloud. The first is to simply go with RavenDB. To the end of 2019 we are offering a 10% discount on all instances in all tiers so you save right off the bat. Another option is to use burstable instances. they represent a 15-20% potential price reduction. We also offer on-demand yearly contracts with discounts based on how you are using them.
You can save a lot here without doing anything complicated.
Baseline support – where we keep your instances up and running.
Professional – baseline support plus we will do more in-depth work, working with the application itself, how to architect that, support for specific issues, and more.
Enterprise – professional support plus we have people to tell you how to better optimize your resources, 24/7 support, and more.
Based on the instances you decide on and the support option you choose, support is part of your pay as you go hourly metered rate.
RavenDB Cloud also supports custom made instances where you dictate the features and makeup of your cloud system and we make that happen.