← Back to Portfolio

10XLabs Container Platform

DevOps & Infrastructure

Pioneering container platform from 2011-2012 that predated Docker with software-defined networking and sub-second provisioning.

Containers SDN cgroups namespaces Union FS

title: 10XLabs Container Platform slug: tenxlabs-container-platform description: Pioneering container platform from 2011-2012 that predated Docker with software-defined networking and sub-second provisioning. featured: true hero: false status: Invention published: published-wip category: Cloud Infrastructure technologies: - Containers - SDN - cgroups - namespaces - Union FS date: 2025-01-15

10XLabs Container Platform

Pioneering container orchestration platform from 2011-2012 that predated Docker by implementing software-defined overlay networks, union filesystem layering, and sub-second provisioning - achieving 375-2000x speedup over traditional VMs.

Historical Context

The Problem (2011)

Traditional Infrastructure:

Existing Alternatives:

What was missing:

The Innovation (2011-2012)

10XLabs built a complete container platform 1+ years before Docker (released March 2013), featuring:

Architecture Overview

graph TB
    subgraph "Management Layer"
        API[REST API<br/>Container Management]
        ORCH[Orchestrator<br/>Placement + Scheduling]
        UI[Web UI<br/>Dashboard]
    end

    subgraph "Container Runtime"
        CG[cgroups<br/>Resource Limits]
        NS[namespaces<br/>Process Isolation]
        UFS[Union FS<br/>Layered Storage]
    end

    subgraph "Networking Layer"
        SDN[Software-Defined Network<br/>Overlay]
        VLAN[Virtual Networks<br/>Per-Container]
        FW[Firewall<br/>Security Groups]
    end

    subgraph "Host Cluster"
        H1[Host 1<br/>10+ Containers]
        H2[Host 2<br/>10+ Containers]
        H3[Host 3<br/>10+ Containers]
    end

    API --> ORCH
    UI --> API
    ORCH --> CG
    ORCH --> NS
    ORCH --> UFS
    ORCH --> SDN
    SDN --> VLAN
    VLAN --> FW
    CG --> H1
    NS --> H1
    UFS --> H1
    CG --> H2
    NS --> H2
    UFS --> H2
    CG --> H3
    NS --> H3
    UFS --> H3

    style SDN fill:#4f46e5
    style UFS fill:#dc2626
    style ORCH fill:#059669

Core Technologies

1. Linux Container Primitives

cgroups (Control Groups):

# Create cgroup for container
cgcreate -g cpu,memory:container-1234

# Set CPU limit (50% of 1 core)
cgset -r cpu.cfs_quota_us=50000 container-1234
cgset -r cpu.cfs_period_us=100000 container-1234

# Set memory limit (512 MB)
cgset -r memory.limit_in_bytes=536870912 container-1234

# Run process in cgroup
cgexec -g cpu,memory:container-1234 /app/process

namespaces (Process Isolation):

// Create isolated container namespaces
int clone_flags =
    CLONE_NEWUTS |   // Hostname
    CLONE_NEWPID |   // Process IDs
    CLONE_NEWNET |   // Network stack
    CLONE_NEWNS |    // Filesystem mounts
    CLONE_NEWIPC;    // IPC objects

// Clone process into new namespaces
pid = clone(container_init, stack, clone_flags, &config);

Namespace Types:

2. Union Filesystem (Layered Storage)

AUFS (Advanced Multi-Layered Unification Filesystem):

Container Filesystem Stack:
┌──────────────────────────────┐
│ Writable Layer (Container)   │ ← Changes persist here
├──────────────────────────────┤
│ App Layer (nginx)            │ ← Read-only
├──────────────────────────────┤
│ Runtime Layer (Python 3.8)   │ ← Read-only
├──────────────────────────────┤
│ Base Layer (Ubuntu 20.04)    │ ← Read-only
└──────────────────────────────┘

Benefits:

Implementation:

# Mount union filesystem for container
mount -t aufs -o dirs=/containers/cont-1234=rw:/images/app=ro:/images/base=ro \
  none /containers/cont-1234/rootfs

# Container sees unified view
ls /containers/cont-1234/rootfs
# → Contains: /bin, /usr, /app (merged from layers)

# Modifications only affect writable layer
echo "data" > /containers/cont-1234/rootfs/app/output.txt
# → File written to /containers/cont-1234/output.txt
# → Base layers remain unchanged

3. Software-Defined Networking (SDN)

Overlay Network Architecture:

Physical Network:
  Host A (10.0.1.10) ←───────→ Host B (10.0.1.20)

Virtual Networks:
  Network 1 (172.16.0.0/24):
    Container A1 (172.16.0.10) ←──→ Container B1 (172.16.0.20)

  Network 2 (172.17.0.0/24):
    Container A2 (172.17.0.10) ←──→ Container B2 (172.17.0.20)

VXLAN Tunneling:

# Create VXLAN interface for virtual network
ip link add vxlan100 type vxlan \
  id 100 \
  dstport 4789 \
  local 10.0.1.10 \
  dev eth0

# Attach container to VXLAN network
ip link add veth-cont1 type veth peer name veth-host1
ip link set veth-cont1 netns container-1234
ip link set veth-host1 master vxlan100

# Container now on overlay network
# Can communicate with containers on other hosts

Network Features:

4. Container Orchestration

API-Driven Management:

# Create container via REST API
POST /api/containers
{
  "image": "myapp:v1.2",
  "cpu": 1.0,
  "memory": "512MB",
  "network": "production-network",
  "ports": [{"host": 8080, "container": 80}],
  "environment": {
    "DB_HOST": "postgres.internal",
    "API_KEY": "secret"
  }
}

# Response:
{
  "id": "cont-abc123",
  "status": "running",
  "ip": "172.16.0.45",
  "provisioned_in": "1.2 seconds"
}

Scheduler Features:

Performance Metrics

Provisioning Speed Comparison

Platform Provisioning Time Speedup vs VM
Traditional VM 10-30 minutes 1x (baseline)
10XLabs Containers 0.5-3 seconds 375-2000x

Example Workflow:

VM Provisioning (20 minutes):
├─ Image download: 5 min
├─ Disk allocation: 2 min
├─ Boot kernel: 1 min
├─ Init services: 5 min
├─ App startup: 7 min
└─ Total: 20 minutes

Container Provisioning (1 second):
├─ Layer check: 0.1s (already cached)
├─ Namespace create: 0.2s
├─ Network setup: 0.3s
├─ Process start: 0.4s
└─ Total: 1 second

Resource Efficiency

Metric Traditional VM 10XLabs Container
Memory Overhead 512MB-2GB 5-20MB
Disk Overhead 5-20GB 10-100MB (layers)
Boot Time 30-60 seconds <1 second
Density 5-10 per host 50-100+ per host

Key Features

Sub-Second Provisioning

Software-Defined Networking

Multi-Tenancy

Developer Experience

Historical Significance

Timeline

2011-2012: 10XLabs Container Platform

March 2013: Docker Released

2014+: Container Ecosystem Explosion

What 10XLabs Got Right

  1. Union Filesystem: Recognized layering as key to fast provisioning
  2. Overlay Networking: Solved cross-host communication early
  3. API-First: RESTful management enabled automation
  4. Resource Isolation: cgroups + namespaces for security

What Docker Improved

  1. Image Format: Standardized, portable container images
  2. Registry: Central hub for sharing images (Docker Hub)
  3. Dockerfile: Declarative build process
  4. Ecosystem: Developer tools, documentation, community

Technical Highlights

Use Cases (2011-2012)

1. Web Application Hosting

Rapid provisioning for customer applications with per-customer network isolation.

2. Development Environments

Instant spin-up of dev/test environments matching production.

3. CI/CD Pipelines

Fast build/test cycles with isolated container environments.

4. Multi-Tenant SaaS

Resource and network isolation for multiple customers on shared infrastructure.

Lessons Learned

What Worked:

What Was Hard:

If Built Today:

Legacy & Impact

Contributions to Container Ecosystem:

Technical Learnings:

Status

Historical invention (2011-2012) that pioneered key container technologies later popularized by Docker and Kubernetes. Demonstrated feasibility of sub-second provisioning with 375-2000x speedup over traditional VMs.


Part of MacLeod Labs DevOps & Infrastructure Portfolio

References