kutayonur.dev / azure
Cloud-oriented web applications · course project

Five containers,
one cloud.

Mezarpoly is the real-time multiplayer game we built. We designed it from day one as five containers — and here it runs exactly that way, locally with Docker Compose and as five separate components on Microsoft Azure.

AzimPart 1 · the app & Docker GloriaPart 2 · data & platform KutayPart 3 · deploy & proof
SCROLL
01 · The game

We built Mezarpoly.

A browser-based property-trading game for 2–8 players: roll dice, buy cities, build hotels, trade and bid in auctions. Real players use it every day at mezarpoly.fun.

2–8players per room
14maps
liveWebSocket gameplay
The Mezarpoly game screen, running on Azure
02 · The story

Designed for five.
Launched light.

  1. Five services from day one

    Web front, game server, database, message broker and worker — every part switched on by configuration.

  2. Public launch in light mode

    At its current size the public site did not need the full set, so mezarpoly.fun runs the same code on a single server.

  3. The full design, locally

    One docker compose up starts all five containers on two isolated networks.

  4. Five components on Azure

    Every container becomes its own Azure Container App; only the web front faces the internet.

03 · Architecture

Two paths through five containers.

Requests take the synchronous path through nginx; game events take the asynchronous path through Kafka. Hover a container to find it in the scene.

frontendnginx 1.29

Serves the game and proxies /api, /auth and the WebSocket.

backendPython · aiohttp

Rules engine, rooms, bots, accounts; produces events.

postgresPostgreSQL 17

Accounts, results, shop, friends and the event log.

kafkaKafka 3.9 · KRaft

Topic mezarpoly.events; the game never waits for it.

workerPython · aiokafka

Consumes events and stores them, at-least-once.

synchronous request/responseasynchronous events
04 · Requirements

Every grade step, shown live.

3.0docker compose up starts the whole application
4.0frontend ↔ backend over the Docker network web
4.5PostgreSQL as a third container on network data
5.0Kafka + worker for asynchronous messaging
6.0Five Container Apps on Microsoft Azure
05 · The presentation

Three parts, three presenters.

A
AzimPart 1 · slides 1–8
  • Mezarpoly and the grade map
  • Five containers, two networks
  • Dockerfiles and good image habits
Slides for screen share · PDF Presenter guide · PDF
G
GloriaPart 2 · slides 9–16
  • Compose and the local evidence
  • Synchronous and Kafka paths
  • PostgreSQL and Azure Container Apps
Slides for screen share · PDF Presenter guide · PDF
K
KutayPart 3 · slides 17–24
  • deploy.sh and security decisions
  • Troubleshooting the 404 puzzle
  • Evidence, cost and Q&A
Slides for screen share · PDF Presenter guide · PDF