Explanation by Analogy Attempt: On-Premise Infrastructure vs. Cloud Infrastructure vs. Cloud Services
It is incredibly important in technical communication to be able to cross domains and get "the point" across. I work and deal with incredibly talented people who are not concerned with the technical differences between On-Premise infrastructure, Cloud Infrastructure, and Cloud Services (or Serverless Applications) but are definitely interested in at least understanding them from a broader perspective. As such, I attempt the following analogy and welcome any feedback from the technical community.
In this scenario, we are considering an anomalous application; imagine a Netflix or Facebook if it makes it simpler. We are equating it to the construction of a small dollhouse. To extend the analogy even further, we'll say that the dollhouse itself is the infrastructure that the application lives on and the dolls and furniture are the application code itself (makes sense, those are the parts that the users actually want to interact with).
On-Premise
On-premise infrastructure would be similar to building the dollhouse by yourself. You design every piece of it using your experience with dollhouses, you run to the hobby store and buy every piece, you put it all together, and then you give it to the users who then put in their furniture and dolls.
There are definitely benefits to the approach:
- Once you're done building the dollhouse, you're done. You don't have to buy any more things or make any more runs to the store, nor do you have to keep paying for what you have.
- You (and maybe a partner or two) built this dollhouse, so you know and understand it inside and out.
However, you have to recognize the negatives:
- What happens if a piece or whole room breaks? You now have to run to the store and get new parts.
- What happens if dollhouses get newer and better? You will have to keep upgrading your house to keep up.
- What happens if the person who helped you build it takes a long vacation? Will you be able to fix or understand the parts of the dollhouse that they built?
- If your users grow out of dollhouses, you're still stuck with the dollhouse until you put in the effort to get rid of it (hope you have a way to do so responsibly and sustainably).
Cloud Infrastructure
Cloud Infrastructure would be similar to leasing a dollhouse from a toy rental company. Bear with me here, I know this sounds odd.
Benefits of this approach:
- You don't have to build the dollhouse at all, you can just buy it, have it delivered right to you, and the users can start playing with it immediately.
- If your dollhouse breaks, you just return the dollhouse and they'll give you a new one.
- If there's a newer/shinier dollhouse then you can give your old dollhouse back and just get a newer one for a premium.
- If your users grow out of dollhouses and don't want them anymore, you just stop paying.
Negatives:
- While the dollhouse rental company has a ton of options that cover 99% of dollhouse needs, if you don't like some granular specifics about your dollhouse then you basically have to request changes to the dollhouse company and hope there's enough interest for them to include it in future offerings.
- The dollhouse company is not cheap. Depending on the amount of time you need the dollhouse for, it could have been cheaper if you went with the first option and built the dollhouse yourself.
- If the dollhouse rental company goes out of business, you no longer have dollhouses.
Cloud Services & Serverless
Cloud Services and Serverless offerings would be like Legos. If your user wants space for their dolls and furniture, they can use the legos to build a house.
Benefits:
- Your users build want they want. If they want a simple little house that meets 90% of what they want then they can do that in a relatively short amount of time. You can consult them along the way for more complex builds to get that last 10%.
- If a Lego piece breaks, you can immediately just swap it out with another one. No need to return the whole house.
- Lego builds pieces that are consistently available and are guaranteed to be best-in-class quality.
- Lego provides instructions and templates to build basic houses, so everyone can build the exact same house with the exact same pieces.
- Of course, you can also add more rooms to your lego house pretty easily.
- If you tear down an old dollhouse, the basic Lego pieces are still useful for building new houses.
Negatives:
- You're used to building dollhouses out of traditional materials, providing dollhouses of the same quality using Legos will take some major re-learning.
- What happens if Lego goes out of business, or all of a sudden Mega Bloks becomes the next biggest thing? Unlikely to happen, but if it does you're going to feel really dumb for investing so much in Lego.
- Lego is really new and not well-understood in the dollhouse community. People have been building traditional dollhouses for years and clearly understand the benefits, costs, and optimizations you can make.
- Since your children are the builders of the house, you're depending on them to make good instructions if another child wants to build the same house (and let's face it, children don't want to make instructions, they just want to build!)
Like most analogies, it's not 100% aligned or correct but it is useful. Again, welcome any feedback and certainly welcome any other analogies that have helped with IT and Infrastructure communication to non-technical stakeholders!
Cover Photo by edgeeffectmedia.com on Unsplash