Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
How Containerized Pipelines Can Boost Your CI/C...
Search
DevOps Gathering
March 11, 2020
Programming
200
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
How Containerized Pipelines Can Boost Your CI/CD by Nico Meisenzahl
DevOps Gathering
March 11, 2020
More Decks by DevOps Gathering
See All by DevOps Gathering
Hacking Terraform by Constantin Weisser
devopsgatheringio
1
270
The Road to Reliability: Infrastructure Testing explained by Constantin Weisser
devopsgatheringio
1
310
Take MicroProfile to the Clouds with Quarkus by Dirk Weil
devopsgatheringio
0
220
Tracing - a Journey to Tactical Insights by Florian Kückelkorn
devopsgatheringio
0
280
Testable Kubernetes Operators? by Marcel Müller
devopsgatheringio
0
310
Routing Your Microservices Architecture to Ease DevOps Enterprise Transformation by Manuel Zapf
devopsgatheringio
0
290
The First Decade of DevOps is Over by Konstanin Diener
devopsgatheringio
1
180
From Zero to Hero - Onboarding with GitOps by Mario Kleinsasser
devopsgatheringio
0
170
Building a Graph User-Interface for Malware-Analysis by Stefan Hausotte
devopsgatheringio
0
280
Other Decks in Programming
See All in Programming
JavaDoc 再入門
nagise
1
340
メソッドのジェネリクスでGoの夢は広がるか? / Kyoto.go #65
utgwkk
3
760
ローカルLLMでどこまでコードが書けるか -拡張版 / How much code can be written on a local LLM Extended
kishida
10
4.1k
Spring Security 実践 ─ GraphQL APIで実務に役立つ 認証・認可 を学ぶ
wagyu
0
230
Developing with AI Agents — Codex, Claude Code & Cowork Practical Guide
x5gtrn
PRO
0
1.3k
3Dシーンの圧縮
fadis
1
770
Honoでのサプライチェーン侵害対策 〜 3つのライブラリに学ぶ
yusukebe
3
520
AI時代のUIはどこへ行く?その2!
yusukebe
21
7.1k
Webフレームワークの ベンチマークについて
yusukebe
0
160
Oxlintのカスタムルールの現況
syumai
6
1.1k
正しくソフトウェアを作る、前提を疑うための認知の視点 / doubt-premise
minodriven
21
6.6k
Java × distroless で 軽量なコンテナイメージを / Java on Distroless
contour_gara
0
540
Featured
See All Featured
Joys of Absence: A Defence of Solitary Play
codingconduct
1
390
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
240
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
Prompt Engineering for Job Search
mfonobong
0
340
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
HDC tutorial
michielstock
2
710
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
160
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Writing Fast Ruby
sferik
630
63k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
410
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
170
Transcript
How Containerized Pipelines Can Boost Your CI/CD DevOps Gathering, Bochum
2020
Nico Meisenzahl • Senior Cloud & DevOps Consultant at white
duck • Docker Community Leader & GitLab Hero • loves Kubernetes, DevOps and Cloud © white duck GmbH 2020 Phone: +49 8031 230159 0 Email:
[email protected]
Twitter: @nmeisenzahl LinkedIn: https://www.linkedin.com/in/nicomeisenzahl Blog: https://meisenzahl.org
Agenda • containerized pipeline – why? • pipeline workload on
Kubernetes with GitLab CI/CD • image builds on Kubernetes with Kaniko • cloud-native pipelines with Tekton © white duck GmbH 2020
Containerized Pipelines – Why? • for the same reasons why
you should use containers • isolation • dependencies • scalability • immutability • example: your new project needs version X all others still require Y • you can include any kind of build / deploy dependency • NodeJS, .NET Core, Go, Terraform, Ansible… you name it © white duck GmbH 2020
Pipeline job image • contains everything a single pipeline job
needs • binaries, libraries, tools, ... • provide all external dependencies • use a pipeline to build/rebuild it periodically (security fixes!) • you should define fix versions for your dependencies • use caching to speed up your builds © white duck GmbH 2020
Pipeline job image © white duck GmbH 2020
Kubernetes vs. docker run • every pipeline job runs in
a container • based on an image with all requirements for this single job • Build host with Docker daemon (or any other container solution) • GitLab Runner Kubernetes executor • integrates your CI/CD with Kubernetes • runs a pod per job • containing a container with the defined image along with some service containers • allows you to share your compute and scale your pipelines © white duck GmbH 2020
GitLab Runner Kubernetes executor • runs itself in a pod
• needs to be deployed in your Kubernetes Cluster • automatable Helm deployment • schedules job pods • build steps of a pipeline job • prepare → creates pod with build and service containers • pre-build → clones repo, restore cache, download artifacts • build → user build steps • post-build → creates caches and upload artifacts © white duck GmbH 2020
Demo • containerized pipelines on Kubernetes with GitLab Runner ©
white duck GmbH 2020
Image builds on Kubernetes with Kaniko • any Docker-in-Docker solution
has issues • exposing Docker socket • mounting /var/lib/docker • privileged mode • image builds without the need of any privileges or dependencies • runs in a container (gcr.io/kaniko-project/executor) • use build caching to speed up your pipeline • layer caching (layers get pushed pushed to a registry) • base image caching (local mount point) © white duck GmbH 2020
Image builds on Kubernetes with Kaniko © white duck GmbH
2020
Demo • containerized image builds on Kubernetes with Kaniko ©
white duck GmbH 2020
Cloud-native pipelines with Tekton • moves your whole CI/CD into
Kubernetes • uses containers as their building blocks • based on CRDs and Controllers • Tekton Pipelines emerged out of the Knative build project • Continuous Delivery Fundation Graduated project • „CI/CD framework for Kubernetes” • Jenkins X pipelines are based on Tekton • contributions by Google, IBM, RedHat, Cloudbees, TriggerMesh, … © white duck GmbH 2020
Cloud-native pipelines with Tekton • Tekton Triggers can be used
to call a pipeline • push, issue, webhook, …. • Tekton also provides a CLI and Dashboard • get started • https://github.com/tektoncd/pipeline/blob/master/docs/tutorial.md • https://github.com/tektoncd/catalog © white duck GmbH 2020
Demo • cloud-native pipelines with Tekton Pipelines © white duck
GmbH 2020
Questions? Slides: https://www.slideshare.net/nmeisenzahl Demo: https://gitlab.com/groups/containerized-cicd Nico Meisenzahl (Senior Cloud &
DevOps Consultant) Phone: +49 8031 230159 0 Email:
[email protected]
Twitter: @nmeisenzahl LinkedIn: https://www.linkedin.com/in/nicomeisenzahl Blog: https://meisenzahl.org © white duck GmbH 2020