SlideShare una empresa de Scribd logo
1 de 29
Descargar para leer sin conexión
Cutting the
Kubernetes
Monorepo in	
pieces
Never	learnt more about git
Dr.	Stefan	Schimanski	– @the_sttts – github.com/sttts
sttts@redhat.com
„My other computer is a	datacenter“
• Founded in	2014	by Google	engineers
• 100%	OpenSource,	Apache	license
• Governed by Cloud	Native	Computing	Foundation (CNCF)
• >	100	companies contributing Go
Monorepo
+ makes testing easier
+ makes releases easier
+ makes global	changes easier
+ is easy	to implement
- is not	how Golang works
- is not	what 3rd-parties	expect
- does not	scale well
github.com/kubernetes/kubernetes
cmd
pkg
staging
src
k8s.io
api
apimachinery
apiserver
client-go
apiextensions-apiserver
kube-aggregator
sample-apiserver
sample-controller
Monorepo
+ makes testing easier
+ makes releases easier
+ makes global	changes easier
+ is easy	to implement
- is not	how Golang works
- is not	what 3rd-parties	expect
- does not	scale well
github.com/kubernetes/kubernetes
cmd
pkg
staging
src
k8s.io
api
apimachinery
apiserver
client-go
apiextensions-apiserver
kube-aggregator
sample-apiserver
sample-controller
vendor
...
symlinks
Monorepo
+ makes testing easier
+ makes releases easier
+ makes global	changes easier
+ is easy	to implement
- is not	how Golang works
- is not	what 3rd-parties	expect
- does not	scale well
😱
github.com/kubernetes/kubernetes
cmd
pkg
staging
src
k8s.io
api
apimachinery
apiserver
client-go
apiextensions-apiserver
kube-aggregator
sample-apiserver
sample-controller
vendor
...
symlinks
github.com/kubernetes/kubernetes
cmd
pkg
api
cmd
pkg
apiserver
cmd
pkg
apimachinery
cmd
pkg
client-go
cmd
pkg
aggregator
cmd
pkg
apiextensions
cmd
pkg
Publishing	staging repos
+ automated,	nightly
+ git filter-branch –subdirectory-filter
- preserve history
- tag	across repos
- always work
😱 preserve Github PR	merge commits
😱 update	dependencies:	Godeps.json
😱 work with arbitrary merges
😱 some files live	in	staging repo
Godeps.json,	README.md,	vendor/
commit
author
committer
parents
tree
message
$ git cat-file –p HEAD
tree 4a541f0a3b26ab7ef8eb38090072558cd8aa54cd
parent 3667154d8524e58db0e21b9338f335f5c53dd83e
parent 951d2c060e0fa173f82bc221e388f9491709c52c
author Kubernetes Submit Queue <k8s-merge-robot@users.noreply.github.c
committer GitHub <noreply@github.com> 1508409674 -0700
Merge pull request #54192 from mkumatag/versioned_busybox
message
commit
author
committer
parents
tree
message
commit
author
committer
parents
commit
author
committer
parents
tree
message
message
commit
author
committer
parents
tree
A,	mode,	hash
B,	mode,	hash
tree
C,	mode,	hash
D,	mode,	hash
E,	mode,	hash
file blob
00100101011101010
10100100101010101
10010111010100101
tree
A,	mode,	hash
B,	mode,	hash
file blob
10100101001010111
11001010010010010
11010101001010100
file blob
01010101001010111
10101001010100101
10111101001001011
file blob
11010101001010000
01010101000101001
10010101010100100
file blob
11010101010101111
11011111111010000
11101010111110110
commit
author
committer
parents
tree
message
git plumbing commands
$ git hash-object –w	<filename>					#	Copy	into	repository
<blob-sha>
$ git update-index --add --cacheinfo 100644	<blob-sha>	<filename>
$ git write-tree
<tree-sha>
$ git commit-tree -p	<parent-sha>	-m	“Commit	message“	<tree-sha>
<commit-sha>
github.com/kubernetes/kubernetes
cmd
pkg
staging
src
k8s.io
api
apimachinery
apiserver
client-go
apiextensions-apiserver
kube-aggregator
sample-apiserver
sample-controller
github.com/kubernetes/kubernetes
cmd
pkg
api
cmd
pkg
apiserver
cmd
pkg
apimachinery
cmd
pkg
client-go
cmd
pkg
aggregator
cmd
pkg
apiextensions
cmd
pkg
PR	merge
PR	merge
PR	merge
PR	merge
commit
commit
commit
commit
PR	merge
commit
commit
...
master
commit
author
committer
parents
tree
message
message
commit
author
committer
parents
tree
A,	mode,	hash
B,	mode,	hash
client-go
C,	mode,	hash
D,	mode,	hash
E,	mode,	hash
file blob
00100101011101010
10100100101010101
10010111010100101
tree
A,	mode,	hash
B,	mode,	hash
file blob
10100101001010111
11001010010010010
11010101001010100
file blob
01010101001010111
10101001010100101
10111101001001011
file blob
11010101001010000
01010101000101001
10010101010100100
file blob
11010101010101111
11011111111010000
11101010111110110
commit
author
committer
parents
tree
message
commit
author
committer
parents
tree
message
message
commit
author
committer
parents
tree
A,	mode,	hash
B,	mode,	hash
client-go
C,	mode,	hash
D,	mode,	hash
E,	mode,	hash
file blob
00100101011101010
10100100101010101
10010111010100101
tree
A,	mode,	hash
B,	mode,	hash
file blob
10100101001010111
11001010010010010
11010101001010100
file blob
01010101001010111
10101001010100101
10111101001001011
file blob
11010101001010000
01010101000101001
10010101010100100
file blob
11010101010101111
11011111111010000
11101010111110110
commit
author
committer
parents
tree
message
commit
author
committer
parents
tree
message
message
commit
author
committer
parents
tree
A,	mode,	hash
B,	mode,	hash
client-go
C,	mode,	hash
D,	mode,	hash
E,	mode,	hash
file blob
00100101011101010
10100100101010101
10010111010100101
tree
A,	mode,	hash
B,	mode,	hash
file blob
10100101001010111
11001010010010010
11010101001010100
file blob
01010101001010111
10101001010100101
10111101001001011
file blob
11010101001010000
01010101000101001
10010101010100100
file blob
11010101010101111
11011111111010000
11101010111110110
commit
author
committer
parents
tree
message
commit
author
committer
parents
tree
message
message
commit
author
committer
parents
client-go
C,	mode,	hash
D,	mode,	hash
E,	mode,	hash
file blob
10100101001010111
11001010010010010
11010101001010100
file blob
01010101001010111
10101001010100101
10111101001001011
file blob
11010101001010000
01010101000101001
10010101010100100
commit
author
committer
parents
tree
message
„subdirectory
filter“
commit
author
committer
parents
tree
message
message
commit
author
committer
parents
client-go
C,	mode,	hash
D,	mode,	hash
E,	mode,	hash
file blob
10100101001010111
11001010010010010
11010101001010100
file blob
01010101001010111
10101001010100101
10111101001001011
file blob
11010101001010000
01010101000101001
10010101010100100
commit
author
committer
parents
tree
message
„subdirectory
filter“
message
commit
author
committer
parents
client-go
C,	mode,	hash
D,	mode,	hash
E,	mode,	hash
file blob
10100101001010111
11001010010010010
11010101001010100
file blob
01010101001010111
10101001010100101
10111101001001011
file blob
11010101001010000
01010101000101001
10010101010100100
commit
author
committer
parents
tree
message
„prune
empty“
„subdirectory
filter“
git filter-branch –subdirectory-filter	staging/src/k8s.io/client-go
PR	merge
PR	merge
PR	merge
PR	merge
commit
commit
commit
commit
PR	merge
commit
commit
git filter-branch –subdirectory-filter	staging/src/k8s.io/client-go
PR	merge
PR	merge
PR	merge
PR	merge
commit
commit
commit
commit
PR	merge
commit
PR	merge
PR	merge
PR	merge
PR	merge
commit
commit
commit
commit
PR	merge
commit
commit commit
git filter-branch –subdirectory-filter	staging/src/k8s.io/client-go
PR	merge
PR	merge
PR	merge
PR	merge
commit
commit
commit
commit
PR	merge
commit
PR	merge
PR	merge
PR	merge
PR	merge
commit
commit
commit
commit
PR	merge
commit
commit commit
Merge pull	request
#4
author
committer
parents
tree
message
message
commit
author
committer
parents
tree
C,	mode,	hash
D,	mode,	hash
E,	mode,	hash
file blob
10100101001010111
11001010010010010
11010101001010100
file blob
01010101001010111
10101001010100101
10111101001001011
file blob
11010101001010000
01010101000101001
10010101010100100
commit
author
committer
parents
tree
message
„subdirectory
filter“
„fast-forward	merge“
Merge pull	request
#4
author
committer
parents
tree
message
message
commit
author
committer
parents
tree
C,	mode,	hash
D,	mode,	hash
E,	mode,	hash
file blob
10100101001010111
11001010010010010
11010101001010100
file blob
01010101001010111
10101001010100101
10111101001001011
file blob
11010101001010000
01010101000101001
10010101010100100
commit
author
committer
parents
tree
message
„subdirectory
filter“
„fast-forward	merge“
😱
git filter-branch –subdirectory-filter	staging/src/k8s.io/client-go
PR	merge
PR	merge
PR	merge
PR	merge
commit
commit
commit
commit
PR	merge
commit
PR	merge
PR	merge
PR	merge
PR	merge
commit
commit
commit
commit
PR	merge
commit
commit
😱
commit
git filter-branch –subdirectory-filter	staging/src/k8s.io/client-go
PR	merge
PR	merge
PR	merge
PR	merge
commit
commit
commit
commit
PR	merge
commit
PR	merge
PR	merge
PR	merge
PR	merge
commit
commit
commit
commit
PR	merge
commit
commit
😱
commit
😱
git filter-branch –subdirectory-filter	staging/src/k8s.io/client-go
instead: custom filter-branch with https://github.com/src-d/go-git
„A	highly extensible	Git implementation in	pure	Go“
which prunes exactly the commits we want.
Lessons learnt
• Git data structures are no rocket	science
• Choose:
1. 700	lines custom Git code in	Go
2. 700	dense bash lines working around git filter-branch and friends
• porcelain vs.	plumbing commands
Do	not	script the former,	understand what they do!
References
• Git Internals:	https://git-scm.com/book/en/v2/Git-Internals-Git-
Objects
• Native	(non-cgo)	go library:	https://github.com/src-d/go-git
• Custom	filter-branch algorithm:	https://github.com/kubernetes/test-
infra/pull/5035/commits/c659f8a49c02ec60bfecfbf1c87416e11e966
4c7

Más contenido relacionado

La actualidad más candente

Kubernetes API code-base tour
Kubernetes API code-base tourKubernetes API code-base tour
Kubernetes API code-base tourStefan Schimanski
 
An Introduction to the Kubernetes API
An Introduction to the Kubernetes APIAn Introduction to the Kubernetes API
An Introduction to the Kubernetes APIStefan Schimanski
 
[表示が崩れる場合ダウンロードしてご覧ください] 2018年のDocker・Moby
[表示が崩れる場合ダウンロードしてご覧ください] 2018年のDocker・Moby[表示が崩れる場合ダウンロードしてご覧ください] 2018年のDocker・Moby
[表示が崩れる場合ダウンロードしてご覧ください] 2018年のDocker・MobyAkihiro Suda
 
Kubelet with no Kubernetes Masters | DevNation Tech Talk
Kubelet with no Kubernetes Masters | DevNation Tech TalkKubelet with no Kubernetes Masters | DevNation Tech Talk
Kubelet with no Kubernetes Masters | DevNation Tech TalkRed Hat Developers
 
Building kubectl plugins with Quarkus | DevNation Tech Talk
Building kubectl plugins with Quarkus | DevNation Tech TalkBuilding kubectl plugins with Quarkus | DevNation Tech Talk
Building kubectl plugins with Quarkus | DevNation Tech TalkRed Hat Developers
 
KubeCon EU 2016: Kubernetes and the Potential for Higher Level Interfaces
KubeCon EU 2016: Kubernetes and the Potential for Higher Level InterfacesKubeCon EU 2016: Kubernetes and the Potential for Higher Level Interfaces
KubeCon EU 2016: Kubernetes and the Potential for Higher Level InterfacesKubeAcademy
 
Managing Docker Containers In A Cluster - Introducing Kubernetes
Managing Docker Containers In A Cluster - Introducing KubernetesManaging Docker Containers In A Cluster - Introducing Kubernetes
Managing Docker Containers In A Cluster - Introducing KubernetesMarc Sluiter
 
Continuous Deployment with Jenkins on Kubernetes
Continuous Deployment with Jenkins on KubernetesContinuous Deployment with Jenkins on Kubernetes
Continuous Deployment with Jenkins on KubernetesMatt Baldwin
 
Container Days Boston - Kubernetes in production
Container Days Boston - Kubernetes in productionContainer Days Boston - Kubernetes in production
Container Days Boston - Kubernetes in productionMike Splain
 
jbang: Unleash the power of Java for shell scripting
jbang: Unleash the power of Java for shell scriptingjbang: Unleash the power of Java for shell scripting
jbang: Unleash the power of Java for shell scriptingRed Hat Developers
 
Cluster Networking with Docker
Cluster Networking with DockerCluster Networking with Docker
Cluster Networking with DockerStefan Schimanski
 
Kubernetes Architecture - beyond a black box - Part 2
Kubernetes Architecture - beyond a black box - Part 2Kubernetes Architecture - beyond a black box - Part 2
Kubernetes Architecture - beyond a black box - Part 2Hao H. Zhang
 
Tectonic Summit 2016: Kubernetes 1.5 and Beyond
Tectonic Summit 2016: Kubernetes 1.5 and BeyondTectonic Summit 2016: Kubernetes 1.5 and Beyond
Tectonic Summit 2016: Kubernetes 1.5 and BeyondCoreOS
 
OpenStack Preso: DevOps on Hybrid Infrastructure
OpenStack Preso: DevOps on Hybrid InfrastructureOpenStack Preso: DevOps on Hybrid Infrastructure
OpenStack Preso: DevOps on Hybrid Infrastructurerhirschfeld
 
KubeCon 2017 Zero Touch Provision
KubeCon 2017 Zero Touch ProvisionKubeCon 2017 Zero Touch Provision
KubeCon 2017 Zero Touch ProvisionRackN
 
Why so continuous
Why so continuousWhy so continuous
Why so continuousMax Lobur
 
CAPS: What's best for deploying and managing OpenStack? Chef vs. Ansible vs. ...
CAPS: What's best for deploying and managing OpenStack? Chef vs. Ansible vs. ...CAPS: What's best for deploying and managing OpenStack? Chef vs. Ansible vs. ...
CAPS: What's best for deploying and managing OpenStack? Chef vs. Ansible vs. ...Daniel Krook
 
Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners HubSpot
 

La actualidad más candente (20)

Kubernetes API code-base tour
Kubernetes API code-base tourKubernetes API code-base tour
Kubernetes API code-base tour
 
An Introduction to the Kubernetes API
An Introduction to the Kubernetes APIAn Introduction to the Kubernetes API
An Introduction to the Kubernetes API
 
[表示が崩れる場合ダウンロードしてご覧ください] 2018年のDocker・Moby
[表示が崩れる場合ダウンロードしてご覧ください] 2018年のDocker・Moby[表示が崩れる場合ダウンロードしてご覧ください] 2018年のDocker・Moby
[表示が崩れる場合ダウンロードしてご覧ください] 2018年のDocker・Moby
 
Kubelet with no Kubernetes Masters | DevNation Tech Talk
Kubelet with no Kubernetes Masters | DevNation Tech TalkKubelet with no Kubernetes Masters | DevNation Tech Talk
Kubelet with no Kubernetes Masters | DevNation Tech Talk
 
Beyond static configuration
Beyond static configurationBeyond static configuration
Beyond static configuration
 
Building kubectl plugins with Quarkus | DevNation Tech Talk
Building kubectl plugins with Quarkus | DevNation Tech TalkBuilding kubectl plugins with Quarkus | DevNation Tech Talk
Building kubectl plugins with Quarkus | DevNation Tech Talk
 
KubeCon EU 2016: Kubernetes and the Potential for Higher Level Interfaces
KubeCon EU 2016: Kubernetes and the Potential for Higher Level InterfacesKubeCon EU 2016: Kubernetes and the Potential for Higher Level Interfaces
KubeCon EU 2016: Kubernetes and the Potential for Higher Level Interfaces
 
Managing Docker Containers In A Cluster - Introducing Kubernetes
Managing Docker Containers In A Cluster - Introducing KubernetesManaging Docker Containers In A Cluster - Introducing Kubernetes
Managing Docker Containers In A Cluster - Introducing Kubernetes
 
Continuous Deployment with Jenkins on Kubernetes
Continuous Deployment with Jenkins on KubernetesContinuous Deployment with Jenkins on Kubernetes
Continuous Deployment with Jenkins on Kubernetes
 
Kubernetes 101 Workshop
Kubernetes 101 WorkshopKubernetes 101 Workshop
Kubernetes 101 Workshop
 
Container Days Boston - Kubernetes in production
Container Days Boston - Kubernetes in productionContainer Days Boston - Kubernetes in production
Container Days Boston - Kubernetes in production
 
jbang: Unleash the power of Java for shell scripting
jbang: Unleash the power of Java for shell scriptingjbang: Unleash the power of Java for shell scripting
jbang: Unleash the power of Java for shell scripting
 
Cluster Networking with Docker
Cluster Networking with DockerCluster Networking with Docker
Cluster Networking with Docker
 
Kubernetes Architecture - beyond a black box - Part 2
Kubernetes Architecture - beyond a black box - Part 2Kubernetes Architecture - beyond a black box - Part 2
Kubernetes Architecture - beyond a black box - Part 2
 
Tectonic Summit 2016: Kubernetes 1.5 and Beyond
Tectonic Summit 2016: Kubernetes 1.5 and BeyondTectonic Summit 2016: Kubernetes 1.5 and Beyond
Tectonic Summit 2016: Kubernetes 1.5 and Beyond
 
OpenStack Preso: DevOps on Hybrid Infrastructure
OpenStack Preso: DevOps on Hybrid InfrastructureOpenStack Preso: DevOps on Hybrid Infrastructure
OpenStack Preso: DevOps on Hybrid Infrastructure
 
KubeCon 2017 Zero Touch Provision
KubeCon 2017 Zero Touch ProvisionKubeCon 2017 Zero Touch Provision
KubeCon 2017 Zero Touch Provision
 
Why so continuous
Why so continuousWhy so continuous
Why so continuous
 
CAPS: What's best for deploying and managing OpenStack? Chef vs. Ansible vs. ...
CAPS: What's best for deploying and managing OpenStack? Chef vs. Ansible vs. ...CAPS: What's best for deploying and managing OpenStack? Chef vs. Ansible vs. ...
CAPS: What's best for deploying and managing OpenStack? Chef vs. Ansible vs. ...
 
Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners
 

Similar a Cutting the Kubernetes Monorepo in pieces – never learnt more about git

Cutting the Kubernetes Monorepo in pieces
Cutting the Kubernetes Monorepo in piecesCutting the Kubernetes Monorepo in pieces
Cutting the Kubernetes Monorepo in piecesStefan Schimanski
 
Hacking for fun & profit - The Kubernetes Way - Demi Ben-Ari - Panorays
Hacking for fun & profit - The Kubernetes Way - Demi Ben-Ari - PanoraysHacking for fun & profit - The Kubernetes Way - Demi Ben-Ari - Panorays
Hacking for fun & profit - The Kubernetes Way - Demi Ben-Ari - PanoraysDemi Ben-Ari
 
Continuous Lifecycle London 2018 Event Keynote
Continuous Lifecycle London 2018 Event KeynoteContinuous Lifecycle London 2018 Event Keynote
Continuous Lifecycle London 2018 Event KeynoteWeaveworks
 
GitOps Testing in Kubernetes with Flux and Testkube.pdf
GitOps Testing in Kubernetes with Flux and Testkube.pdfGitOps Testing in Kubernetes with Flux and Testkube.pdf
GitOps Testing in Kubernetes with Flux and Testkube.pdfWeaveworks
 
Serverless in production, an experience report (FullStack 2018)
Serverless in production, an experience report (FullStack 2018)Serverless in production, an experience report (FullStack 2018)
Serverless in production, an experience report (FullStack 2018)Yan Cui
 
Serverless in Production, an experience report (AWS UG South Wales)
Serverless in Production, an experience report (AWS UG South Wales)Serverless in Production, an experience report (AWS UG South Wales)
Serverless in Production, an experience report (AWS UG South Wales)Yan Cui
 
In cluster open source testing framework - Microservices Meetup
In cluster open source testing framework - Microservices MeetupIn cluster open source testing framework - Microservices Meetup
In cluster open source testing framework - Microservices MeetupNeil Gehani
 
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023Vadym Kazulkin
 
Yannis Zarkadas. Enterprise data science workflows on kubeflow
Yannis Zarkadas. Enterprise data science workflows on kubeflowYannis Zarkadas. Enterprise data science workflows on kubeflow
Yannis Zarkadas. Enterprise data science workflows on kubeflowMarynaHoldaieva
 
Yannis Zarkadas. Stefano Fioravanzo. Enterprise data science workflows on kub...
Yannis Zarkadas. Stefano Fioravanzo. Enterprise data science workflows on kub...Yannis Zarkadas. Stefano Fioravanzo. Enterprise data science workflows on kub...
Yannis Zarkadas. Stefano Fioravanzo. Enterprise data science workflows on kub...Lviv Startup Club
 
Gitlab ci e kubernetes, build test and deploy your projects like a pro
Gitlab ci e kubernetes, build test and deploy your projects like a proGitlab ci e kubernetes, build test and deploy your projects like a pro
Gitlab ci e kubernetes, build test and deploy your projects like a prosparkfabrik
 
The path to a serverless-native era with Kubernetes
The path to a serverless-native era with KubernetesThe path to a serverless-native era with Kubernetes
The path to a serverless-native era with Kubernetessparkfabrik
 
Scaling Up Lookout
Scaling Up LookoutScaling Up Lookout
Scaling Up LookoutLookout
 
SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...
SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...
SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...SaltStack
 
MadridJug From Monolith to k8s with Jenkins X and Zeebe
MadridJug From Monolith to k8s with Jenkins X and ZeebeMadridJug From Monolith to k8s with Jenkins X and Zeebe
MadridJug From Monolith to k8s with Jenkins X and ZeebeMauricio (Salaboy) Salatino
 
Cloudstack Continuous Delivery
Cloudstack Continuous DeliveryCloudstack Continuous Delivery
Cloudstack Continuous Deliverybuildacloud
 
Cloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh VariaCloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh VariaAmazon Web Services
 
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024Cloud Native NoVA
 
Innovate Better Through Machine data Analytics
Innovate Better Through Machine data AnalyticsInnovate Better Through Machine data Analytics
Innovate Better Through Machine data AnalyticsHal Rottenberg
 

Similar a Cutting the Kubernetes Monorepo in pieces – never learnt more about git (20)

Cutting the Kubernetes Monorepo in pieces
Cutting the Kubernetes Monorepo in piecesCutting the Kubernetes Monorepo in pieces
Cutting the Kubernetes Monorepo in pieces
 
Hacking for fun & profit - The Kubernetes Way - Demi Ben-Ari - Panorays
Hacking for fun & profit - The Kubernetes Way - Demi Ben-Ari - PanoraysHacking for fun & profit - The Kubernetes Way - Demi Ben-Ari - Panorays
Hacking for fun & profit - The Kubernetes Way - Demi Ben-Ari - Panorays
 
Continuous Lifecycle London 2018 Event Keynote
Continuous Lifecycle London 2018 Event KeynoteContinuous Lifecycle London 2018 Event Keynote
Continuous Lifecycle London 2018 Event Keynote
 
GitOps Testing in Kubernetes with Flux and Testkube.pdf
GitOps Testing in Kubernetes with Flux and Testkube.pdfGitOps Testing in Kubernetes with Flux and Testkube.pdf
GitOps Testing in Kubernetes with Flux and Testkube.pdf
 
Serverless in production, an experience report (FullStack 2018)
Serverless in production, an experience report (FullStack 2018)Serverless in production, an experience report (FullStack 2018)
Serverless in production, an experience report (FullStack 2018)
 
Serverless in Production, an experience report (AWS UG South Wales)
Serverless in Production, an experience report (AWS UG South Wales)Serverless in Production, an experience report (AWS UG South Wales)
Serverless in Production, an experience report (AWS UG South Wales)
 
In cluster open source testing framework - Microservices Meetup
In cluster open source testing framework - Microservices MeetupIn cluster open source testing framework - Microservices Meetup
In cluster open source testing framework - Microservices Meetup
 
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023
Github Copilot vs Amazon CodeWhisperer for Java developers at JCON 2023
 
Yannis Zarkadas. Enterprise data science workflows on kubeflow
Yannis Zarkadas. Enterprise data science workflows on kubeflowYannis Zarkadas. Enterprise data science workflows on kubeflow
Yannis Zarkadas. Enterprise data science workflows on kubeflow
 
Yannis Zarkadas. Stefano Fioravanzo. Enterprise data science workflows on kub...
Yannis Zarkadas. Stefano Fioravanzo. Enterprise data science workflows on kub...Yannis Zarkadas. Stefano Fioravanzo. Enterprise data science workflows on kub...
Yannis Zarkadas. Stefano Fioravanzo. Enterprise data science workflows on kub...
 
Gitlab ci e kubernetes, build test and deploy your projects like a pro
Gitlab ci e kubernetes, build test and deploy your projects like a proGitlab ci e kubernetes, build test and deploy your projects like a pro
Gitlab ci e kubernetes, build test and deploy your projects like a pro
 
The path to a serverless-native era with Kubernetes
The path to a serverless-native era with KubernetesThe path to a serverless-native era with Kubernetes
The path to a serverless-native era with Kubernetes
 
Scaling Up Lookout
Scaling Up LookoutScaling Up Lookout
Scaling Up Lookout
 
Guides To Analyzing WebKit Performance
Guides To Analyzing WebKit PerformanceGuides To Analyzing WebKit Performance
Guides To Analyzing WebKit Performance
 
SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...
SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...
SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...
 
MadridJug From Monolith to k8s with Jenkins X and Zeebe
MadridJug From Monolith to k8s with Jenkins X and ZeebeMadridJug From Monolith to k8s with Jenkins X and Zeebe
MadridJug From Monolith to k8s with Jenkins X and Zeebe
 
Cloudstack Continuous Delivery
Cloudstack Continuous DeliveryCloudstack Continuous Delivery
Cloudstack Continuous Delivery
 
Cloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh VariaCloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
 
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
 
Innovate Better Through Machine data Analytics
Innovate Better Through Machine data AnalyticsInnovate Better Through Machine data Analytics
Innovate Better Through Machine data Analytics
 

Último

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 

Último (20)

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 

Cutting the Kubernetes Monorepo in pieces – never learnt more about git