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

wso2.org 158 views 21 slides May 09, 2024
Slide 1
Slide 1 of 21
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21

About This Presentation

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


Slide Content

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!
Tags