Cloud is already a key IT platform for large enterprises and database in cloud will be the next big leap. Most of the new age companies who started operations in the last decade have already reaped the benefits of database in a cloud environment or Database-as-a-Service. But there has been some resistance at certain enterprise levels, when it comes to putting database in Cloud. We can feel this resistance whenever there is a discussion about cloud adoption with enterprises in retail, banking, insurance or telecom. Usually the ‘excuses’ are quite common –
- Cloud is not secure – “We cannot have our data out there in open”
- Performance issues – “Because of the apparent network latency and connecting via public world wide web, there are inherent performance issues with a cloud based setup”
- My DBAs lose control – This is a classic excuse an operation team will put forward “my DBAs will lose control and ability to tune the database and fix issues”
While there is some element of truth in these concerns but the challenges can be easily addressed with the right choice of cloud vendor, correct choice of a solution partner and a thorough plan. Let me first try to explain how new ventures have been able to look past these concerns and adopt cloud in an effective way.
1. Cloud servers are actually more secure than you think – If you invest in the right cloud vendor, the setup in cloud will be secure and backed by industry certifications. For example, Amazon Web Services – one of the largest cloud providers has secure data-centres across the world that are backed by secure network architecture. AWS also complies with various industry standards. When it comes to securing access to your application, it is a shared responsibility. Application architects have the same accountability in a cloud based deployment that they would have for an on-premise setup. To a large extent, it is also a developer’s responsibility to ensure security of your data and mask/encrypt sensitive fields. This can be made easy by choosing the right solution and solution partner. For instance, EnterpriseDB provides a fully HIPPA complaint database solution in cloud. By implementing easy-to-follow best practices you can ensure that your database is well secured. Most of the popular database solutions have well defined guides and best practices for Cloud deployment e.g. – MongoDB and Couchbase.
2. Performance can be predictable in cloud – Most of the cloud vendors today provide a direct leased line connection from their datacentre to your private network in your office or your own datacentre. This takes away the major performance bottleneck people are usually worried about. Mature cloud vendors like AWS provides direct connect facility and also top that up with capability to setup Virtual Private Network; so that you can leverage AWS cloud as an extension of your corporate datacentre. But this is not all. Cloud vendors like AWS can offer an array of options for your compute, memory and disk requirements, ensuring certain level of performance SLA. When setting up a database, getting good performance out of your disk and storage is usually the most critical part. Getting the desired IOPS from storage becomes very challenging with the storage architecture used by majority of enterprises. Whereas when you move to AWS, you get guaranteed IOPS – translating into predictable performance.
3. Your DBA’s time is put to a better use – DBAs are usually struck in maintenance and management of database and are rarely able to spend time with the development team. This leads to scenarios where-in you end up with a bad schema design or a sub-optimal application-to-database interaction. As wisely put by a friend of mine – “We usually get 5-10% of benefit by tuning parameters (of course unless they have been badly screwed-up). But when we tune the SQLs, indexes or application design we get an improvement of 50-150%.” This is something I recently noticed in two performance firefighting assignments. In the first one, the customer was experiencing very high CPU and memory utilization when one particular module was called by many users concurrently. We evaluated the issue and decided to create 2 new indexes and remodel some of the queries. The result was a drop in CPU utilization from 95% to 7%. Another instance was where the customer had faced a sudden outage because of slowness in the environment. We had very little monitoring information available because the system froze during the incident. When we started investigating we realized that there were missing indexes, frequently read/scanned tables and a sub-optimal batch process. To fix the issues, we created a few new indexes and advised the customer to tune the batch process. Our suggestion to them was to identify and update only relevant records instead of removing and inserting everything afresh as part of the batch process. This helped in a big way resulting in reduction of overall utilization of the virtualized infrastructure. Further, the batch process execution which used to take about an hour was reduced 2 minutes. Both the teams could have avoided this in first place if their DBAs were more actively involved during the application development and testing phase. But usually DBAs end up spending more time on mundane tasks like taking backup, testing them and get less time to sit with developers and tune SQLs or advise them to change the database schema proactively. Imagine if you could free up your DBAs of the routine tasks and use their time on more important and challenging tasks like SQL tuning, Schema designing, index life-cycle maintenance etc. Cloud based solutions like Postgres Plus Cloud Database offers automated deployment, scheduled backups, auto-scaling freeing up your DBAs to put their time and skills to right use.
So what is holding you back? What is your excuse for not moving your database to cloud? Today not only start-ups and new ventures but even disruptive leaders in various segments are adopting cloud. Soon we will see more databases on cloud. Our team has been working with many different customers to advise them on the right database architecture for cloud deployment, tuning the setup in cloud or migrating the setup to cloud. If there is something which is making you uncomfortable to move to cloud, drop us a note on success@ashnik.com and we will see how we can help.