Hello world to Jenkins X
World is changing fast, so is software development. To deal with the quick change, there are lots of methodologies, e.g. agile, scrum. However, there is also mindset change, we need transparent communication through the code (which means developer should make their change as early as possible, in small batches). This is very important in microservice team (two-pizza teams), and is encouraged by trunk-based development.
Trunk Based Development as a Cornerstone for Continuous Delivery
Dave Farley, co-author of the pivotal Continuous Delivery book, recently wrote about push-back to the practice of trunk…
Certainly, when you encourage frequent transparent communication through code, that means your developers are going to commit changes frequently. If they don’t have tool to support automatic verification, deployment, it is going to be messy since there is no way to auto-screen bad commits (imagine you always need your boss to review the code). That’s why CI/CD, DevOps are hot these years (recently read an article saying developer most interested topics are DevOps, Cloud, AI).
What is a CI/CD pipeline?
Learn what a pipeline means in the world of IT and why it’s important for any IT team to leverage.
However, to implement an enterprise-ready CI/CD infrastructure is also not easy. DevOps is a practice by itself. There so many tools to learn, let alone setup infrastructure correctly.
A list of Must-Have Open Source DevOps tools
As a DevOps team with rich hands-on experience with providing DevOps-as-a-Service for our customers, we have to use a…
So it is best that there is some quick start template infrastructure you can use. It should incorporate some common CI/CD best practice, can deal with commonly-used-language project, out of the box. Of course, when you want more customized control, you can easily customize the flow.
Jenkins X is a cloud-native CI/CD platform, which means it runs on Kubernetes (so can cross-cloud easily). It is serverless, meaning you don’t need dedicated Jenkins infrastructure, spare capacity can be leveraged by other workloads on Kubernetes cluster.
Jenkins X: A Cloud-native Approach to CI/CD
Jenkins X is a project which rethinks how developers should interact with CI/CD in the cloud with a focus on making…
As I see it, Jenkins X provides an opinionated approach to CI/CD (tool it picks, methodology is GitOps). I like this approach, you need to do one thing and do it well. It is better than doing many things, but not do well.
To get started, here are main steps:
- Install Jenkins X CLI
- Create Kubernetes cluster
- Bootstrap Jenkins X on Kubernetes cluster
- Create quickstart project template and have fun
- Jenkins X CLI from location below
- I am using EKS, so download eksctl
jx create cluster eks — skip-installation — no-default-environments
- Use jx boot to bootstrap Jenkins X infrastructure
a) Download boot config
b) Change jx-requirements.yml provider to eks
c) Run “jx boot”
- Run “jx create quickstart” and pick your favorite language
- The last thing
jx create quickstartdoes is print a handful handy commands, e.g.:
Watch pipeline activity via: jx get activity -f foo -w
Browse the pipeline log via: jx get build logs <repo>/foo/master
You can list the pipelines via: jx get pipelines
When the pipeline is complete: jx get applications
The only problem I encountered is that it does not work with “mlquickstart” very well. However, there is another open source Seldon project, leave it for next time.