Are you cloud agnostic?

Before I start swinging towards one option or the other (being cloud-agnostic or not), let's discuss what it actually means.

I am sure that we all hear a lot of brouhaha over being cloud agnostic, and most people believe that being cloud-agnostic means that we should be able to lift "all" our Cloud Infrastructure from one vendor and shift to other on a moment's notice. If you keep this as your principal tenet, then you will probably end up running private datacenter like infrastructure on borrowed cloud servers, which, in my opinion is not the most wise strategy.

However, I have seen multiple examples where teams (and probably companies) spend a lot of time and money in developing platform technologies that are readily available as managed service, only to realize that creating a robust scalable, distributed cloud platform takes time, effort and of course ongoing maintenance, which pushes their release and go-to-market cycles further. This is loss of potential revenue and unwise spending of resources.

In many cases, start-ups beat established companies to market by assembling readily available PaaS offering and creating value for customers. After all, most customers don't care if you have created your own Infrastructure or you used managed offerings from a cloud vendor. Point to understand is that, it is the product that sells and customers care about, not underlying infrastructure. And achieving the same quality and scale that a cloud vendor can offer is more-often-than-not a herculean task, which is best avoided.

By now, I must be sounding like an advocate for a vendor lock-in. Well, I advocate a hybrid approach, where you own most of your business logic and try using the cloud offerings that don't really lock you in with proprietary technologies. This can be achieved by making intelligent choices of suitable Cloud Services and by writing vendor specific wrappers around your code (check Facade Pattern).

For example, a simple Infrastructure that contains Data Processing, Storage, Message Queue and a User Interface could be built quite easily on AWS using EMR (Spark jobs for Data Processing), Kinesis (Message Queue), RDS (Storage) and React UI (use any of the AWS hosting solutions).

If you look at this Infra from the top level, you might see EMR, Kinesis, RDS and infer that this is locked-in with AWS.

If you look little deeper, Spark jobs are your business logic written in Java/Scala and can be ported to any Spark platform without any changes in core business logic. You have wrappers around your code to read data from Kinesis and will just change the wrapper functions to start reading from Kafka, this shouldn't be a huge investment. Similarly, let's say that you are using PostGres on RDS; all your DB Schemas, SQL Queries and Data can easily be ported to any other Cloud Platform providing PostGres. React UI should be straight forward too, you just need a Web hosting platform.

So, in this case, you just manage your business logic and leave every other aspect of Infrastructure management to the Cloud Vendor. Some of other things that you might get by intelligently using PaaS offering are Identity and Access Management, Auto scaling, High Availability, Disaster Recovery etc., without having to burn the time of your talented programmers on infrastructure management.

By no means, I am saying that you will be able to shift from one cloud vendor to other in a matter of hours, however by making intelligent choices you will save money and time and will be able to concentrate on what matters most (i.e. "Creating value for your customers").

And...you will have a happier team, that is not burning hours in solving the tedious issues of scalability and stability of the underlying Platform.

要查看或添加评论,请登录

Sovit Garg的更多文章

  • A quick write up on http3

    A quick write up on http3

    The world-wide-web (aka internet) has come a long way since its early days and so has the protocol that powers it i.e.

  • Pressing Need for Explainable AI (XAI)

    Pressing Need for Explainable AI (XAI)

    AI is transforming industries, but a critical issue emerges as AI makes decisions impacting our lives. Explainable AI…

    1 条评论
  • The AI Feedback Loop: A Growing Threat to the Integrity of Future AI Models

    The AI Feedback Loop: A Growing Threat to the Integrity of Future AI Models

    The AI feedback loop refers to a scenario where artificial intelligence systems use their own outputs as part of their…

  • GPT in Plain English

    GPT in Plain English

    GPT stands for Generative Pre-trained Transformer. Generative: The term “generative” refers to the model’s ability to…

    1 条评论
  • The Echo Chambers of Our Digital Lives

    The Echo Chambers of Our Digital Lives

    In today’s digital landscape, artificial intelligence significantly shapes our access to information, often amplifying…

    3 条评论
  • The Power of Proactive Communication

    The Power of Proactive Communication

    Being self-disciplined and proactive is like having a secret weapon for collaboration, effective management and peace…

  • Simplest Intro to Programmatic Advertising

    Simplest Intro to Programmatic Advertising

    When my daughter asked me "what do you in office?", I told her that I put ads in her games and YouTube videos, she…

  • How to approach System Design interviews

    How to approach System Design interviews

    In recent past I got the privilege of interviewing and chatting with a few senior engineers and engineering managers on…

  • Covid-19 taught managers to trust people

    Covid-19 taught managers to trust people

    Covid-19 has changed a lot around us, and will continue to change the way we live, collaborate and work, especially in…

    1 条评论
  • What you measure is what you get

    What you measure is what you get

    "..

社区洞察

其他会员也浏览了