Featured image of post Azure LAN to Cloud Project- Part 1 - Project Vision and Goals

Azure LAN to Cloud Project- Part 1 - Project Vision and Goals

Intro to A Multi Part Series Taking a LAN Python App to Azure Cloud

Welcome to the first installment of Azure LAN to Cloud, where we embark on an adventure to build a simple social media application for a local network (LAN) and then migrate it to Microsoft Azure’s cloud platform.

Why This Series?

Cloud migration isn’t just about taking your code and saying, “Hey, server! Meet Azure.”

No, no, no—it’s more like teaching a small-town LAN application to survive and thrive in the wild urban jungle of the cloud.

The goal of this series is to explore what it really takes to move from a cozy local network to the vast, sometimes overwhelming Azure cloud.

We’ll build an app that starts simple—a LAN-based social media chat application with image uploads and pushed chat updates—and then incrementally move it to Azure.

Along the way, we’ll learn about infrastructure as code, cloud security, authentication, Azure services like Functions, Redis, and blob storage, and much more.

The Local LAN Application

The application we start with will be deliberately simple but functional enough to mimic cloud features within a trusted LAN environment.

Here’s what it will have:

  1. Multi-user chat: Real-time chat with pushed updates.
  2. Image uploads: Share those cat memes with friends.
  3. Multiple channels: Like Slack, but without the enterprise-grade seriousness.
  4. Simple authentication: Just a name—no passwords, no email, no fuss.

The LAN app will assume a trusted environment—like your home network—so security will be minimal.

Users can choose any name, create any channel, and upload any image (yes, even that blurry vacation photo).

Tech Stack (Local Phase)

  • Python 3.11+ (because Python is awesome)
  • Flask or FastAPI (still deciding which mood we’re in)
  • SQLite (keeping it simple for the LAN phase)
  • WebSockets for real-time updates
  • Basic HTML/JS for the client

We’ll avoid fancy features that don’t add educational value and focus on building a functional app that mimics cloud patterns.

The Cloud Migration Challenge

Once the app is up and running locally, we’ll start the migration to Azure.

If you’re picturing a smooth and easy transition—well, surprise!

It won’t be.

And that’s by design.

Moving from LAN to cloud is a paradigm shift.

In the LAN version, we can just push updates to everyone, store images locally, and keep a list of active channels in memory.

But when we go cloud-side, these shortcuts become liabilities.

Cloud Migration Goals

  1. Real Authentication: Goodbye “What’s your name?” Hello OAuth 2.0.
  2. Scalable Image Handling: Blob storage, CDNs, and Azure Functions.
  3. Distributed State: Redis for chat state.
  4. Infrastructure as Code: Azure Resource Manager (ARM) templates, Bicep, or Terraform.
  5. Horizontal Scalability: Containers, Kubernetes, and Azure Functions.

Expected Headaches (a.k.a. Learning Opportunities)

  • Migrating from SQLite to Azure SQL or CosmosDB.
  • Debugging performance bottlenecks in the cloud.
  • Implementing real-time chat across multiple nodes.
  • Cost optimization because, well, cloud bills.

The Plan (or, How We’ll Try to Stay Organized)

The journey will unfold in phases:

Phase 1: Local LAN App

  • Build a basic Python chat app with image uploads.
  • Test and document the core features.
  • Explore basic architecture patterns that mimic cloud behavior.

Phase 2: Initial Cloud Migration

  • Deploy the app on Azure App Service.
  • Migrate data to Azure SQL/Blob Storage.
  • Add basic authentication.

Phase 3: Cloud Optimization

  • Introduce Redis for state management.
  • Scale horizontally with containers.
  • Implement caching and performance tuning.

Phase 4: Production Readiness

Phase 5: Mobile & Cross-Cloud Exploration

  • Add a MAUI-based mobile app.
  • Compare Azure with AWS and Google Cloud.

Why Azure?

I’ve been working with AWS and Azure since around 2008—back when Azure was simpler and cloud jargon didn’t require a dictionary.

Azure, like AWS, has grown immensely, and with growth comes complexity.

This series will give us a chance to explore Azure’s features without getting lost in the complexity jungle.

What’s Next?

In the next article, we’ll start building our LAN-based social media app.

Expect some Python code, some architectural diagrams, and maybe a cat meme or two.

Stay tuned, and remember: The cloud isn’t scary—it’s just someone else’s computer.

Key Ideas

  • Build a LAN-based social media app with chat, images, and channels.
  • Explore Azure services through a real migration process.
  • Focus on practical, hands-on learning with a working app.
  • Cover DevOps, Infrastructure as Code, and performance optimization.

References

  1. Microsoft Azure Documentation: https://docs.microsoft.com/azure
  2. Python 3.11+ Official Documentation: https://docs.python.org/3.11/
  3. Flask Web Framework: https://flask.palletsprojects.com/
  4. FastAPI Documentation: https://fastapi.tiangolo.com/
  5. Redis Documentation: https://redis.io/documentation
  6. Docker Documentation: https://docs.docker.com/
  7. Azure Functions: https://docs.microsoft.com/azure/azure-functions
  8. MAUI Documentation: https://learn.microsoft.com/en-us/dotnet/maui/
  9. OAuth 2.0 Framework: https://oauth.net/2/
  10. Infrastructure as Code: https://docs.microsoft.com/azure/azure-resource-manager/templates/overview