GitOps, Jenkins & Jenkins X Tracy Miranda, Director of Open Source Community | CloudBees tmiranda@cloudbees.com | @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 Throughput Stability Frequent deployments Fast mean time to recovery (MTTR) Low lead time from commit to deploy Low change failure rate @tracymiranda
Operation by pull request Git as the single place GitOps where we operate All changes are observable @tracymiranda
https://www.weave.works/blog/what-is-gitops-really @tracymiranda
@tracymiranda
Jenkins @tracymiranda
JENKINS JENKINS CONFIGURATION CLOUD NATIVE JENKINS X PIPELINE EVERGREEN AS CODE JENKINS
CONFIGURATION AS CODE
CONFIGURATION AS CODE WHAT IF … 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 Launch Docker container with said config file This is happening
Getting Started with config-as-code • https://www.praqma.com/s tories/start-jenkins-config- as-code/
@tracymiranda
@tracymiranda
JENKINS X
NEW Cloud Operating System COMMON PLATFORM IN ALL CLOUDS AWS, Microsoft Azure, Google Cloud Platform, OpenShift, Cloud Foundry FUNCTIONALITY Cluster scheduler, service discovery, load balancer EXTENSIBILITY
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 apps Not 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 Develop/collaborate changes in PR, laptop for what it needs to do review/test before merge Keep master always releasable Promote apps through multiple environments Deploy often and in small increments GitOps: deployment should be Inform other people about recorded and tracked in Git where changes are
Wrap-up
Conclusions • Configuration as code is a best practice to follow. • If you are using cloud native technologies, GitOps has essential techniques 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
Recommend
More recommend