With the multiplayer architecture and account system up and running, this sprint was all about one thing: going live in the cloud. I’m thrilled to say that the Connect 3D server backend is now officially hosted in Microsoft Azure!

From Localhost to Cloud Host

Moving from running Docker Compose on my local network to deploying in Azure went more smoothly than I expected – at least from a technical perspective. Azure Container Apps made it easy to get my containerized microservices up and running in the cloud with minimal changes. It was a relief to see my backend spin up and behave just like it did locally.

That said, Azure is huge. Just finding my way through all the available services, configuration settings, networking rules, security policies, permissions, monitoring tools, and dashboards took time. Everything works – but figuring out the right way to do things, and doing it securely, was a challenge of its own.

Here’s the setup I ended up with:

  • Azure Container Apps Environment to host and scale my microservices.
  • Azure Container Registry to store my Docker images.
  • Azure Log Analytics for centralized logging and performance monitoring.
  • Resource groups and managed identities to keep things organized and secure.

I initially went with Kubernetes, which absolutely offers more flexibility – but also comes with significantly more operational complexity. In the end, Azure Container Apps turned out to be a perfect fit for a game backend like this. It provides the power of containers and microservices without the overhead of managing a full cluster.

And if I ever need more advanced functionality down the line, my architecture is fully compatible with Kubernetes. The move would be straightforward if needed.

It definitely took some effort to put all the pieces together, but I now have a clean, scalable, and cloud-native backend running smoothly in Azure.

Screenshot: Azure Portal showing last weeks metrics for the communication microservice.

CI/CD – Build, Test, Deploy, Repeat

To streamline development and avoid manual deployment, I set up a full CI/CD pipeline. Now, every commit to the main branch automatically triggers:

  • A build of the backend microservices into Docker containers.
  • Automated tests for core game logic and API behavior.
  • Deployment to a staging environment in Azure for validation.
  • (Optional) Promotion to production, making the changes available to real players.

This makes testing new features and catching bugs faster, safer and more predictable. And honestly, it’s a great feeling to push code and watch everything just flow through the pipeline.

Thanks to the microservice architecture and its loosely coupled design, only the updated services are rebuilt and redeployed. Azure handles rolling updates and load balancing, so even larger backend changes can go live without any noticeable downtime for players. That’s so cool!

Diagram: CI/CD Pipeline stages running in GitHub with deployment to Azure.

The Game Lives Online

With everything hosted in Azure and fully automated, Connect 3D has taken a huge step forward. The game now runs fully online, with accounts, multiplayer, and cloud infrastructure all working together.

Next Sprint: Real Database and Improved Accounts

Until now, I’ve still been using local JSON files for game state persistence – simple, but very limited. In Sprint 6, I’ll:

  • Set up a PostgreSQL database, also in Azure.
  • Migrate existing server logic to use structured storage.
  • Design tables for users, games, moves, and friends.
  • Use features in Azure to connect Calilynx, Google and Apple accounts.

This will lay the foundation for things like statistics, ranking and matchmaking which are essential features in a game like this.

More soon!

Elena