Introduction
Tsuru is an open-source platform as a service that has been in production since 2012. It abstracts away infrastructure complexity so developers can deploy applications with a simple git push, while operations teams maintain full control over the underlying Kubernetes and Docker infrastructure.
What Tsuru Does
- Deploys applications from any language using buildpacks or Dockerfiles
- Manages application scaling, routing, and service binding automatically
- Provides a CLI and API for all platform operations
- Supports multi-team and multi-cluster deployments
- Integrates with existing Kubernetes clusters or manages its own
Architecture Overview
Tsuru runs as a Go API server that orchestrates application deployments on Kubernetes. It uses a provisioner abstraction layer that translates platform operations into Kubernetes resources. The router component manages ingress and load balancing. A service broker connects applications to databases, caches, and other backing services.
Self-Hosting & Configuration
- Deploy Tsuru API on an existing Kubernetes cluster using Helm charts
- Configure one or more Kubernetes clusters as deployment targets
- Set up a router (Traefik or Nginx Ingress) for application traffic
- Register service brokers for databases and other managed services
- Add build platforms (Python, Go, Node.js, etc.) as Docker images
Key Features
- Multi-language support via buildpacks and custom Dockerfiles
- Horizontal and vertical auto-scaling based on metrics
- Blue-green and rolling deployment strategies
- Service broker integration for managed databases and caches
- Multi-cluster support for geographic distribution
Comparison with Similar Tools
- Heroku — proprietary PaaS; Tsuru is self-hosted and open source
- Dokku — single-server PaaS; Tsuru scales across Kubernetes clusters
- CapRover — simpler PaaS with web UI; Tsuru targets larger team deployments
- Coolify — modern self-hosted PaaS; Tsuru has a longer production track record
FAQ
Q: How does Tsuru compare to raw Kubernetes? A: Tsuru abstracts Kubernetes complexity behind a developer-friendly CLI. Teams get the power of Kubernetes without requiring every developer to learn it.
Q: What languages does Tsuru support? A: Any language that can run in a Docker container. Built-in buildpacks cover Python, Go, Node.js, Ruby, Java, PHP, and more.
Q: Can Tsuru run on existing Kubernetes clusters? A: Yes. Tsuru installs on top of existing clusters and can manage multiple clusters from a single API.
Q: Is Tsuru still actively maintained? A: Yes. Tsuru has been in continuous development since 2012 and is used in production at scale.