DevOps Fortgeschritten
Jenkins — Moderne Pipeline-Patterns¶
JenkinsCI/CDPipelineAutomatisierung 5 min Lesezeit
Jenkins Shared Libraries, deklarative Pipeline, parallele Stages und Kubernetes-basierte Agents.
Shared Libraries¶
// vars/standardPipeline.groovy
def call(Map config = [:]) {
pipeline {
agent { kubernetes { yaml agentPod() } }
stages {
stage('Build') {
steps { sh "docker build -t ${config.image}:${env.BUILD_NUMBER} ." }
}
stage('Test') {
parallel {
stage('Unit') { steps { sh 'make test-unit' } }
stage('Integration') { steps { sh 'make test-integration' } }
stage('Lint') { steps { sh 'make lint' } }
}
}
stage('Deploy') {
when { branch 'main' }
steps { sh "kubectl set image ..." }
}
}
}
}
// Jenkinsfile
@Library('shared-pipeline') _
standardPipeline(image: 'registry/myapp', app: 'myapp')
Kubernetes-Agents¶
pipeline {
agent {
kubernetes {
yaml '''
apiVersion: v1
kind: Pod
spec:
containers:
- name: golang
image: golang:1.22
command: [sleep]
args: [infinity]
- name: docker
image: docker:24-dind
securityContext:
privileged: true
'''
}
}
stages {
stage('Build') {
steps { container('golang') { sh 'go build ./...' } }
}
}
}
Best Practices¶
- Deklarative Pipeline > Scripted Pipeline
- Shared Libraries für wiederkehrende Patterns
- Parallele Stages für schnelleres Feedback
- K8s-Agents für Isolation und Skalierbarkeit
- Credentials-Plugin für Secrets
Zusammenfassung¶
Modernes Jenkins mit Shared Libraries und K8s-Agents ist weiterhin ein starkes CI/CD-Werkzeug. Der Schlüssel ist Standardisierung.
Brauchen Sie Hilfe bei der Implementierung?¶
Unser Team hat Erfahrung mit dem Entwurf und der Implementierung moderner Architekturen. Wir helfen Ihnen gerne.