Deployment Methods

Choose and implement the right deployment method for your needs

Complete guide to choosing and implementing the ideal deployment method for your Cadence installation.

Quick Comparison

MethodBest ForSetup TimeScalabilityExpertiseCost
BinarySingle server, testing, quick setup5 minSingle hostMinimalFree
DockerCloud-native, local development, CI/CD10 minMulti-containerBasicFree (+ infra)
systemdLinux servers, single instance, production15 minSingle hostMediumFree (+ CPU)
KubernetesEnterprise, HA, auto-scaling, multi-region30 minUnlimitedAdvancedFree (+ infra)

Decision Tree

What scale do you need?

├─ Testing/Development
│  ├─ Quick start? → Binary ✅
│  └─ Local containers? → Docker Compose ✅
│
├─ Production - Single Server
│  ├─ Max simplicity? → Binary
│  └─ Full management? → systemd ✅
│
├─ Production - Multiple Servers
│  ├─ Simple setup? → Docker + Load Balancer
│  └─ Enterprise grade? → Kubernetes ✅
│
└─ High Availability / Global
   └─ Multi-region? → Kubernetes + Helm ✅

Method Overview

1. Binary Installation

When: Testing, single server, simple deployments

Pros:

  • Minimal dependencies
  • Fast startup (~1 second)
  • Direct OS integration
  • Easy debugging

Cons:

  • Single process only
  • Manual restart management
  • Limited to one server

Setup: Binary Installation

2. Docker

When: Cloud deployments, containerized workflow, development

Pros:

  • Environment isolation
  • Easy versioning
  • Multi-container orchestration
  • Reproducible across machines

Cons:

  • Slight overhead (~50MB RAM)
  • Requires Docker knowledge
  • Port management complexity

Setup: Docker Deployment

3. systemd Service

When: Linux production servers, single instance, traditional ops

Pros:

  • Deep Linux integration
  • Automatic restarts
  • Resource limits built-in
  • Simple monitoring

Cons:

  • Linux-only
  • Single instance
  • Manual scaling

Setup: systemd Service

4. Kubernetes

When: Enterprise, High Availability, auto-scaling, multiple data centers

Pros:

  • Unlimited horizontal scaling
  • Automatic failover
  • Self-healing
  • Multi-region support

Cons:

  • Steep learning curve
  • Infrastructure overhead
  • Complexity for small deployments

Setup: Kubernetes Deployment

Implementation Guides

Deployment Scenarios

Scenario 1: Quick Testing

Bash
# Just want to test Cadence?
→ Use Binary Installation
→ Download precompiled binary
→ Run locally or on test server
→ Time: 5 minutes

Scenario 2: Single Production Server

Bash
# One server, production workload?
→ Use systemd Service
→ Install as system service
→ Full monitoring and restarts
→ Resources: 2+ cores, 2GB RAM
→ Time: 15 minutes

Scenario 3: Small Team, Development

Bash
# Multiple developers, local testing?
→ Use Docker Compose
→ Shared docker-compose.yml
→ Consistent environment
→ Time: 10 minutes

Scenario 4: Cloud Native (AWS/GCP/Azure)

Bash
# Scalable cloud deployment?
→ Use Docker + Kubernetes
→ Container registry (ECR/GCR/ACR)
→ Auto-scaling
→ Time: 30-60 minutes

Scenario 5: Global High Availability

Bash
# Multiple regions, 99.9% uptime?
→ Use Kubernetes with Helm
→ Multi-region clusters
→ Automatic failover
→ Time: 2-3 hours

Next Steps

  1. Choose a deployment method based on your needs
  2. Follow the implementation guide
  3. Review Operations Guide for production setup
  4. Set up Monitoring