Serverless Databases a game changer ?
Most critical component of any web or mobile application is its database. 80% of the engineering effort goes into optimization of database queries, reducing database calls and adding cache layer like Memcache or Redis.
With infrastructure as a service model cost of databases has drastically gone down and it has become far more easy to scale databases with just few clicks. Startups and mid-scale companies find it very difficult to hire talent that can optimize database bottlenecks. Developers are more trained on building applications rather than focusing on core performance and optimization.
Scaling databases is not easy, both horizontal and vertical scaling takes time and these scaling techniques can not handle sudden peaks. In the end companies end up provisioning more database resources than the actually they need, making databases the major cost component of the entire Technology stack.
AWS launching Serverless Aurora could be a game changer
While there is some time left in its launch, I can clearly see major benefits
- Pay for what you use. No need to provision extra capacity for handling peak loads.
- Idle for test and development environments. Where load is not consistent.
- No downtimes because of database bottlenecks.
- If your load on databases is consistent, then you may end up paying more.
- Since, serverless databases operate in a shared infrastructure therefore you are not sure how will the database will scale and how fast. Similar issue that we face in AWS lambda i.e cold-start issue.
- Less control on databases. Your developers will have far less control on databases.
- Query and DB optimization may become difficult or you will never realize that there is something wrong with the query or DB structure.
It still too early to give any final verdict but I am personally very excited about AWS Serverless Aurora. DB bottlenecks could be a thing of a past just like dedicated physical servers. Wait for few months till this technology is matured and we can have some data to concretely write about its advantages and disadvantages.
Hoping for a full serverless future. :)