Learn from Examples
OpenChoreo empowers developers to build cloud-native applications through practical, real-world examples. This section provides comprehensive tutorials that demonstrate OpenChoreo's capabilities across different use cases and complexity levels.
Categoriesβ
We have categorized the samples based on what you might want to do:
- Platform Configuration - Define and customize foundational platform elements such as organizations, environments, and deployment pipelines according to your organization needs.
- Application Deployment - Deploy different types of applications (services, APIs, web apps, tasks) using various programming languages and deployment strategies.
Platform Configurationβ
When you set up OpenChoreo, certain default resources are automatically created to help you get started quickly:
- A default organization
- A default data plane and build plane
- Three default environments (Dev, Staging, Prod)
- A default deployment pipeline connecting these environments
- A default project to organize applications
OpenChoreo provides abstractions to define:
- Organizations β Manage access and group related projects at cluster scope.
- Environments β Set up Dev, Staging, and Prod runtime contexts.
- DataPlanes β Define Kubernetes clusters for application deployments.
- BuildPlanes β Define dedicated Kubernetes clusters for CI operations.
- DeploymentPipelines β Automate application rollouts with promotion workflows.
For more details on these concepts, refer to the Concepts documentation.
These default configurations provide a quick starting point. Once you have done some exploration you can start creating the necessary artifacts to match the needs of your organization. You can:
- Create new environments in your organization
- Create a new deployment pipeline that will link these environments
Application Deploymentβ
OpenChoreo uses a flexible ComponentType architecture where platform engineers define templates and developers create components from these templates.
Understanding ComponentTypesβ
OpenChoreo provides a ComponentType abstraction that allows platform engineers to define reusable application templates with:
- Workload types (Deployment, StatefulSet, CronJob, Job, Proxy)
- Configurable parameters and environment overrides
- Kubernetes resource templates with CEL expressions
Developers create Component resources that reference these ComponentTypes, providing a clean separation between platform governance and developer intent.
Default ComponentTypesβ
OpenChoreo ships with three default ComponentTypes out of the box:
-
deployment/serviceβ Backend services and APIs- Configurable replicas, port, resources, and image pull policy
- Includes Deployment, Service, and optional HTTPRoute resources
- Supports environment-specific overrides
-
deployment/web-applicationβ Frontend or full-stack web applications- Always exposed via HTTPRoute with dedicated subdomain
- Configurable replicas, port, resources, and image pull policy
-
cronjob/scheduled-taskβ Time-based batch jobs and background tasks- Configurable cron schedule, concurrency policy, and resource limits
- Environment-specific schedules for different deployment stages
ComponentType Examplesβ
Learn how to work with ComponentTypes and create custom component definitions:
- HTTP Service Component β Custom ComponentType for HTTP services with routing
- Web Application Component β ComponentType optimized for web applications
- Component with Configurations β Managing Configs and Secrets with components
- Component with Traits β Composing reusable traits into components
Application Examples by Source Typeβ
Examples demonstrating how to deploy components using the default ComponentTypes:
Built from Sourceβ
-
Services β Backend services & APIs built from source code
- Go Service with Docker - Go Service using Docker build
- Go Service with Buildpacks - Go Service using Google Cloud Buildpacks
- Ballerina Service - Ballerina service using Ballerina Buildpack
-
Web Applications β Frontend or full-stack applications built from source code
- React SPA - SPA web application
Deployed from Pre-built Imagesβ
- Pre-built Applications β Applications deployed from existing container images
- Go Greeter Service - Service deployed from pre-built image
- React Web App - Web application from pre-built image
- GitHub Issue Reporter - Scheduled task with configuration management
Complete Application Examplesβ
- GCP Microservices Demo β Complete multi-service application demonstrating:
- Project organization with multiple components
- Service interactions and dependencies
- Coordinated deployment patterns
- Configuration management across services
Supported Languages (via BuildPacks)β
OpenChoreo abstracts the build and deployment process using BuildPacks and Workflow resources, enabling developers to deploy applications written in:
- Ballerina - Patient Management Service
- Go - Greeter Service and Reading List
- Node.js/React - React Starter
- Python - (Additional samples can be added)
- Ruby - (Additional samples can be added)
- (More languages can be added as extensions.)
Key Features Demonstratedβ
- ComponentType Architecture β Platform engineer templates and developer components with clean separation of concerns
- Configuration Management β Environment-specific configs and secrets using Workload resources
- Trait Composition β Reusable traits that extend component functionality
- Workflow Integration for CI β Components with integrated Workflow resources for CI/CD automation
Featured Examplesβ
Go Greeting Service from Sourceβ
Learn OpenChoreo fundamentals by deploying a simple Go REST service built from source code. This example demonstrates the complete CI/CD workflow from source code to running service.
Features:
- Source-to-deployment workflow
- Docker-based CI process
- REST API with greeting endpoints
- Gateway integration and testing
Try it: Go Docker Greeter
Google Cloud Microservices Demoβ
Build a complete e-commerce platform using Google's reference microservices architecture. This comprehensive example demonstrates service-to-service communication, distributed systems patterns, and complex application deployment.
Features:
- 11 interconnected microservices
- Frontend web application
- Redis cache integration
- Production-ready container images
- Service mesh communication patterns
Try it: GCP Microservices Demo
Multi-Environment Deployment Pipelineβ
Set up sophisticated deployment pipelines across development, QA, pre-production, and production environments with automated promotion workflows.
Features:
- Four-stage deployment pipeline
- Environment-to-environment promotion
- Automated rollout workflows
- Production-ready governance
Try it: New Deployment Pipeline
Community Examplesβ
The OpenChoreo community can contribute additional examples covering:
- Industry-specific use cases
- Integration with third-party services
- Custom component types
- Advanced deployment patterns
- Custom workflows
Getting Helpβ
- Documentation: Each example includes instruction documentation
- Community Forums: Ask questions and share your implementations on Discord
- GitHub Issues: Report bugs or request new examples
Ready to start building? Choose an example that matches your use case, then follow along to see OpenChoreo in action!