ArchitectureOverview

Architecture Overview

Unbind is built as a collection of services that work together to provide a complete Kubernetes platform. The architecture is designed for scalability, maintainability, and security.

Core Services

💡

Unbind is built as an extension of Kubernetes, therefore it is not possible to use Unbind without Kubernetes.

These are the primary services developed and maintained by the Unbind team:

ServiceLanguageRepositoryDescription
Unbind APIGounbind-apiCore API server that handles all business logic, user management, and orchestrates deployments
Unbind UINext.jsunbind-uiModern web interface providing the complete user experience for managing applications
Unbind BuilderGounbind-apiBuild service responsible for creating container images from source code
Unbind OperatorGounbind-operatorKubernetes operator that manages application deployments and lifecycle
Unbind OIDC ServerGounbind-apiOpenID Connect server for secure authentication and authorization

Third-Party Dependencies

Unbind leverages several best-in-class open source projects to provide robust functionality:

Authentication & Security

ComponentPurposeDetails
DexOIDC Identity ProviderHandles user authentication and integrates with external identity providers
kube-oidc-proxyKubernetes Auth ProxySecurely authenticates users to the Kubernetes API server using OIDC tokens

Build System

ComponentPurposeDetails
BuildkitContainer Build EngineHigh-performance, cache-efficient container image builder
RailpackBuild Plan GeneratorAutomatically analyzes source code and generates optimized build configurations

Observability & Logging

ComponentPurposeDetails
AlloyLog CollectionCollects and aggregates container logs from across the platform
LokiLog StorageHorizontally scalable log storage with powerful query capabilities

Data Storage

ComponentPurposeDetails
PostgreSQLPrimary DatabaseStores all application metadata, user data, and deployment configurations
RedisCache & QueueHandles build queues, session storage, and general purpose caching

Architecture Principles

  • Microservices: Each component has limited responsibilities and can be scaled independently
  • Cloud Native: Built for Kubernetes with cloud-native patterns and practices
  • Observability: Comprehensive logging and metrics collection across all services
  • Extensibility: Modular design allows for easily adding new integrations and customizing the platform to your needs.