A reflection on my first few Azure deployments, the similarities between Microsoft's cloud platform and AWS, and why understanding cloud fundamentals matters more than memorising service names.

When I first started exploring cloud computing, I knew it was an important part of modern software development. Almost every conversation around building scalable applications, deploying production-ready systems, and managing infrastructure eventually led to the cloud.

But understanding cloud computing theoretically and actually deploying applications to the cloud are two completely different experiences.

Recently, I've been exploring Microsoft Azure, learning how its services work, experimenting with different configurations, and deploying about three to four projects. Each deployment has taught me something new, not just about Azure but also about what it means to build and maintain applications beyond my local development environment.

As I became more familiar with Azure, I started asking myself a question:

How does Azure compare to Amazon Web Services (AWS), and what makes one a better choice over the other?

This curiosity led me to explore both platforms, understand their similarities, and appreciate the differences in how they approach cloud infrastructure.

In this post, I'll share some of my observations, compare their major services, and reflect on what I've learned so far.

Understanding the Two Giants: Azure and AWS

Before diving into the technical comparison, it's worth understanding what these platforms actually offer.

Microsoft Azure is Microsoft's cloud computing platform. It provides services for building, deploying, and managing applications through Microsoft's global infrastructure. From virtual machines and databases to serverless computing, artificial intelligence, networking, and storage, Azure provides developers with the tools needed to build modern applications.

On the other hand, Amazon Web Services (AWS) is Amazon's cloud computing platform. It offers a broad collection of cloud services, including computing, storage, databases, networking, analytics, machine learning, and application deployment.

Both platforms solve similar problems, but they approach certain aspects of cloud management differently.

One resource I found particularly useful for understanding this comparison is Microsoft's Azure and AWS Cloud Service Map. It provides a breakdown of equivalent services across both platforms and is a useful reference for developers transitioning between cloud providers.

Azure vs AWS: Comparing the Core Services

One thing I quickly realized while exploring cloud services is that most major cloud providers offer solutions to similar infrastructure challenges.

The service names might differ, but the underlying concepts are often closely related.

Here are some of the major comparisons.

1. Compute: Azure Virtual Machines vs Amazon EC2

Compute is one of the most fundamental components of cloud computing.

In Azure, we have Azure Virtual Machines, while AWS provides Amazon Elastic Compute Cloud (EC2).

Both services allow developers to provision virtual servers, configure operating systems, allocate computing resources, and run applications without having to maintain physical servers.

For example, if I wanted to deploy a backend application that requires a Linux server, I could create an Azure Virtual Machine or launch an EC2 instance.

The experience and configuration options differ, but the goal remains the same: providing computing infrastructure on demand.

One thing I've learned is that deploying an application isn't just about getting it online. Understanding the server, its resources, security configuration, and networking is equally important.

Further reading: Azure Virtual Machines documentation and Amazon EC2 documentation.

2. Storage: Azure Blob Storage vs Amazon S3

Applications generate and consume different types of data, and storing that data efficiently is essential.

Azure provides Blob Storage, while AWS offers Amazon Simple Storage Service (S3).

Both are object storage solutions that allow developers to store files such as images, videos, documents, backups, and other unstructured data.

For instance, imagine building an application where users can upload profile pictures or documents. Instead of storing those files directly on the application server, you can use cloud object storage.

This separation makes applications easier to scale and manage.

What I find interesting about these services is how they encourage developers to think beyond traditional file storage and design applications around more flexible storage infrastructure.

Further reading: Azure Blob Storage documentation and Amazon S3 documentation.

3. Database: Azure SQL Database vs Amazon RDS

Almost every application needs a database.

Azure offers services such as Azure SQL Database, Azure Database for PostgreSQL, and Azure Database for MySQL.

AWS provides Amazon Relational Database Service (RDS), which supports several relational database engines.

Both platforms provide managed database services, reducing the amount of infrastructure administration developers need to handle.

Instead of manually managing every aspect of database infrastructure, developers can take advantage of managed backups, maintenance capabilities, availability features, and scaling options.

There are also differences in supported engines, configurations, pricing, and operational features, so choosing between them requires understanding the application's actual requirements.

Further reading: Azure SQL Database documentation and Amazon RDS documentation.

4. Serverless Computing: Azure Functions vs AWS Lambda

Serverless computing is another interesting area of cloud development.

Azure provides Azure Functions, while AWS offers AWS Lambda.

These services allow developers to execute code in response to events without having to manage traditional application servers.

For example, imagine an application that processes an uploaded image. Rather than keeping a server running continuously to monitor uploads, a serverless function can execute when a new image arrives.

This event-driven approach can simplify application architecture and reduce infrastructure management.

However, serverless doesn't mean there are no servers. It simply means the cloud provider manages much of the underlying infrastructure.

Further reading: Azure Functions documentation and AWS Lambda documentation.

5. Networking: Azure Virtual Network vs Amazon VPC

Networking is another area where both platforms provide similar capabilities.

Azure uses Virtual Network (VNet), while AWS provides Virtual Private Cloud (VPC).

Both allow developers to create isolated network environments, configure subnets, manage IP addresses, and control communication between cloud resources.

Networking is particularly important when building applications with multiple components.

For example, you might have a backend application, a database, and other services that need to communicate securely without exposing everything to the public internet.

Understanding virtual networking has made me appreciate that deploying an application successfully involves much more than uploading code.

Further reading: Azure Virtual Network documentation and Amazon VPC documentation.

6. Identity and Access Management: Microsoft Entra ID vs AWS IAM

Security is one of the most important considerations when working with cloud infrastructure.

Azure provides Microsoft Entra ID for identity and access management, alongside Azure Role-Based Access Control (RBAC) for managing permissions to Azure resources.

AWS provides Identity and Access Management (IAM).

Both platforms allow organizations to control who can access resources and what actions they can perform.

This is particularly important when working on projects involving multiple developers, administrators, and services.

One important lesson here is that cloud security should never be treated as an afterthought. Proper identity management, access restrictions, and permission configurations should be part of the development process from the beginning.

Further reading: Microsoft Entra ID and Azure RBAC documentation, alongside AWS IAM documentation.

A Quick Comparison Table

Here's a simplified overview of some equivalent services:

Category Microsoft Azure Amazon AWS
Virtual Machines Azure Virtual Machines Amazon EC2
Object Storage Azure Blob Storage Amazon S3
Relational Database Azure SQL Database Amazon RDS
Serverless Computing Azure Functions AWS Lambda
Virtual Networking Azure Virtual Network Amazon VPC
Identity Management Microsoft Entra ID / Azure RBAC AWS IAM
Container Orchestration Azure Kubernetes Service (AKS) Amazon EKS
Secrets Management Azure Key Vault AWS Secrets Manager
Monitoring Azure Monitor Amazon CloudWatch
Content Delivery Azure Front Door Amazon CloudFront

It's important to understand that these are functional comparisons, not necessarily exact equivalents. Each platform has its own architecture, features, pricing structure, and limitations.

So, Which One Is Better: Azure or AWS?

This is probably the question most people want answered.

But honestly, I don't think there is a universal winner.

Both platforms are powerful, mature, and capable of supporting applications ranging from small personal projects to large enterprise systems.

However, there are some differences worth considering.

1. Microsoft Ecosystem and Enterprise Integration

Azure has a natural advantage for organizations that already depend heavily on Microsoft technologies.

Its integration with Windows Server, Microsoft Entra ID, Microsoft 365, and other Microsoft enterprise products makes it an attractive option for many businesses.

2. Service Breadth and Cloud Ecosystem

AWS has a broad and mature cloud ecosystem, with a large collection of services covering different infrastructure and application requirements.

Its extensive service portfolio makes it a strong option for organizations building cloud-native applications and complex distributed systems.

3. Learning Experience

Both platforms have their learning curves.

However, I think the best platform to start with depends on your existing technical background, the kind of projects you want to build, and the ecosystem you intend to work with.

If you're already comfortable with Microsoft technologies, Azure might feel like a natural starting point.

If you're interested in exploring AWS, its extensive documentation and service ecosystem provide plenty of opportunities to learn.

4. Pricing and Cost Management

Another important consideration is pricing.

Both platforms use consumption-based pricing across many services, but the actual costs depend on several factors, including compute resources, storage, network traffic, database configurations, and deployment regions.

This is why I believe developers should learn cloud cost management early.

A successfully deployed application is great, but an unnecessarily expensive deployment is a different problem entirely.

What My Azure Experience Has Taught Me So Far

Deploying three to four projects on Azure might not make me an expert in cloud computing, but it has given me a much better appreciation of what happens behind the scenes when applications go live.

Here are a few things that stand out from my experience.

1. Deployment Is More Than Just Writing Code

As developers, we often spend most of our time thinking about application logic, APIs, databases, and user interfaces.

But deploying an application introduces another layer of responsibility.

You begin thinking about infrastructure, environment variables, networking, permissions, security, monitoring, and availability.

It changes how you approach software development.

2. Understanding the Fundamentals Matters More Than Memorizing Services

Azure has hundreds of services, and AWS has an equally extensive ecosystem.

Trying to memorize all their names and functionalities is overwhelming.

I've come to appreciate that understanding concepts such as compute, networking, storage, databases, identity, and security is much more valuable.

Once you understand these concepts, learning how different cloud providers implement them becomes easier.

3. Cloud Computing Changes How You Think About Scalability

Running an application locally is one thing. Making it accessible to users across different locations while maintaining performance and reliability is another.

Cloud platforms provide tools that help developers build scalable systems, but those tools still require proper configuration and architectural decisions.

4. There Is Always Something New to Learn

Perhaps this is my biggest takeaway.

The cloud ecosystem is constantly evolving. New services, features, deployment approaches, and architectural patterns continue to emerge.

Even after successfully deploying multiple projects, there are still areas I want to explore, understand, and improve.

And I think that's one of the exciting things about working in technology.

Should Developers Learn Both Azure and AWS?

My answer is yes, eventually.

However, I wouldn't recommend trying to master both platforms simultaneously when you're just starting out.

I believe it's better to choose one platform, understand its fundamentals, and build real projects with it.

Once you're comfortable with cloud concepts and have hands-on experience, exploring another provider becomes much easier.

For someone already learning Azure, exploring AWS could be a valuable next step.

You begin to understand that cloud computing isn't tied to one company or platform. It's about understanding how modern applications are built, deployed, secured, and maintained.

Further Reading and Resources

If you're also beginning your cloud computing journey, here are some resources I'd recommend exploring:

  1. Microsoft Azure Documentation: A comprehensive starting point for understanding Azure services, configurations, and deployment processes.

  2. Microsoft Azure and AWS Cloud Service Map: A useful comparison guide that maps common Azure services to their AWS equivalents.

  3. Azure Architecture Center: A resource for learning cloud architecture, design patterns, infrastructure decisions, and best practices.

  4. AWS Documentation: Official documentation covering AWS services, tutorials, and implementation guides.

  5. AWS Well-Architected Framework: A useful resource for understanding how to build secure, reliable, efficient, and cost-effective cloud workloads.

  6. Microsoft Learn: Interactive learning paths and practical modules for developing Azure skills.

These resources have helped me appreciate that cloud learning goes beyond knowing how to deploy an application. It's also about understanding why certain architectural decisions are made and how to make better ones.

Final Thoughts: It's More About the Knowledge Than the Platform

My journey with Azure is still ongoing, and deploying a few projects has only made me more curious about the possibilities of cloud computing.

Comparing Azure with AWS has helped me understand that although the platforms have different service names, interfaces, architectures, and ecosystems, they share a common goal: helping developers and organizations build reliable, scalable, and secure applications.

For now, I'm enjoying the process of learning Azure, experimenting with its services, and putting what I learn into practice.

My next goal is to deepen my understanding of cloud architecture and explore more advanced deployment strategies.

One thing I've realized is that learning cloud computing is not about knowing every service a provider offers. It's about understanding the problems those services solve and knowing how to use them effectively.

And honestly, I think that's where the real learning begins.

What's your experience with cloud computing?

Have you worked with Azure, AWS, or both? Which platform do you prefer, and what influenced your decision?

I'd love to hear your thoughts.