I had a conversation recently that started a train of thoughts related to database, cloud providers, and risk.
Should we treat DBs like investments and diversify investing in the best suit for a specific need, or try to keep everything in the same ecosystem?
Stock market DBs
When your IT stack is diversified, the risk is lowered as you don’t rely on any specific omnipotent provider that can at some moment fail and bring down your entire IT infrastructure, what are the pros and the cons?
Pros
- Lowered Risk (?)
- Higher Flexibility
- Ad-hoc solutions for specific requirements
Cons
- Higher Costs
- Egress charges for systems to communicate between cloud providers or between cloud and on-premise
- ETL costs to integrate data coming from one system to the other
- Creating
- Running
- Maintaining
- Evolving
- Knowledge
- Ad hoc integration
Basket full of DBs
When all your eggs are in one basket, you’re bound to the basket destiny, but what does this risk gives you?
Pros
- (possibly) Lower TCO
- Bundle licenses
- No egress charges if in the same geographic area
- Reduced data movement
- Reduced ETL complexity
- Easier to focus on optimizing a specific platform
- Ability to hire specialized developers
Cons
- (possibly) Suboptimal feature set
- If your provider decides to deprecate a critical feature for your business, you’re screwed
- In case of a cloud provider that’s no longer competitive, the whole IT stack needs to be moved over
Think about it
What’s the best approach to take? Like most of the big questions in IT, the answer is “it depends”
Like Obi-Wan said, only a Sith deals in absolutes ; the considerations above are meaningless without considering the size of your business, of your data, your existing IT stack, your employees, their knowledge and much more.
Personally, I don’t like the approach of having many diversified technologies if you don’t have at least as many experts in that particular technology in your team.
I’ve seen lots of projects fail not for the technology used, but by how it was used.