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
How Containerized Pipelines Can Boost Your CI/C...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
DevOps Gathering
March 11, 2020
Programming
210
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
290
The Road to Reliability: Infrastructure Testing explained by Constantin Weisser
devopsgatheringio
1
320
Take MicroProfile to the Clouds with Quarkus by Dirk Weil
devopsgatheringio
0
240
Tracing - a Journey to Tactical Insights by Florian Kückelkorn
devopsgatheringio
0
300
Testable Kubernetes Operators? by Marcel Müller
devopsgatheringio
0
320
Routing Your Microservices Architecture to Ease DevOps Enterprise Transformation by Manuel Zapf
devopsgatheringio
0
300
The First Decade of DevOps is Over by Konstanin Diener
devopsgatheringio
1
190
From Zero to Hero - Onboarding with GitOps by Mario Kleinsasser
devopsgatheringio
0
180
Building a Graph User-Interface for Malware-Analysis by Stefan Hausotte
devopsgatheringio
0
290
Other Decks in Programming
See All in Programming
Python Lambdaにおけるテストしやすい設計とAI支援の活用 / Designing Testable Python Lambda Functions with AI
kitano_yuichi
1
300
Seven New Principles of Software Engineering
yegor256
0
470
PumaからFalconに移行したRailsアプリケーションでの実践
falcon8823
0
360
SODA - FACT BOOK(EN)
sodainc
1
220
小さなアプリを作って公開するまで
onozaty
0
140
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
4
3.7k
Apple Intelligenceとオンデバイス時代の到来
yahir0
0
230
AI駆動開発4年目の現在地(『あなたはFDEになるべきか?』イベント資料)
kumaiu
0
300
React Native에 현대적인 빌드 도구 더하기: Rollipop 구현기
leegeunhyeok
0
180
Spec-Driven Development - Why Vaadin Is the Perfect Fit
simas
PRO
0
240
動画プレイヤーはなぜカクつくのか 〜Flutterのレンダリングとネイティブの境界を解剖する〜
naruogram
0
330
Next.js: The final boss of Web Performance
guaca
0
390
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
20k
What does AI have to do with Human Rights?
axbom
PRO
1
2.5k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.3k
Building Adaptive Systems
keathley
44
3.3k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
350
First, design no harm
axbom
PRO
2
1.4k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
The Cult of Friendly URLs
andyhume
79
7.1k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
760
Site-Speed That Sticks
csswizardry
13
1.6k
Ruling the World: When Life Gets Gamed
codingconduct
0
430
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