WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Platformless Landscape
wso2.org
158 views
21 slides
May 09, 2024
Slide 1 of 21
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
About This Presentation
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Platformless Landscape
Size: 1.89 MB
Language: en
Added: May 09, 2024
Slides: 21 pages
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
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 -