Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Continouos Delivery in Kubernetesland
Search
Nicolas Byl
February 23, 2018
Technology
85
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Continouos Delivery in Kubernetesland
Nicolas Byl
February 23, 2018
More Decks by Nicolas Byl
See All by Nicolas Byl
Platform Engineering ❤️ Developer Experience
nbyl
0
71
Die Flucht aus der Prototypen-Hölle
nbyl
0
65
Lean Prototyping for Industrial-IoT Projects
nbyl
0
87
DevSecOps - Vom Unikum zur gut geölten Maschine
nbyl
0
130
Securing your software supply chain
nbyl
0
410
Keeping-Up-WithUpstream.pdf
nbyl
0
200
Dr. Kube und der Helm - Anatomie einer CD-Pipeline
nbyl
0
160
Securing the "other" supply chain
nbyl
0
340
Kubernetes - Auf die Cluster, Fertig, Los!
nbyl
0
230
Other Decks in Technology
See All in Technology
使いこなすために知っておきたい Azure SRE Agent アンチパターン
torumakabe
2
410
DWH の限界突破! AI エージェント向け爆速リアルタイムデータ基盤 ClickHouse
jozono
1
260
全人類(ほぼ)AWS Organizations の上でAWSを利用している、その世界を知る話
htan
0
120
The seven pitfalls of AI (revised version)
ufried
0
290
スキルを作る、その前に!複数人で使われるスキルを 作るためのプロセス
junkifurukawa
2
350
UniFi(ユニファイ)AIカメラの現場活用
ludicmind
1
200
Execution in the Kingdom of Agents: Reflections on Abstraction and Complexity
bcantrill
0
870
事業活動を AI Ready にする攻めと守りのデータエンジニアリング / data-engineering-for-ai-ready-business
pei0804
5
2k
[AWS 秋のクラウドオペレーション祭り 2026]AWS DevOps Agentで変わるリリースと運用対応 ~リリース管理機能と Directed actions のご紹介~
furuton
4
1.1k
プロダクト価値を、 チームが使える判断軸に変える
vivion
0
130
私の推しは「聞いてから進む」AIです -AI-DLCに一人でアプリを作らせた話
yama3133
1
180
FOSS4Gを活用した自治体業務DXの試み
470715
0
120
Featured
See All Featured
Everyday Curiosity
cassininazir
0
350
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
5.1k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
260
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Making Projects Easy
brettharned
120
6.8k
Balancing Empowerment & Direction
lara
6
1.3k
4 Signs Your Business is Dying
shpigford
187
23k
Technical Leadership for Architectural Decision Making
baasie
3
590
What does AI have to do with Human Rights?
axbom
PRO
1
2.4k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
620
Un-Boring Meetings
codingconduct
0
440
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
610
Transcript
1 CONTINUOUS DELIVERY IN KUBERNETESLAND Entwicklertag Frankfurt 2018 Nicolas Byl,
codecentric AG
2 . 1 GETTING STARTED
2 . 2 Mission Statement You can follow the pipeline
on your device. Install prequisites
2 . 3 Prequisites https://github.com/nbyl/cd-workshop-demo
2 . 4 Organisational Stuff Ask questions anytime! Breaks? Slack
None
2 . 5 3 . 1 CONTINUOUS DELIVERY
3 . 2 Key Concepts The software is releasable at
at any time The whole process from source to production is automated Decouple technical rollout from feature rollout
3 . 3 Continuous Delivery vs. Continuous Deployment Continuous Delivery:
Software is releasable at any time Continuous Deployment: Software is released on every change
4 . 1 DOCKER
None
4 . 2
4 . 3
4 . 4
4 . 5
4 . 6 4 . 7 Dockerfile FROM java:8 MAINTAINER
Marcel Birkner <
[email protected]
> ADD target/edmp-sample-app*.jar app.jar RUN bash -c 'touch /app.jar' ENTRYPOINT ["java","-jar","/app.jar"]}
None
4 . 8 5 . 1 KUBERNETES
"Kubernetes is an open-source platform for automating deployment, scaling, and
operations of application containers across clusters of hosts, providing container- centric infrastructure."
5 . 2 portable: public, private, hybrid, multi-cloud extensible: modular,
pluggable, hookable, composable self-healing: auto-placement, auto-restart, auto- replication, auto-scaling
5 . 3
5 . 4 5 . 5 Pods & Co.
5 . 6 Pods
5 . 7 Replication Controller P P P
5 . 8 Deployment combination of pod & replication controller
edited as a unit
apiVersion: extensions/v1beta1 kind: Deployment metadata: name: frontend spec: replicas: 3
template: metadata: labels: app: guestbook tier: frontend spec: containers: - name: php-redis image: gcr.io/google-samples/gb-frontend:v4 resources: t
5 . 9 5 . 10 Services
5 . 11 endpoint for a set of pods an
external endpoint can be resolved using DNS environment variables
None
5 . 12 6 . 1 SHOWCASE PROJECT
6 . 2 confy microservice to manage conference talks and
speakers technology: REST-API UI using Gradle Spring Boot (Web, JPA) ng-admin https://github.com/nbyl/confy
6 . 3 Target Platform kubernetes PostgreSQL
6 . 4 Testing Requirements automatic testing using the target
database user acceptance test before exposing new versions
6 . 5 Build Pipeline build publish docker container integration
test user acceptance test production
6 . 6 Assumptions any manual interaction will be done
in reasonable period our cluster will (for now) contain of only one host
7 . 1 LAB 1: SETUP
7 . 2 Recently on this Program... Have you installed
the prerequisites?
7 . 3 Create a cluster minikube start --memory 4096
kubectl apply -f minikube/storageclass.yml
7 . 4 Install Helm helm init
7 . 5 Install Jenkins helm install stable/jenkins --set Agent.Memory=1024Mi
--name=cd minikube service cd-jenkins
8 . 1 LAB 2: CONTINUOUS INTEGRATION
8 . 2 Objectives build an artefact of the software
run all unit tests and in-tree integration tests
8 . 3 Jenkins Kubernetes Plugin creates a new pod
for every job use the pod as a temporary build slave
8 . 4 Let's Go create a new pipeline job
use as SCM source for your Jenkinsfile https://github.com/nbyl/cd-workshop-demo.git
8 . 5 caveat build cache is gone after every
build
None
8 . 6 8 . 7 persistent volumes create manually
use storageclass with auto-provisioner
kind: StorageClass apiVersion: storage.k8s.io/v1beta1 metadata: name: generic provisioner: kubernetes.io/host-path
8 . 8 kind: PersistentVolumeClaim apiVersion: v1 metadata: name: gradle-cache
annotations: volume.beta.kubernetes.io/storage-class: "generic" spec: accessModes: - ReadWriteOnce resources: requests: t 8Gi
8 . 9 9 . 1 LAB 3: BUILDING A
DOCKER CONTAINER
9 . 2 Objectives build a docker container containing the
application make the container available for deployment
9 . 3 Build Pod Revisited using build pods is
scalable and reproducible the host docker daemon is not reachable
9 . 4 Docker-in-Docker Builds mount the docker sockets inside
the container /run/docker.sock /var/run/docker.sock image will be built in host docker Warning: possible security problem
10 . 1 LAB 4: INTEGRATION TESTING
10 . 2 Objectives create a deployment description for the
application deployment the application in a configuration analog to production run an integration test verifying the basic functionality
10 . 3 Helm Chart helm create helm/confy [edit] helm
upgrade --install dev-confy helm-confy
10 . 4 Configure the Application env: - name: SPRING_DATASOURCE_URL
value: {{ .Values.database.url }} - name: SPRING_DATASOURCE_DRIVER value: {{ .Values.database.driver }} - name: SPRING_DATASOURCE_USERNAME value: {{ .Values.database.username }} - name: SPRING_DATASOURCE_PASSWORD value: {{ .Values.database.password }}
10 . 5 Simulate roduction use the same database server
as in production treat system as blackbox
11 . 1 LAB 5: USER ACCEPTANCE TESTING
11 . 2 Objectives deploy the application accessible for users
allow manual testing continue to production after manual confirmation
11 . 3 Ingress
11 . 4 Ingress Controller Read Ingress state route accordingly
Implementations: NGINX traefik F5 ...
12 . 1 LAB 5: PRODUCTION DEPLOYMENT
12 . 2 Objectives make application available for end users
(nothing new to learn)
13 . 1 WRAP UP
13 . 2 Links https://kubernetes.io https://www.cncf.io/ https://www.openshift.com/promotions/kubernetes.html https://fabric8.io https://github.com/ramitsurana/awesome-kubernetes
13 . 3 The End @NicolasByl Copyright 2017