GitOps, Jenkins & Jenkins XTracy Miranda, Director of Open Source Community | CloudBees
[email protected] | @tracymiranda
@tracymiranda
What is DevOps?
@tracymiranda
DevOps is the new legacy
@tracymiranda
Cloud Native Technologies
• On demand self-service
• Broad network access
• Resource pooling
• Rapid elasticity
• Measured service
DORA State of DevOps
Reports
@tracymiranda
The Science of Lean Software and DevOps
@tracymiranda
Building and scaling high performance technology organisations
@tracymiranda
ThroughputFrequent deployments
Low lead time from commit to deploy
StabilityFast mean time to recovery (MTTR)
Low change failure rate
GitOps
@tracymiranda
Operation by pull request
Git as the single place where we operate
All changes are observable
https://www.weave.works/blog/what-is-gitops-really
@tracymiranda
@tracymiranda
Jenkins
@tracymiranda
JENKINS
PIPELINE
JENKINS
EVERGREEN
CONFIGURATION
AS CODE
CLOUD NATIVE
JENKINS
JENKINS X
CONFIGURATION AS CODE
WHAT IF …
C O N F I G U R AT I O N A S C O D E
You can apply a sane change control
practice to Jenkins configuration?
Jenkins stops being a snowflake?
You can safely roll back a failed upgrade?
You could cookie cutter lots of
identical Jenkins instances?
jenkins:
securityRealm:
ldap:
configurations:
- server: ldap.acme.com
rootDN: dc=acme,dc=fr
managerPasswordSecret:
${LDAP_PASSWORD}
cache:
size: 100
ttl: 10
userIdStrategy: CaseSensitive
groupIdStrategy: CaseSensitive
1
This is
happening
Launch Docker container withsaid config file
Getting Started with config-as-code
• https://www.praqma.com/stories/start-jenkins-config-as-code/
@tracymiranda
@tracymiranda
JENKINS X
COMMON PLATFORM IN ALL CLOUDS
AWS, Microsoft Azure, Google Cloud
Platform, OpenShift, Cloud Foundry
FUNCTIONALITY
Cluster scheduler, service discovery,
load balancer
EXTENSIBILITY
NEW Cloud Operating System
You can have fun
tinkering
Or you can just get
productive
Jenkins X Vision
Figure out the best practice of how to CD cloud native appsNot just build and test, but review, promote, changelog, collaborate, etc.
Integrate best of breed software in this ecosystem to achieve it
Democratize it by building a pleasant CLI that represents high-level
steps
Be opinionated on how to do things
Kubernetes is a means to the end
@tracymiranda
@tracymiranda
@tracymiranda
@tracymiranda
Best Practice We Preach
Use cloud to develop, keep your
laptop for what it needs to do
Promote apps through
multiple environments
GitOps: deployment should be
recorded and tracked in Git
Develop/collaborate changes in PR,
review/test before merge
Keep master always releasable
Inform other people about
where changes are
Deploy often and in small increments
Wrap-up
Conclusions
• Configuration as code is a best practice to follow.
• If you are using cloud native technologies, GitOps has essentialtechniques and practices to help you go faster without costing you stability.
• There are some problems your tools won’t fix, for everything else there’s Jenkins X.
@tracymiranda
Top Related