Databases used to require a huge upfront investment and a dedicated team to manage it. This is not the only option to go with anymore with the rise of a database as a service by most cloud vendors. With a database as a service, you can have a database that is fully managed for you making it really simple to use.
While going the database as a service route seems to be an easy path there are things that you want to consider. Not all cloud service vendors provide the same feature set. In this post, I’m going to be going over some common topics you should consider when deciding on a database service.
Note: This is all based on my experience and in no way is an exhaustive list of topics. Use this more as a guideline on topics to research for yourself.
Support for Private Cloud
Sometimes you might have strict security requirements with sensitive data. In those cases, you might need to have your data isolated from the public cloud where hardware can be shared with others. In a private cloud, the cloud provider will host your data in hardware that is isolated only to you.
Security Features
Keeping your data secure is important. Each cloud database provider can offer different levels of security. Some might handle encryption of data for you without you needing to do anything. Others provide you with the functionality to encrypt data with your own keys.
Know the Hard Limits
When considering a database service it is important to take into account any hard limits they might have. For example, some might allow data up to a certain size, which can be a deal-breaker. Some might have a limitation on how many concurrent updates can happen. Depending on your use case the hard limits for a database provider may or may not matter.
Data Integrity
Cloud database services each tend to have their own implementation of providing data integrity. To keep things simple data integrity is when you modify a piece of data when you read the data you’ll get the latest version written. Also, when you perform an update to multiple pieces of data, you will get the latest version for each one. Depending on your use cases, some databases would be more viable.
For example, every time you make an update several pieces of information must be updated together. Some database services only provide a guarantee on a single update, so you can end up with some data being updated and others are not. Some database service provides batch update functionality where multiple updates get apply together or none at all when one fails. For this particular use case, the all-or-nothing functionality would be important.
High Availability
If you’re using a database for mission-critical systems then database services that support high availability are very important. Most database services would offer some form of high availability but have different implementations. Some support data replication only within a single region (geographic area) while others let you have data replicas in different regions with variable consistency. Others let you enforce consistency when writing even when data replication is across different regions. Depending on your needs one implementation can be more suitable than another especially when you consider the cost.
Disaster Recovery
When something bad happens you’ll want your database to be able to recover. However, there is more to it. How fast do you need the database to recovery? Some database providers have different tiers of recovery. While others have just one and might even require you to contact them. This depends on the level of control you want when it comes to recovery.
While most cloud database services share similar features the implementation is different. The level of control you get also varies depending on the database provider. It is important to consider your use cases and then determine the cloud database provider that best suits your needs.
I hope this post was helpful to you. If you found this post helpful, share it with others so they can benefit too.
To get in touch, follow me on Twitter, leave a comment, or send me an email at steven@brightdevelopers.com.