Should you put all your eggs in one basket? Thinking about Database eggs and Cloud baskets

Table of Contents

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.

comments powered by Disqus

Related Posts

Tracking Dynamic SQL performance automatically with a wrapper on sp_executesql (Dynamic SQL Inception)

in some projects I have a lot of Dynamic SQL going on, some queries are fast, some queries are slow, it depends on how the dynamic statement is actually put together ¯\_(ツ)_/¯ Tracking the performance of such statements is usually difficult because you don’t really know “why it’s slow” and you have to interpolate data from the app and the plan cache (if the plan is still there and wasn’t purged due to memory pressure) and try to figure out which was the piece of the offending dynamic SQL and why it did that.

Read More

The SQL Diagnostic (jupyter) Book

Welcome to 2020! I wanted to start this year by giving to all my fellow consultants another way to troubleshoot our beloved SQL Servers; I’ve already talked about diagnostic notebooks in the past, and now, since Azure Data Studio has implemented the feature, I wanted to group them into a Diagnostic Book.

Read More

DeadLock Art

I love when it happens

Read More