官方地址 https://www.velotio.com/engineering-blog/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 development teams productive through automation, tooling and DevOps best practices.
The difference between Jenkins X and Jenkins
Jenkins is a tool which was developed long before cloud become the norm and it's definitely not a cloud-native tool, meaning it doesn't have out of the box capability to survive outages, seamless scaling, etc.
Basically, Jenkins X is not just a CI/CD tool to run builds and deployments, it automates the whole development process end to end for containerised applications based on Docker and Kubernetes.
With Jenkins X, you get not only Kubernetes pipelines for your apps but also a very scalable CI/CD solution.
Challenges while setting up CI/CD pipelines for container-based applications:
- Setup the cloud environment
- Setup kubernetes cluster and set up multiple environments like development, staging, testing
- Migrate application to the container so that user can start building docker images
- Figure out how to deploy the application on Kubernetes and generate some yml and helm charts
- Figure out how to do continuous delivery including promotion processes - eg Promote versions of the application from testing to staging to production.
- Store all operational configurations like web application source code on the GitHub repository.
- Then automate everything
So all this stuff which developers have to do is kind of unnecessary heavy lifting. Jenkins X is designed to get the above stuff done and focus on delivering actual value to customers.
How does Jenkins X help?
- Automate the installation, configuration & upgrade of Jenkins + other s/w components (helm, nexus etc) on Kubernetes
- Automate CI/CD for your applications on Kubernetes
- Docker images
- Helm charts
- Pipelines
- Uses GitOps to manage promotions between environments
- Test - Staging - Promotion
- Lots of feedback. Eg. commenting on issues as they hit Staging + Production
What does Jenkins X do?
By using Jenkins X, the developer can type one command jx create or jx import and the following process : get the source code, the git repository and application created, automatically built and deployed to Kubernetes on each Pull Request or git push with full CI/CD complete with Environments and Promotion.
Developers and teams don’t have to spend time figuring out how to package software as docker images, create the Kubernetes YAML to run their application on kubernetes, create Preview environments or even learn how to implement CI/CD pipelines with declarative pipeline-as-code Jenkinsfiles. It’s all automated in Jenkins X.
If you want to see Dockerfile, Jenkinsfile or Helm charts for your apps or their environments then those are all available versioned in Git with the rest of your source code with full CI/CD on it all.