GitOps in Action:
Navigating Application
Deployment in the
Platformless Landscape
Manjula Rathnayaka
Director - Engineering
WSO2
OpenGitOps(https://opengitops.dev/), a CNCF project defines GitOps
principles as:
● Declarative
⦿ A system managed by GitOps must have its desired state expressed declaratively.
● Versioned and Immutable
⦿ Desired state is stored in a way that enforces immutability, versioning and retains a
complete version history.
● Pulled Automatically
⦿ Software agents automatically pull the desired state declarations from the source.
● Continuously Reconciled
⦿ Software agents continuously observe actual system state and attempt to apply the
desired state.
GitOps Principles
2
● Accelerated Development and Deployment
⦿ Simplify and accelerate deployment processes.
⦿ Deploy changes faster and more frequently.
● Enhanced Recovery and Reliability
⦿ Easily revert to known-good configurations in case of errors.
⦿ Minimize downtime and impact on users.
● Consistent Environments
⦿ Ensure consistency in configurations across different environments.
⦿ Reduce the risk of configuration drift.
● Comprehensive Version Control and Auditing
⦿ Track changes to infrastructure and deployment configurations over time.
⦿ Enhance traceability, accountability, and facilitate audits.
What GitOps Delivers: Key Outcomes
3
How Choreo Features Support GitOps
Outcomes
What is an Application in Choreo?
● An application in Choreo
consists of one or more
projects, each containing
components like services, web
apps, API proxies, webhooks,
tasks, event handlers, and test
runners. These components
work together to provide
seamless digital experiences.
5
CI/CD Pipeline
Accelerated Application Onboarding
6
Build
Generate
Configs
Scan
Image
Push
Check
Out
Deploy
Development
Environment
C 150
Build
Commit Deploy
Test
Developer
Source Repository
main
Connect
Outcome: Accelerated Development and Deployment
By minimizing setup time and automating repetitive tasks, developers can directly focus on code
development.
Commit
C 90
Production
Environment
C 90
Promote
Automated Deployment on Pull Request Merges
7
CI/CD Pipeline
Build
Generate
Configs
Scan
Image
Push
Check
Out
Deploy
Development
Environment
C 170
Build
Commit Deploy
Test
Developer
Source Repository
main
Connect
Production
Environment
C 170
Promote
Commit
Auto-Deploy
Outcome: Accelerated Development and Deployment
Merging a pull request automatically triggers deployment, allowing rapid release cycles and reducing
manual intervention.
Rapid Environment Onboarding in Choreo
8
CI/CD Pipeline
Build
Generate
Configs
Scan
Image
Push
Check
Out
Deploy
Development
Environment
C 170
Build
Commit Deploy
Test
Developer
Source Repository
main
Connect
Production
Environment
C 90
Commit
Auto-Deploy
DevOps
Set Up
Testing
Environment
C 120
Staging
Environment
C 100
Outcome: Consistent Environments
Choreo enables rapid onboarding of new environments with a few clicks, ensuring consistency
across development, testing, staging, and production.
Parallel Development with Deployment Tracks
9
Development
Environment
C 250
Developer
Source Repository
main
Connect
Commit
CI/CD Pipeline
Build
Generate
Configs
Scan
Image
Push
Check
Out
Deploy
Auto-Deploy
C 170
Production
Environment
C 200
C 90
Testing
Environment
C 220
C 120
Staging
Environment
C 200
C 100
CI/CD Pipeline
Build
Generate
Configs
Scan
Image
Push
Check
Out
Deploy
Auto-Deploy
V2.x
API
V1.x
API
Build
Commit Deploy
Test
v2
Connect
main
v2
Outcome: Accelerated Development and Deployment
Choreo supports parallel deployment tracks, allowing each branch to maintain its own API version while
enabling rapid, concurrent development.
Build History and Rollback Capability
10
Outcome: Enhanced Recovery and Reliability
Choreo maintains build history with commit details, allowing teams to redeploy previous builds
efficiently and ensure reliable rollback when necessary.
Environment-Specific Configuration Management
11
Outcome: Consistent Environments
Automated configuration value injection ensures secure, environment-specific settings,
supporting consistent and reliable deployments.
Integration Testing as a First-Class Component in Application
Architecture
12
Outcome: Enhanced Recovery and Reliability
Integrating testing as a core element in application architecture validates interactions among all
dependencies, ensuring smooth operations and reliable recovery from changes.
Audit Logs and Deployment History
13
Outcome: Comprehensive Auditing
Choreo provides detailed audit logs and deployment history views, offering traceability and
compliance insights to maintain accountability across development and deployment workflows.
Building on Success: Choreo’s Shift to
a Declarative API for GitOps Realization
Choreo vs Kubernetes Abstractions
● Project
● Component
⦿ Web Application, Service, Task, API
Proxy, Webhook, Test Runner
● DeploymentTrack
● Build
● Deployment
● ConfigGroup
● Environment
● DataPlane
15
● Namespace
● Deployment
● ReplicaSet
● Pod
● Service
● NetworkPolicy
● ConfigMap
● Ingress
● Node
● Jobs
Choreo CLI
16
GitOps in Choreo
17
Development
Environment
C 250
Developer
Source
Repository
main
Commit
CI/CD Pipeline
Build
Generate
Configs
Scan
Image
Push
Check
Out
Deploy
Auto-Deploy
C 170
Production
Environment
C 200
C 90
Testing
Environment
C 220
C 120
Staging
Environment
C 200
C 100
CI/CD Pipeline
Build
Generate
Configs
Scan
Image
Push
Check
Out
Deploy
Auto-Deploy
V2.x
API
V1.x
API
Build
Commit Deploy
Test
v2
main
v2
GitOps
Repository
Application
Code
Declarative
Resources
Desired
State
Actual
State
Reconcile
18
GitOps Adoption Journey
Manual Build and
Deploy Processes
Continuous
Integration
Continuous
Integration
and Delivery
Internal
Developer Platform
UI and CLI
GitOps Only
UI and CLI
GitOps Only
Perfection is not attainable, but if we
chase perfection we can catch
excellence.
- Vince Lombardi -
Question Time!
20
Thank You!

WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Platformless Landscape

  • 1.
    GitOps in Action: NavigatingApplication Deployment in the Platformless Landscape Manjula Rathnayaka Director - Engineering WSO2
  • 2.
    OpenGitOps(https://opengitops.dev/), a CNCFproject defines GitOps principles as: ● Declarative ⦿ A system managed by GitOps must have its desired state expressed declaratively. ● Versioned and Immutable ⦿ Desired state is stored in a way that enforces immutability, versioning and retains a complete version history. ● Pulled Automatically ⦿ Software agents automatically pull the desired state declarations from the source. ● Continuously Reconciled ⦿ Software agents continuously observe actual system state and attempt to apply the desired state. GitOps Principles 2
  • 3.
    ● Accelerated Developmentand Deployment ⦿ Simplify and accelerate deployment processes. ⦿ Deploy changes faster and more frequently. ● Enhanced Recovery and Reliability ⦿ Easily revert to known-good configurations in case of errors. ⦿ Minimize downtime and impact on users. ● Consistent Environments ⦿ Ensure consistency in configurations across different environments. ⦿ Reduce the risk of configuration drift. ● Comprehensive Version Control and Auditing ⦿ Track changes to infrastructure and deployment configurations over time. ⦿ Enhance traceability, accountability, and facilitate audits. What GitOps Delivers: Key Outcomes 3
  • 4.
    How Choreo FeaturesSupport GitOps Outcomes
  • 5.
    What is anApplication in Choreo? ● An application in Choreo consists of one or more projects, each containing components like services, web apps, API proxies, webhooks, tasks, event handlers, and test runners. These components work together to provide seamless digital experiences. 5
  • 6.
    CI/CD Pipeline Accelerated ApplicationOnboarding 6 Build Generate Configs Scan Image Push Check Out Deploy Development Environment C 150 Build Commit Deploy Test Developer Source Repository main Connect Outcome: Accelerated Development and Deployment By minimizing setup time and automating repetitive tasks, developers can directly focus on code development. Commit C 90 Production Environment C 90 Promote
  • 7.
    Automated Deployment onPull Request Merges 7 CI/CD Pipeline Build Generate Configs Scan Image Push Check Out Deploy Development Environment C 170 Build Commit Deploy Test Developer Source Repository main Connect Production Environment C 170 Promote Commit Auto-Deploy Outcome: Accelerated Development and Deployment Merging a pull request automatically triggers deployment, allowing rapid release cycles and reducing manual intervention.
  • 8.
    Rapid Environment Onboardingin Choreo 8 CI/CD Pipeline Build Generate Configs Scan Image Push Check Out Deploy Development Environment C 170 Build Commit Deploy Test Developer Source Repository main Connect Production Environment C 90 Commit Auto-Deploy DevOps Set Up Testing Environment C 120 Staging Environment C 100 Outcome: Consistent Environments Choreo enables rapid onboarding of new environments with a few clicks, ensuring consistency across development, testing, staging, and production.
  • 9.
    Parallel Development withDeployment Tracks 9 Development Environment C 250 Developer Source Repository main Connect Commit CI/CD Pipeline Build Generate Configs Scan Image Push Check Out Deploy Auto-Deploy C 170 Production Environment C 200 C 90 Testing Environment C 220 C 120 Staging Environment C 200 C 100 CI/CD Pipeline Build Generate Configs Scan Image Push Check Out Deploy Auto-Deploy V2.x API V1.x API Build Commit Deploy Test v2 Connect main v2 Outcome: Accelerated Development and Deployment Choreo supports parallel deployment tracks, allowing each branch to maintain its own API version while enabling rapid, concurrent development.
  • 10.
    Build History andRollback Capability 10 Outcome: Enhanced Recovery and Reliability Choreo maintains build history with commit details, allowing teams to redeploy previous builds efficiently and ensure reliable rollback when necessary.
  • 11.
    Environment-Specific Configuration Management 11 Outcome:Consistent Environments Automated configuration value injection ensures secure, environment-specific settings, supporting consistent and reliable deployments.
  • 12.
    Integration Testing asa First-Class Component in Application Architecture 12 Outcome: Enhanced Recovery and Reliability Integrating testing as a core element in application architecture validates interactions among all dependencies, ensuring smooth operations and reliable recovery from changes.
  • 13.
    Audit Logs andDeployment History 13 Outcome: Comprehensive Auditing Choreo provides detailed audit logs and deployment history views, offering traceability and compliance insights to maintain accountability across development and deployment workflows.
  • 14.
    Building on Success:Choreo’s Shift to a Declarative API for GitOps Realization
  • 15.
    Choreo vs KubernetesAbstractions ● Project ● Component ⦿ Web Application, Service, Task, API Proxy, Webhook, Test Runner ● DeploymentTrack ● Build ● Deployment ● ConfigGroup ● Environment ● DataPlane 15 ● Namespace ● Deployment ● ReplicaSet ● Pod ● Service ● NetworkPolicy ● ConfigMap ● Ingress ● Node ● Jobs
  • 16.
  • 17.
    GitOps in Choreo 17 Development Environment C250 Developer Source Repository main Commit CI/CD Pipeline Build Generate Configs Scan Image Push Check Out Deploy Auto-Deploy C 170 Production Environment C 200 C 90 Testing Environment C 220 C 120 Staging Environment C 200 C 100 CI/CD Pipeline Build Generate Configs Scan Image Push Check Out Deploy Auto-Deploy V2.x API V1.x API Build Commit Deploy Test v2 main v2 GitOps Repository Application Code Declarative Resources Desired State Actual State Reconcile
  • 18.
    18 GitOps Adoption Journey ManualBuild and Deploy Processes Continuous Integration Continuous Integration and Delivery Internal Developer Platform UI and CLI GitOps Only UI and CLI GitOps Only
  • 19.
    Perfection is notattainable, but if we chase perfection we can catch excellence. - Vince Lombardi -
  • 20.
  • 21.