Sky is Big Enough for Multiple Clouds

Sky is Big Enough for Multiple Clouds

I’m preparing for the Google Professional Cloud Engineer exam this year, aiming to transition out of programming. While tools like Bard, GPT, and Copilot have definitely eased the coding stress, the appeal of cloud engineering remains strong. The ability to quickly build robust infrastructure is very attractive.

I have been learning and developing cloud based projects for the last 2.5 years. This article explores my experiences and opinions about different services provided by the three most popular cloud providers.

Before we start, let me clarify a few terms. Multicloud is often confused with hybrid cloud. Here is the key difference between them.

Multicloud refers to the practice of using multiple cloud providers (like AWS, Google Cloud Platform, Micrsoft Azure, etc.) together to meet different business needs in a single architecture.

In contrast, hybrid cloud refers to the use of cloud services in different combinations of on-premises cloud computing, public cloud computing, and/or private cloud computing.

  • In multi cloud, organizations leverage the strengths of multiple clouds simultaneously, instead of than relying on a single provider.
  • Each cloud provider brings unique capabilities, and pricing models to the table which allows us to select the best fit for each application.
  • We can control and distribute the workloads strategically as needed to avoid vendor lock-ins.
  • We can take advantage of their unique security features, as each cloud provider has a unique way to manage its resources. Going multicloud means our data is guarded by multiple defenses, which makes it difficult for cyber threats to break in.

So make best use of each cloud provider to get the work done most effectively. Because ‘Every cloud has a silver lining.’

  1. Increased complexity:
    The decision to use multiple cloud providers naturally brings increased challenges. It’s not even easy to manage access to environments, resources and applications consistently and efficiently when everything is working on a single cloud platform. Doing the same on 2 or 3 definitely adds to complexity.

2. Cost Management:
Bringing multiple vendors into picture also invites the complexity of managing the cost of each one. If not done the right way, this can lead to the very problem why we switched to cloud in the first place — Cutting costs. Flexible charging methods and pay-as-you-go leads to unpredictable costs.

3. Need for skilled teams: Increased complexity needs increase in the skills and managing brains in the team to design, implement, and manage them. Stacking the team with right set of people is necessary in muti-cloud architecture for cost management, increased security concerns, and complexity issues.

(No technology is perfect enough to meet all the business needs in the world. They all have pros and cons. They can meet some qualities better than the rest.)

  • Positives of AWS

  • Being the most popular, AWS is the established leader in market share, with around 32% of the market share. While Microsoft Azure and Google Cloud hold the second and third position with approximately 22% and 11% market share, respectively.

  • You will most likely have an easy time finding an opportunity because most of the companies are working with AWS for some workload.
  • It seems to require the most boilerplate to get going, but once you’re going, they have the broadest offering of services.
  • Network performance in AWS is probably the most oversubscribed of the three; their VPC and on-prem peering features and architectures also seem to be the best.
  • API references and documentation are pretty good too.
  • Community & customer service are GREAT. AWS is way more customer-centric, meaning we get great support, and their product teams/engineers are way more accessible.

(Think of 2015 as the ‘AWS era’ of cloud computing. In 2024, its not the case with the rise of robust alternatives to AWS, businesses now have a wider range of options to choose from.)

Negatives of AWS

  1. AWS has a literally ancient-looking console and interface. It feels clunky most of the times. If you like clean and minimalism user interface, trust me, GCP is all you need.
  2. The console can be a bit of a mess and doesn’t have 100% parity with the APIs/SDKs.
  3. AWS people are definitely easier to find now than they were 5 years ago so there’s more competition there.
  4. Dont get me started on their naming conventions :)

Positives of Azure:

  1. Although trailing behind AWS in current market share, Azure boasts a growing user base. Many companies are choosing it for their workloads, suggesting its potential for future prominence.
  2. The tight integration with the developer toolchain saves significant time and effort compared to setting up AWS with its boilerplate configurations. If you’re a C# and .NET developer, Azure feels like a perfect fit
  3. Their recent integration with OpenAI/ChatGPT, featuring enterprise-friendly licensing, makes it a compelling option for those wanting to leverage cutting-edge AI capabilities.
  4. If you’re more into open source and Linux, go ahead with Azure, as Azure has made huge strides in this area.
  5. It’s fairly easy to find what you’re looking for on their console.

Negatives of Azure:

  1. While Azure is a strong contender, it’s often considered the pricier option compared to AWS and GCP, especially for certain use cases.
  2. Networking and all that isn’t nearly as mature like AWS, as Azure started as a Platform as a Service and then moved into Infrastructure as a Service.
  3. While Azure leverages Active Directory for identity, permissioning directly on containers and resources feels less granular compared to AWS’s policy-based approach.
  4. Documentation structure could be improved. Finding the right API reference can feel like searching for a needle in a haystack.

Positives of GCP:

  1. They are the cheapest of the three.
  2. Absolutely! Google’s strength lies in its interconnectedness. From developing with Flutter to deploying on Google Cloud, machine learning through TensorFlow, and reaching users through YouTube and other apps, it’s a cohesive ecosystem for creators and businesses alike.
  3. Its way less competitive to go with GCP. Many companies struggle to find qualified GCP professionals. Earning a GCP certification can position you as a valuable asset in the job market.
  4. Google Cloud Platform has the highest paying jobs and is more niche and less flooded.
  5. I'm totally hooked on the Google ecosystem these days. Flutter for building amazing apps, TensorFlow for pushing the boundaries of AI, and Google Cloud for a rock-solid foundation— what’s not to love?

Negatives of GCP:

  1. Non-existent support/customer service. Never forget, Their docs are difficult.
  2. Cloud Identity is a NIGHTMARE where G Suite licensing, cloud identity, and your personal Gmail are constantly with fighting each other.
  3. Networking is severely limited in features; has good performance tho.
  4. Names are also identifiers, meaning renaming anything is difficult, if not impossible.
  5. It also started as a Platform as a Service before moving into Infrastucture as a Service. It’s limitations make it less ideal relative to other cloud providers.
  6. Storage permissions have some serious flaws, and their SDKs and transfer services have been super flaky.
  7. GCP still struggles with large scale storage.

AWS (left), GCP (right)

Sure, even the biggest cloud providers aren’t perfect, and navigating their complexities can be challenging. But that’s where we come in! This influx of challenges creates a greater demand for expert guidance. Cloud providers are recognizing this by offering companies free resources and credits to onboard them with more support.

Every now and then I get tossed with a question — Which is the best cloud provider?

The battle of cloud supremacy will never end. But the right question is — do we really need a single winner out of it?

AWS, GCP & Azure (fun indented)

The cloud landscape is dynamic, and the best approach is often a multicloud one. By understanding the strengths and weaknesses of each provider and the challenges of a multicloud strategy, you can elevate your cloud game and achieve the best possible outcomes for your organization.

That’s all for today! Feel free to hit me on Twitter! Also, do check out my repositories on GitHub and don’t hesitate to reach out to me if you would like to work on any of my existing projects or think I would be a good fit in your project :)