FRANCO SBAFFIPRODUCT MANAGER + ENGINEER

Product Development • Handed off 2025

Dockerized Multi-Service Application

Role

Product Manager & Technical Owner

Timeline

July 2025

Team

1 Product Manager, 1 Engineer

Skills

Product Strategy, System Design, DevOps Architecture, Docker, Load Balancing, Infrastructure Design, Technical Decision-Making

Overview

How can modern applications be deployed reliably across isolated, scalable services?

As Product Manager and Technical Owner, I designed a containerized multi-service platform to enable reproducible deployment, service isolation, and load-balanced traffic routing.

This project originated from a common challenge in modern software delivery: applications rarely operate as a single unit. Instead, they consist of multiple services that must run independently while remaining reliable, scalable, and easy to deploy. I approached this from a product perspective, focusing not only on the technical implementation but also on defining a clear system structure that would support modular growth, predictable behavior across environments, and simplified operational management.

To achieve this, I defined an architecture centered on service isolation, clear traffic control, and reproducible infrastructure. Each service was designed to operate independently while remaining part of a cohesive system, with a centralized entry point managing request distribution. This allowed the platform to simulate real-world production conditions, demonstrating how thoughtful infrastructure design can improve reliability, reduce deployment risk, and create a foundation for scalable, maintainable systems.

Problem

Modern applications lack reliable and reproducible deployment structures.

As applications grow in complexity, deploying multiple services consistently and reliably becomes increasingly difficult without clear infrastructure design and orchestration.

Environment inconsistency

Applications often behave differently across development and production environments, creating reliability risks and slowing down delivery.

Infrastructure not designed for scalability

Systems built without modular architecture are harder to scale, maintain, and evolve over time.

Solution

Designing a modular, containerized infrastructure for reliable and scalable deployment.

To address these challenges, I defined a container-based architecture where each service operates independently while remaining part of a unified system. Using Docker and Docker Compose, I established a reproducible deployment process that ensures consistent behavior across environments. This allowed services to be deployed, managed, and scaled without manual configuration, reducing operational complexity and improving system reliability.

A centralized NGINX load balancer was introduced as the entry point, enabling controlled traffic routing and simulating production-grade infrastructure patterns. This architecture created clear service boundaries while maintaining system cohesion, demonstrating how thoughtful infrastructure design can improve deployment confidence, operational efficiency, and long-term scalability. The result is a modular platform capable of supporting multiple services in a predictable and maintainable way.

One of the key elements of the system is the orchestration layer, defined using Docker Compose, which coordinates services and ensures consistent startup behavior.

version: '3'

services:
  app1:
    build: ./app1
    container_name: app1
    ports:
      - "8081:80"

  app2:
    build: ./app2
    container_name: app2
    ports:
      - "8082:80"

  nginx:
    build: ./nginx
    container_name: nginx
    ports:
      - "80:80"
    depends_on:
      - app1
      - app2

This configuration defines independent services and a centralized load balancer, ensuring controlled traffic routing and reliable multi-service deployment. Docker Compose enables the entire system to be deployed consistently using a single command, reducing setup complexity and ensuring reproducibility across environments.

Impact

Establishing a scalable and reliable infrastructure foundation.

By defining a containerized architecture with clear service boundaries and centralized traffic management, the platform establishes a reliable and reproducible deployment foundation. This eliminates environment inconsistencies and reduces operational friction, enabling services to behave predictably across development and production environments.

From a product perspective, the system introduces a modular structure that supports independent service lifecycle management and future expansion. New services can be integrated without disrupting existing functionality, improving system resilience and enabling faster iteration. This demonstrates how infrastructure design directly impacts product reliability, operational efficiency, and the ability to scale systems sustainably over time.

Resolution

Developing a product-driven approach to infrastructure and platform design.

Infrastructure as a product system

I learned to approach infrastructure as a foundational product layer that directly enables reliability, scalability, and long-term system evolution.

Designing for scalability and modularity

I developed a deeper understanding of how containerization and service isolation enable flexible system expansion and independent service lifecycle management.