SlideShare a Scribd company logo
1 of 32
Download to read offline
Kubernetes: Shifting the mindset from servers to containers
DB Systel GmbH | Schlomo Schapiro | Chief Architect Cloud, Chief Technology Office | @schlomoschapiro | 23.03.2018
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License
DB13243 © Deutsche Bahn AG / Volker Emersleben
Did you ever use this in a Docker image?
ssh
cron
supervisord
daemontools
upstart
systemd
runit
runas
su
run.sh
DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.20182
A “typical“ server ...
3 DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.2018
SSH CRON
logrotate
Backup
Postfix
Rsyslogatd
dbus-daemon
Apache
PHP App
PHP App
MySQL
DB
DB
man-db
dpkg
A “typical“ server is 50% cruft ... which should be centralized
4 DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.2018
SSH CRON
logrotate
Backup
Postfix
Rsyslogatd
dbus-daemon
Apache
PHP App
PHP App
MySQL
DB
DB
man-db
dpkg
cruft
This is the
„real“ server
5 DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.2018
SSH CRON
logrotate
Backup
Postfix
Rsyslogatd
dbus-daemon
Apache
PHP App
PHP App
MySQL
DB
DB
man-db
dpkg
DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.20186
SSH CRON
logrotate
Backup
Postfix
Rsyslogdbus-daemon
atd
Apache
PHP App
PHP App
MySQL
DB
DB
man-db
dpkg
Cluster-wide orchestration,
scaling, monitoring and
deployment of processes
Great declarative
description for all
IaaS needs
is an abstraction layer
DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.20187
SSH CRON
logrotate
Backup
Postfix
Rsyslogatd
Apache
PHP App
PHP App
MySQL
DB
DB
= containers
Platform features
DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.20188
SSH CRON
logrotate
Backup
Postfix
Rsyslogatd
Apache
PHP App
PHP App
MySQL
DB
DB
containers
isolation – packaging – deployment – immutable systems
Application containers
Application Life Cycle
DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.20189
Build Deploy & Configure Initialize
&
Run
Maintain
as Linux Processes
Application Life Cycle
DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.201810
Build
on Kubernetes
Docker Build
Application Life Cycle
DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.201811
Deploy & Configure
on Kubernetes
Config Maps
Secrets
Pod Spec
Application Life Cycle
DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.201812
on a traditional server
/etc/init.d/app
/usr/sbin/app
/etc/init.d/cron
/usr/sbin/cron
/etc/cron.daily/app
Initialize
&
Run
Maintain
Exclusive access
Prepare data files
Restore data
Apply schema upgrade
Backup data
Cleanup stale data
Run application
Application Life Cycle
DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.201813
on
Initialize
&
Run
Maintain
Backup data
Cleanup stale data
Init Container
Main
Container
Maintenance
Container
Run application
Exclusive access
Prepare data files
Restore data
Apply schema upgrade
Application Life Cycle
DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.201814
on
Initialize
&
Run
Maintain
Init Container
Main
Container
Maintenance
ContainerPod
Running a Pod with multiple Containers
DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.201815
init main
maintenance
t
DATA
S3 BACKUP
Backup, clean up stale data ...
Restore
if needed
Running a Pod with multiple Containers
DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.201816
init main
maintenance
t
DATA
S3 BACKUP
Backup, clean up stale data ...
Restore
if needed
Exclusive access
Prepare data files
Restore data
Apply schema upgrade
Run application
Backup data
Cleanup stale data
Run applicationCoordination!
What happens with the „cruft“?
17 DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.2018
SSH CRON
logrotate
Postfix
Rsyslogatd
dbus-daemon
man-db
dpkg
CRON
• Sends out emails
• Forks multiple processes , breaking the one task per container paradigm
• Not optimized for running single task
• Doesn‘t correctly handle INT/KILL signals
• Doesn‘t log to STDOUT / STDERR
• Cannot configure schedule and cron jobs via environment variables
... made for servers and not containers
DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.201818
CRON
CRON for a single job
DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.201819
#!/bin/bash
RUNAT=${RUNAT:-1 minute}
function wait_for_maintenance_time {
sleep_time=$(( $(date -d "$RUNAT" +%s ; echo - ; date +%s) ))
if (( sleep_time < 0 )) ; then
sleep_time=$(( 24*60*60 + sleep_time )) # wait till next day same time
fi
if (( sleep_time > 0 )) ; then
echo "Waiting $sleep_time seconds till $RUNAT before starting maintenance"
sleep $sleep_time
else
echo "Not waiting $sleep_time seconds"
fi
}
while true ; do
wait_for_maintenance_time
# do some maintenance, e.g. backup data or purge old stuff
done
https://goo.gl/EqSBJU
Email
Old server interfaces
• /usr/lib/sendmail
• /usr/bin/mail
• SMTP to 127.0.0.1:25
• trust based on „same host“
• implicit configuration by convention
DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.201820
Kubernetes alternatives
• cluster service for SMTP:
smtp.mynamespace.svc.cluster.local.
• trust based on „same cluster“ or
dedicated authentication
• configure via environment variables,
e.g. MAILHOST
Secure Shell
One tool – many purposes
• SSH for admin access
• SSH for automation between servers
• SSH for pull backup
SSH on Servers
• Admins are (local) users
• Technical users for automation
• Authentication with passwords or
static SSH keys
• ~/.ssh/authorized_keys as
command filter for some SSH keys
DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.201821
Kubernetes alternatives
• Kubernetes provides Admin access:
kubectl exec
• authentication with Kubernetes
temporary credentials
Anti-patterns
• SSH between pods:
Application cluster probably not
aware of pods coming and going
• User authentication in pods:
Pointless as pods run non-privileged
and SSH deamon cannot switch user
Logs
Typical logging interfaces
• Syslog: /dev/log
• Syslog: UDP 127.0.0.1:514
• Write to log file:
• /var/log/messages
• /var/log/auth.log
• /data/myapp/some.log
• ...
DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.201822
Kubernetes alternatives
• /dev/stdout is primary logging
interface for applications and
containers
• Kubernetes handles logging
Anti-patterns
• Custom log file:
You‘ll need an extra sidecar container
to read this log
• Syslog server:
Set up sidecar container to listen on
UDP:514 and write to STDOUT
Live
Demo
https://commons.wikimedia.org/wiki/File:MacBook_Pro,_Late-2008.jpg
Demo: WebDAV server with user-provided data and backup to GitHub
DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.201824
WebDAV
Server
„main“
Container
/mediaRead / Write
Data
Restore Backup
Configure git Repo
„init“
Container
Create Backup
Upload to GitHub
„backup“
Container
Demo only, git is no backup tool: http://blog.codekills.net/2009/12/08/using-git-for-backup-is-asking-for-pain/
Containers
DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.201825
kind: Deployment
spec:
template:
spec:
initContainers:
- name: init
... more container spec
containers:
- name: main
... more container spec
- name: backup
... more container spec
volumes:
- name: media
emptyDir: {}
initContainers:
- name: init
image: schlomo/ssh-url-with-ssh-key
volumeMounts:
- mountPath: /media
name: media
command:
- /bin/bash
- -exc
- |
test -d /media/.git && exit 0
ssh-keyscan github.com >/etc/ssh/ssh_known_hosts 2>/dev/null
git clone --depth 1 git~LS0t...tLQo=@github.com:schlomo/demo-data.git /media
chmod 700 /media/.git
chown -R 33:33 /media
chown -R 0:0 /media/.git
cd /media
git config user.email "demo$RANDOM$RANDOM@nowhere$RANDOM$RANDOM.com"
git config user.name "Demo $RANDOM"
init
DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.201826
Hack: https://goo.gl/gqjfuy
containers:
- name: main
image: sashgorokhov/webdav
ports:
- containerPort: 80
protocol: TCP
volumeMounts:
- mountPath: /media
name: media
main
DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.201827
containers:
- name: backup
image: schlomo/ssh-url-with-ssh-key
volumeMounts:
- mountPath: /media
name: media
command:
- /bin/bash
- -exc
- |
cd /media
ssh-keyscan github.com >/etc/ssh/ssh_known_hosts 2>/dev/null
while true ; do
sleep 15
git add -A && git commit -a -m "$(date)" && git push
done
backup
DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.201828
https://commons.wikimedia.org/wiki/File:MacBook_Pro,_Late-2008.jpg
Live
Demo
Pod with
multiple
containers
Recap: Multiple Containers in One Pod
App Service
SSH Service
Cron Service
/usr/sbin/appd
/etc/init.d/app
/usr/sbin/crond
/etc/init.d/crond
/usr/sbin/sshd
/etc/init.d/ssh
Prepare data files
Restore data
Apply schema upgrade
Backup data
Clean up stale data
Computer Linux Processes
init
main
maintenance
@schlomoschapiro
DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 22.03.201831
Throw away the old ideas,
use the Kubernetes way!
Blog, Slides & Code: goo.gl/EqSBJU
Feedback: go.schapiro.org/feedback
DB13243 © Deutsche Bahn AG / Volker Emersleben
Thank you for your attention

More Related Content

What's hot

KNIME Data Science Learnathon: From Raw Data To Deployment
KNIME Data Science Learnathon: From Raw Data To DeploymentKNIME Data Science Learnathon: From Raw Data To Deployment
KNIME Data Science Learnathon: From Raw Data To DeploymentKNIMESlides
 
Spryker meetup-who-needs-products-in-spryker-anyway
Spryker meetup-who-needs-products-in-spryker-anywaySpryker meetup-who-needs-products-in-spryker-anyway
Spryker meetup-who-needs-products-in-spryker-anywayBernd Alter
 
BUILD with Microsoft - Radu Stefan
 BUILD with Microsoft - Radu Stefan BUILD with Microsoft - Radu Stefan
BUILD with Microsoft - Radu StefanITCamp
 
SharePoint Saturday Brno 2019 Thomas Goelles - SPFx
SharePoint Saturday Brno 2019 Thomas Goelles - SPFxSharePoint Saturday Brno 2019 Thomas Goelles - SPFx
SharePoint Saturday Brno 2019 Thomas Goelles - SPFxThomas Gölles
 
Introduction to the IBM Watson Data Platform
Introduction to the IBM Watson Data PlatformIntroduction to the IBM Watson Data Platform
Introduction to the IBM Watson Data PlatformMargriet Groenendijk
 
Zürich Saas Meetup: Software as a Service Architecture
Zürich Saas Meetup: Software as a Service ArchitectureZürich Saas Meetup: Software as a Service Architecture
Zürich Saas Meetup: Software as a Service ArchitectureRoman Weis
 
How to develop your first cloud-native Applications with Java
How to develop your first cloud-native Applications with JavaHow to develop your first cloud-native Applications with Java
How to develop your first cloud-native Applications with JavaNiklas Heidloff
 
Google Charts for native Android apps
Google Charts for native Android appsGoogle Charts for native Android apps
Google Charts for native Android appsChuck Greb
 
Application evolution strategy - Eran Stiller
Application evolution strategy - Eran StillerApplication evolution strategy - Eran Stiller
Application evolution strategy - Eran StillerCodeValue
 
Infrastructure as code for enterprises
Infrastructure as code for enterprisesInfrastructure as code for enterprises
Infrastructure as code for enterprisesClaudio Pontili
 
Pivotal Cloud Foundry et Microsoft: Pourquoi? ... Et pourquoi pas?
 Pivotal Cloud Foundry et Microsoft: Pourquoi? ... Et pourquoi pas? Pivotal Cloud Foundry et Microsoft: Pourquoi? ... Et pourquoi pas?
Pivotal Cloud Foundry et Microsoft: Pourquoi? ... Et pourquoi pas?VMware Tanzu
 

What's hot (12)

KNIME Data Science Learnathon: From Raw Data To Deployment
KNIME Data Science Learnathon: From Raw Data To DeploymentKNIME Data Science Learnathon: From Raw Data To Deployment
KNIME Data Science Learnathon: From Raw Data To Deployment
 
Spryker meetup-who-needs-products-in-spryker-anyway
Spryker meetup-who-needs-products-in-spryker-anywaySpryker meetup-who-needs-products-in-spryker-anyway
Spryker meetup-who-needs-products-in-spryker-anyway
 
BUILD with Microsoft - Radu Stefan
 BUILD with Microsoft - Radu Stefan BUILD with Microsoft - Radu Stefan
BUILD with Microsoft - Radu Stefan
 
SharePoint Saturday Brno 2019 Thomas Goelles - SPFx
SharePoint Saturday Brno 2019 Thomas Goelles - SPFxSharePoint Saturday Brno 2019 Thomas Goelles - SPFx
SharePoint Saturday Brno 2019 Thomas Goelles - SPFx
 
Introduction to the IBM Watson Data Platform
Introduction to the IBM Watson Data PlatformIntroduction to the IBM Watson Data Platform
Introduction to the IBM Watson Data Platform
 
Zürich Saas Meetup: Software as a Service Architecture
Zürich Saas Meetup: Software as a Service ArchitectureZürich Saas Meetup: Software as a Service Architecture
Zürich Saas Meetup: Software as a Service Architecture
 
How to develop your first cloud-native Applications with Java
How to develop your first cloud-native Applications with JavaHow to develop your first cloud-native Applications with Java
How to develop your first cloud-native Applications with Java
 
Google Charts for native Android apps
Google Charts for native Android appsGoogle Charts for native Android apps
Google Charts for native Android apps
 
Application evolution strategy - Eran Stiller
Application evolution strategy - Eran StillerApplication evolution strategy - Eran Stiller
Application evolution strategy - Eran Stiller
 
Infrastructure as code for enterprises
Infrastructure as code for enterprisesInfrastructure as code for enterprises
Infrastructure as code for enterprises
 
Pivotal Cloud Foundry et Microsoft: Pourquoi? ... Et pourquoi pas?
 Pivotal Cloud Foundry et Microsoft: Pourquoi? ... Et pourquoi pas? Pivotal Cloud Foundry et Microsoft: Pourquoi? ... Et pourquoi pas?
Pivotal Cloud Foundry et Microsoft: Pourquoi? ... Et pourquoi pas?
 
Mp resume
Mp resumeMp resume
Mp resume
 

Similar to Kubernetes - Shifting the mindset from servers to containers - microxchg 2018 - Schlomo Schapiro

Want Digitalisation, have Cloud - DevSecOps Days 2021 - Schlomo Schapiro
Want Digitalisation, have Cloud - DevSecOps Days 2021 - Schlomo SchapiroWant Digitalisation, have Cloud - DevSecOps Days 2021 - Schlomo Schapiro
Want Digitalisation, have Cloud - DevSecOps Days 2021 - Schlomo SchapiroSchlomo Schapiro
 
Simplified Data Preparation for Machine Learning in Hybrid and Multi Clouds
Simplified Data Preparation for Machine Learning in Hybrid and Multi CloudsSimplified Data Preparation for Machine Learning in Hybrid and Multi Clouds
Simplified Data Preparation for Machine Learning in Hybrid and Multi CloudsAlluxio, Inc.
 
Masterless Puppet Using AWS S3 Buckets and IAM Roles
Masterless Puppet Using AWS S3 Buckets and IAM RolesMasterless Puppet Using AWS S3 Buckets and IAM Roles
Masterless Puppet Using AWS S3 Buckets and IAM RolesMalcolm Duncanson, CISSP
 
Is It Safe? Security Hardening for Databases Using Kubernetes Operators
Is It Safe? Security Hardening for Databases Using Kubernetes OperatorsIs It Safe? Security Hardening for Databases Using Kubernetes Operators
Is It Safe? Security Hardening for Databases Using Kubernetes OperatorsDoKC
 
ClickHouse on Kubernetes, by Alexander Zaitsev, Altinity CTO
ClickHouse on Kubernetes, by Alexander Zaitsev, Altinity CTOClickHouse on Kubernetes, by Alexander Zaitsev, Altinity CTO
ClickHouse on Kubernetes, by Alexander Zaitsev, Altinity CTOAltinity Ltd
 
Scaleable PHP Applications in Kubernetes
Scaleable PHP Applications in KubernetesScaleable PHP Applications in Kubernetes
Scaleable PHP Applications in KubernetesRobert Lemke
 
Serverless Data Architecture at scale on Google Cloud Platform
Serverless Data Architecture at scale on Google Cloud PlatformServerless Data Architecture at scale on Google Cloud Platform
Serverless Data Architecture at scale on Google Cloud PlatformMeetupDataScienceRoma
 
Installing Component Pack 6.0.0.6
Installing Component Pack 6.0.0.6Installing Component Pack 6.0.0.6
Installing Component Pack 6.0.0.6LetsConnect
 
Deploying PostgreSQL on Kubernetes
Deploying PostgreSQL on KubernetesDeploying PostgreSQL on Kubernetes
Deploying PostgreSQL on KubernetesJimmy Angelakos
 
AEM (CQ) Dispatcher Security and CDN+Browser Caching
AEM (CQ) Dispatcher Security and CDN+Browser CachingAEM (CQ) Dispatcher Security and CDN+Browser Caching
AEM (CQ) Dispatcher Security and CDN+Browser CachingAndrew Khoury
 
Digital Forensics and Incident Response in The Cloud Part 3
Digital Forensics and Incident Response in The Cloud Part 3Digital Forensics and Incident Response in The Cloud Part 3
Digital Forensics and Incident Response in The Cloud Part 3Velocidex Enterprises
 
How to become cloud backup provider
How to become cloud backup providerHow to become cloud backup provider
How to become cloud backup providerCLOUDIAN KK
 
An Introduction to the Kubernetes API
An Introduction to the Kubernetes APIAn Introduction to the Kubernetes API
An Introduction to the Kubernetes APIStefan Schimanski
 
Inithub.org presentation
Inithub.org presentationInithub.org presentation
Inithub.org presentationAaron Welch
 
Andrii Soldatenko "The art of data engineering"
Andrii Soldatenko "The art of data engineering"Andrii Soldatenko "The art of data engineering"
Andrii Soldatenko "The art of data engineering"Fwdays
 
KACE Agent Architecture and Troubleshooting Overview
KACE Agent Architecture and Troubleshooting OverviewKACE Agent Architecture and Troubleshooting Overview
KACE Agent Architecture and Troubleshooting OverviewDell World
 
Jump into Squeak - Integrate Squeak projects with Docker & Github
Jump into Squeak - Integrate Squeak projects with Docker & GithubJump into Squeak - Integrate Squeak projects with Docker & Github
Jump into Squeak - Integrate Squeak projects with Docker & Githubhubx
 
PVS-Studio: analyzing pull requests in Azure DevOps using self-hosted agents
PVS-Studio: analyzing pull requests in Azure DevOps using self-hosted agentsPVS-Studio: analyzing pull requests in Azure DevOps using self-hosted agents
PVS-Studio: analyzing pull requests in Azure DevOps using self-hosted agentsAndrey Karpov
 
Data warehouse on Kubernetes - gentle intro to Clickhouse Operator, by Robert...
Data warehouse on Kubernetes - gentle intro to Clickhouse Operator, by Robert...Data warehouse on Kubernetes - gentle intro to Clickhouse Operator, by Robert...
Data warehouse on Kubernetes - gentle intro to Clickhouse Operator, by Robert...Altinity Ltd
 

Similar to Kubernetes - Shifting the mindset from servers to containers - microxchg 2018 - Schlomo Schapiro (20)

Want Digitalisation, have Cloud - DevSecOps Days 2021 - Schlomo Schapiro
Want Digitalisation, have Cloud - DevSecOps Days 2021 - Schlomo SchapiroWant Digitalisation, have Cloud - DevSecOps Days 2021 - Schlomo Schapiro
Want Digitalisation, have Cloud - DevSecOps Days 2021 - Schlomo Schapiro
 
Simplified Data Preparation for Machine Learning in Hybrid and Multi Clouds
Simplified Data Preparation for Machine Learning in Hybrid and Multi CloudsSimplified Data Preparation for Machine Learning in Hybrid and Multi Clouds
Simplified Data Preparation for Machine Learning in Hybrid and Multi Clouds
 
Masterless Puppet Using AWS S3 Buckets and IAM Roles
Masterless Puppet Using AWS S3 Buckets and IAM RolesMasterless Puppet Using AWS S3 Buckets and IAM Roles
Masterless Puppet Using AWS S3 Buckets and IAM Roles
 
One-Man Ops
One-Man OpsOne-Man Ops
One-Man Ops
 
Is It Safe? Security Hardening for Databases Using Kubernetes Operators
Is It Safe? Security Hardening for Databases Using Kubernetes OperatorsIs It Safe? Security Hardening for Databases Using Kubernetes Operators
Is It Safe? Security Hardening for Databases Using Kubernetes Operators
 
ClickHouse on Kubernetes, by Alexander Zaitsev, Altinity CTO
ClickHouse on Kubernetes, by Alexander Zaitsev, Altinity CTOClickHouse on Kubernetes, by Alexander Zaitsev, Altinity CTO
ClickHouse on Kubernetes, by Alexander Zaitsev, Altinity CTO
 
Scaleable PHP Applications in Kubernetes
Scaleable PHP Applications in KubernetesScaleable PHP Applications in Kubernetes
Scaleable PHP Applications in Kubernetes
 
Serverless Data Architecture at scale on Google Cloud Platform
Serverless Data Architecture at scale on Google Cloud PlatformServerless Data Architecture at scale on Google Cloud Platform
Serverless Data Architecture at scale on Google Cloud Platform
 
Installing Component Pack 6.0.0.6
Installing Component Pack 6.0.0.6Installing Component Pack 6.0.0.6
Installing Component Pack 6.0.0.6
 
Deploying PostgreSQL on Kubernetes
Deploying PostgreSQL on KubernetesDeploying PostgreSQL on Kubernetes
Deploying PostgreSQL on Kubernetes
 
AEM (CQ) Dispatcher Security and CDN+Browser Caching
AEM (CQ) Dispatcher Security and CDN+Browser CachingAEM (CQ) Dispatcher Security and CDN+Browser Caching
AEM (CQ) Dispatcher Security and CDN+Browser Caching
 
Digital Forensics and Incident Response in The Cloud Part 3
Digital Forensics and Incident Response in The Cloud Part 3Digital Forensics and Incident Response in The Cloud Part 3
Digital Forensics and Incident Response in The Cloud Part 3
 
How to become cloud backup provider
How to become cloud backup providerHow to become cloud backup provider
How to become cloud backup provider
 
An Introduction to the Kubernetes API
An Introduction to the Kubernetes APIAn Introduction to the Kubernetes API
An Introduction to the Kubernetes API
 
Inithub.org presentation
Inithub.org presentationInithub.org presentation
Inithub.org presentation
 
Andrii Soldatenko "The art of data engineering"
Andrii Soldatenko "The art of data engineering"Andrii Soldatenko "The art of data engineering"
Andrii Soldatenko "The art of data engineering"
 
KACE Agent Architecture and Troubleshooting Overview
KACE Agent Architecture and Troubleshooting OverviewKACE Agent Architecture and Troubleshooting Overview
KACE Agent Architecture and Troubleshooting Overview
 
Jump into Squeak - Integrate Squeak projects with Docker & Github
Jump into Squeak - Integrate Squeak projects with Docker & GithubJump into Squeak - Integrate Squeak projects with Docker & Github
Jump into Squeak - Integrate Squeak projects with Docker & Github
 
PVS-Studio: analyzing pull requests in Azure DevOps using self-hosted agents
PVS-Studio: analyzing pull requests in Azure DevOps using self-hosted agentsPVS-Studio: analyzing pull requests in Azure DevOps using self-hosted agents
PVS-Studio: analyzing pull requests in Azure DevOps using self-hosted agents
 
Data warehouse on Kubernetes - gentle intro to Clickhouse Operator, by Robert...
Data warehouse on Kubernetes - gentle intro to Clickhouse Operator, by Robert...Data warehouse on Kubernetes - gentle intro to Clickhouse Operator, by Robert...
Data warehouse on Kubernetes - gentle intro to Clickhouse Operator, by Robert...
 

More from Schlomo Schapiro

The Role of GitOps in IT-Strategy v2 - July 2022 - Schlomo Schapiro
The Role of GitOps in IT-Strategy v2 - July 2022 - Schlomo SchapiroThe Role of GitOps in IT-Strategy v2 - July 2022 - Schlomo Schapiro
The Role of GitOps in IT-Strategy v2 - July 2022 - Schlomo SchapiroSchlomo Schapiro
 
The GitOps Journey - Schlomo Schapiro - Berlin DevOps Meetup 2021-11
The GitOps Journey - Schlomo Schapiro - Berlin DevOps Meetup 2021-11The GitOps Journey - Schlomo Schapiro - Berlin DevOps Meetup 2021-11
The GitOps Journey - Schlomo Schapiro - Berlin DevOps Meetup 2021-11Schlomo Schapiro
 
Schlomo Schapiro - Why I like to use the proprietary Cloud services without f...
Schlomo Schapiro - Why I like to use the proprietary Cloud services without f...Schlomo Schapiro - Why I like to use the proprietary Cloud services without f...
Schlomo Schapiro - Why I like to use the proprietary Cloud services without f...Schlomo Schapiro
 
The GitOps Journey - GitOpsCon EU 2021 - Schlomo Schapiro
The GitOps Journey - GitOpsCon EU 2021 - Schlomo SchapiroThe GitOps Journey - GitOpsCon EU 2021 - Schlomo Schapiro
The GitOps Journey - GitOpsCon EU 2021 - Schlomo SchapiroSchlomo Schapiro
 
DevOps ist normal - DevOps Essentials 2019 - Schlomo Schapiro
DevOps ist normal - DevOps Essentials 2019 - Schlomo SchapiroDevOps ist normal - DevOps Essentials 2019 - Schlomo Schapiro
DevOps ist normal - DevOps Essentials 2019 - Schlomo SchapiroSchlomo Schapiro
 
The Devops Driving School - DevOps Gathering 2019 - Schlomo Schapiro
The Devops Driving School - DevOps Gathering 2019 - Schlomo SchapiroThe Devops Driving School - DevOps Gathering 2019 - Schlomo Schapiro
The Devops Driving School - DevOps Gathering 2019 - Schlomo SchapiroSchlomo Schapiro
 
Compliant by Default - Continuous Delivery at DB Systel - 16.10.2018 - Schlom...
Compliant by Default - Continuous Delivery at DB Systel - 16.10.2018 - Schlom...Compliant by Default - Continuous Delivery at DB Systel - 16.10.2018 - Schlom...
Compliant by Default - Continuous Delivery at DB Systel - 16.10.2018 - Schlom...Schlomo Schapiro
 
DevOps + Continuous Delivery + Cloud: The Three Drivers of Enterprise Agility...
DevOps + Continuous Delivery + Cloud: The Three Drivers of Enterprise Agility...DevOps + Continuous Delivery + Cloud: The Three Drivers of Enterprise Agility...
DevOps + Continuous Delivery + Cloud: The Three Drivers of Enterprise Agility...Schlomo Schapiro
 
Root for all - measuring DevOps adoption - microxchg 2018 - Schlomo Schapiro
Root for all - measuring DevOps adoption - microxchg 2018 - Schlomo SchapiroRoot for all - measuring DevOps adoption - microxchg 2018 - Schlomo Schapiro
Root for all - measuring DevOps adoption - microxchg 2018 - Schlomo SchapiroSchlomo Schapiro
 
GUUG FFG 2017 - DevOps for Everybody - A Workplace Strategy for the Digital Age
GUUG FFG 2017 - DevOps for Everybody - A Workplace Strategy for the Digital AgeGUUG FFG 2017 - DevOps for Everybody - A Workplace Strategy for the Digital Age
GUUG FFG 2017 - DevOps for Everybody - A Workplace Strategy for the Digital AgeSchlomo Schapiro
 
GUUG FFG 2017 - DevOps for Everybody - How the entire company can benefit fro...
GUUG FFG 2017 - DevOps for Everybody - How the entire company can benefit fro...GUUG FFG 2017 - DevOps for Everybody - How the entire company can benefit fro...
GUUG FFG 2017 - DevOps for Everybody - How the entire company can benefit fro...Schlomo Schapiro
 
OSDC 2016 - Hybrid Cloud - A Cloud Migration Strategy
OSDC 2016 - Hybrid Cloud - A Cloud Migration StrategyOSDC 2016 - Hybrid Cloud - A Cloud Migration Strategy
OSDC 2016 - Hybrid Cloud - A Cloud Migration StrategySchlomo Schapiro
 
WARNING is a waste of my time
WARNING is a waste of my timeWARNING is a waste of my time
WARNING is a waste of my timeSchlomo Schapiro
 
SE 2015 DevOps Risk Mitigation - Test Driven Infrastructure
SE 2015 DevOps Risk Mitigation - Test Driven InfrastructureSE 2015 DevOps Risk Mitigation - Test Driven Infrastructure
SE 2015 DevOps Risk Mitigation - Test Driven InfrastructureSchlomo Schapiro
 
DevOps, Agile and Open Source at ImmobilienScout24
DevOps, Agile and Open Source at ImmobilienScout24DevOps, Agile and Open Source at ImmobilienScout24
DevOps, Agile and Open Source at ImmobilienScout24Schlomo Schapiro
 
EuroPython 2014 YAML Reader Lightning Talk
EuroPython 2014 YAML Reader Lightning TalkEuroPython 2014 YAML Reader Lightning Talk
EuroPython 2014 YAML Reader Lightning TalkSchlomo Schapiro
 
OSDC 2014 Test Driven Infrastructure
OSDC 2014 Test Driven InfrastructureOSDC 2014 Test Driven Infrastructure
OSDC 2014 Test Driven InfrastructureSchlomo Schapiro
 
PyCon 2013 - Distributed Monitoring Configuration
PyCon 2013 - Distributed Monitoring ConfigurationPyCon 2013 - Distributed Monitoring Configuration
PyCon 2013 - Distributed Monitoring ConfigurationSchlomo Schapiro
 
PyCon 2013 Test Driven Infrastructure
PyCon 2013 Test Driven InfrastructurePyCon 2013 Test Driven Infrastructure
PyCon 2013 Test Driven InfrastructureSchlomo Schapiro
 
PyCon 2013 - Open Source Sponsoring - und den Chef damit überzeugen
PyCon 2013 - Open Source Sponsoring - und den Chef damit überzeugenPyCon 2013 - Open Source Sponsoring - und den Chef damit überzeugen
PyCon 2013 - Open Source Sponsoring - und den Chef damit überzeugenSchlomo Schapiro
 

More from Schlomo Schapiro (20)

The Role of GitOps in IT-Strategy v2 - July 2022 - Schlomo Schapiro
The Role of GitOps in IT-Strategy v2 - July 2022 - Schlomo SchapiroThe Role of GitOps in IT-Strategy v2 - July 2022 - Schlomo Schapiro
The Role of GitOps in IT-Strategy v2 - July 2022 - Schlomo Schapiro
 
The GitOps Journey - Schlomo Schapiro - Berlin DevOps Meetup 2021-11
The GitOps Journey - Schlomo Schapiro - Berlin DevOps Meetup 2021-11The GitOps Journey - Schlomo Schapiro - Berlin DevOps Meetup 2021-11
The GitOps Journey - Schlomo Schapiro - Berlin DevOps Meetup 2021-11
 
Schlomo Schapiro - Why I like to use the proprietary Cloud services without f...
Schlomo Schapiro - Why I like to use the proprietary Cloud services without f...Schlomo Schapiro - Why I like to use the proprietary Cloud services without f...
Schlomo Schapiro - Why I like to use the proprietary Cloud services without f...
 
The GitOps Journey - GitOpsCon EU 2021 - Schlomo Schapiro
The GitOps Journey - GitOpsCon EU 2021 - Schlomo SchapiroThe GitOps Journey - GitOpsCon EU 2021 - Schlomo Schapiro
The GitOps Journey - GitOpsCon EU 2021 - Schlomo Schapiro
 
DevOps ist normal - DevOps Essentials 2019 - Schlomo Schapiro
DevOps ist normal - DevOps Essentials 2019 - Schlomo SchapiroDevOps ist normal - DevOps Essentials 2019 - Schlomo Schapiro
DevOps ist normal - DevOps Essentials 2019 - Schlomo Schapiro
 
The Devops Driving School - DevOps Gathering 2019 - Schlomo Schapiro
The Devops Driving School - DevOps Gathering 2019 - Schlomo SchapiroThe Devops Driving School - DevOps Gathering 2019 - Schlomo Schapiro
The Devops Driving School - DevOps Gathering 2019 - Schlomo Schapiro
 
Compliant by Default - Continuous Delivery at DB Systel - 16.10.2018 - Schlom...
Compliant by Default - Continuous Delivery at DB Systel - 16.10.2018 - Schlom...Compliant by Default - Continuous Delivery at DB Systel - 16.10.2018 - Schlom...
Compliant by Default - Continuous Delivery at DB Systel - 16.10.2018 - Schlom...
 
DevOps + Continuous Delivery + Cloud: The Three Drivers of Enterprise Agility...
DevOps + Continuous Delivery + Cloud: The Three Drivers of Enterprise Agility...DevOps + Continuous Delivery + Cloud: The Three Drivers of Enterprise Agility...
DevOps + Continuous Delivery + Cloud: The Three Drivers of Enterprise Agility...
 
Root for all - measuring DevOps adoption - microxchg 2018 - Schlomo Schapiro
Root for all - measuring DevOps adoption - microxchg 2018 - Schlomo SchapiroRoot for all - measuring DevOps adoption - microxchg 2018 - Schlomo Schapiro
Root for all - measuring DevOps adoption - microxchg 2018 - Schlomo Schapiro
 
GUUG FFG 2017 - DevOps for Everybody - A Workplace Strategy for the Digital Age
GUUG FFG 2017 - DevOps for Everybody - A Workplace Strategy for the Digital AgeGUUG FFG 2017 - DevOps for Everybody - A Workplace Strategy for the Digital Age
GUUG FFG 2017 - DevOps for Everybody - A Workplace Strategy for the Digital Age
 
GUUG FFG 2017 - DevOps for Everybody - How the entire company can benefit fro...
GUUG FFG 2017 - DevOps for Everybody - How the entire company can benefit fro...GUUG FFG 2017 - DevOps for Everybody - How the entire company can benefit fro...
GUUG FFG 2017 - DevOps for Everybody - How the entire company can benefit fro...
 
OSDC 2016 - Hybrid Cloud - A Cloud Migration Strategy
OSDC 2016 - Hybrid Cloud - A Cloud Migration StrategyOSDC 2016 - Hybrid Cloud - A Cloud Migration Strategy
OSDC 2016 - Hybrid Cloud - A Cloud Migration Strategy
 
WARNING is a waste of my time
WARNING is a waste of my timeWARNING is a waste of my time
WARNING is a waste of my time
 
SE 2015 DevOps Risk Mitigation - Test Driven Infrastructure
SE 2015 DevOps Risk Mitigation - Test Driven InfrastructureSE 2015 DevOps Risk Mitigation - Test Driven Infrastructure
SE 2015 DevOps Risk Mitigation - Test Driven Infrastructure
 
DevOps, Agile and Open Source at ImmobilienScout24
DevOps, Agile and Open Source at ImmobilienScout24DevOps, Agile and Open Source at ImmobilienScout24
DevOps, Agile and Open Source at ImmobilienScout24
 
EuroPython 2014 YAML Reader Lightning Talk
EuroPython 2014 YAML Reader Lightning TalkEuroPython 2014 YAML Reader Lightning Talk
EuroPython 2014 YAML Reader Lightning Talk
 
OSDC 2014 Test Driven Infrastructure
OSDC 2014 Test Driven InfrastructureOSDC 2014 Test Driven Infrastructure
OSDC 2014 Test Driven Infrastructure
 
PyCon 2013 - Distributed Monitoring Configuration
PyCon 2013 - Distributed Monitoring ConfigurationPyCon 2013 - Distributed Monitoring Configuration
PyCon 2013 - Distributed Monitoring Configuration
 
PyCon 2013 Test Driven Infrastructure
PyCon 2013 Test Driven InfrastructurePyCon 2013 Test Driven Infrastructure
PyCon 2013 Test Driven Infrastructure
 
PyCon 2013 - Open Source Sponsoring - und den Chef damit überzeugen
PyCon 2013 - Open Source Sponsoring - und den Chef damit überzeugenPyCon 2013 - Open Source Sponsoring - und den Chef damit überzeugen
PyCon 2013 - Open Source Sponsoring - und den Chef damit überzeugen
 

Recently uploaded

Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
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
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
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 Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
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
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 

Recently uploaded (20)

Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
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
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
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 Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
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...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 

Kubernetes - Shifting the mindset from servers to containers - microxchg 2018 - Schlomo Schapiro

  • 1. Kubernetes: Shifting the mindset from servers to containers DB Systel GmbH | Schlomo Schapiro | Chief Architect Cloud, Chief Technology Office | @schlomoschapiro | 23.03.2018 This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License DB13243 © Deutsche Bahn AG / Volker Emersleben
  • 2. Did you ever use this in a Docker image? ssh cron supervisord daemontools upstart systemd runit runas su run.sh DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.20182
  • 3. A “typical“ server ... 3 DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.2018 SSH CRON logrotate Backup Postfix Rsyslogatd dbus-daemon Apache PHP App PHP App MySQL DB DB man-db dpkg
  • 4. A “typical“ server is 50% cruft ... which should be centralized 4 DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.2018 SSH CRON logrotate Backup Postfix Rsyslogatd dbus-daemon Apache PHP App PHP App MySQL DB DB man-db dpkg cruft This is the „real“ server
  • 5. 5 DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.2018 SSH CRON logrotate Backup Postfix Rsyslogatd dbus-daemon Apache PHP App PHP App MySQL DB DB man-db dpkg
  • 6. DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.20186 SSH CRON logrotate Backup Postfix Rsyslogdbus-daemon atd Apache PHP App PHP App MySQL DB DB man-db dpkg Cluster-wide orchestration, scaling, monitoring and deployment of processes Great declarative description for all IaaS needs is an abstraction layer
  • 7. DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.20187 SSH CRON logrotate Backup Postfix Rsyslogatd Apache PHP App PHP App MySQL DB DB = containers
  • 8. Platform features DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.20188 SSH CRON logrotate Backup Postfix Rsyslogatd Apache PHP App PHP App MySQL DB DB containers isolation – packaging – deployment – immutable systems Application containers
  • 9. Application Life Cycle DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.20189 Build Deploy & Configure Initialize & Run Maintain as Linux Processes
  • 10. Application Life Cycle DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.201810 Build on Kubernetes Docker Build
  • 11. Application Life Cycle DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.201811 Deploy & Configure on Kubernetes Config Maps Secrets Pod Spec
  • 12. Application Life Cycle DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.201812 on a traditional server /etc/init.d/app /usr/sbin/app /etc/init.d/cron /usr/sbin/cron /etc/cron.daily/app Initialize & Run Maintain Exclusive access Prepare data files Restore data Apply schema upgrade Backup data Cleanup stale data Run application
  • 13. Application Life Cycle DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.201813 on Initialize & Run Maintain Backup data Cleanup stale data Init Container Main Container Maintenance Container Run application Exclusive access Prepare data files Restore data Apply schema upgrade
  • 14. Application Life Cycle DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.201814 on Initialize & Run Maintain Init Container Main Container Maintenance ContainerPod
  • 15. Running a Pod with multiple Containers DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.201815 init main maintenance t DATA S3 BACKUP Backup, clean up stale data ... Restore if needed
  • 16. Running a Pod with multiple Containers DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.201816 init main maintenance t DATA S3 BACKUP Backup, clean up stale data ... Restore if needed Exclusive access Prepare data files Restore data Apply schema upgrade Run application Backup data Cleanup stale data Run applicationCoordination!
  • 17. What happens with the „cruft“? 17 DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.2018 SSH CRON logrotate Postfix Rsyslogatd dbus-daemon man-db dpkg
  • 18. CRON • Sends out emails • Forks multiple processes , breaking the one task per container paradigm • Not optimized for running single task • Doesn‘t correctly handle INT/KILL signals • Doesn‘t log to STDOUT / STDERR • Cannot configure schedule and cron jobs via environment variables ... made for servers and not containers DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.201818 CRON
  • 19. CRON for a single job DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.201819 #!/bin/bash RUNAT=${RUNAT:-1 minute} function wait_for_maintenance_time { sleep_time=$(( $(date -d "$RUNAT" +%s ; echo - ; date +%s) )) if (( sleep_time < 0 )) ; then sleep_time=$(( 24*60*60 + sleep_time )) # wait till next day same time fi if (( sleep_time > 0 )) ; then echo "Waiting $sleep_time seconds till $RUNAT before starting maintenance" sleep $sleep_time else echo "Not waiting $sleep_time seconds" fi } while true ; do wait_for_maintenance_time # do some maintenance, e.g. backup data or purge old stuff done https://goo.gl/EqSBJU
  • 20. Email Old server interfaces • /usr/lib/sendmail • /usr/bin/mail • SMTP to 127.0.0.1:25 • trust based on „same host“ • implicit configuration by convention DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.201820 Kubernetes alternatives • cluster service for SMTP: smtp.mynamespace.svc.cluster.local. • trust based on „same cluster“ or dedicated authentication • configure via environment variables, e.g. MAILHOST
  • 21. Secure Shell One tool – many purposes • SSH for admin access • SSH for automation between servers • SSH for pull backup SSH on Servers • Admins are (local) users • Technical users for automation • Authentication with passwords or static SSH keys • ~/.ssh/authorized_keys as command filter for some SSH keys DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.201821 Kubernetes alternatives • Kubernetes provides Admin access: kubectl exec • authentication with Kubernetes temporary credentials Anti-patterns • SSH between pods: Application cluster probably not aware of pods coming and going • User authentication in pods: Pointless as pods run non-privileged and SSH deamon cannot switch user
  • 22. Logs Typical logging interfaces • Syslog: /dev/log • Syslog: UDP 127.0.0.1:514 • Write to log file: • /var/log/messages • /var/log/auth.log • /data/myapp/some.log • ... DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.201822 Kubernetes alternatives • /dev/stdout is primary logging interface for applications and containers • Kubernetes handles logging Anti-patterns • Custom log file: You‘ll need an extra sidecar container to read this log • Syslog server: Set up sidecar container to listen on UDP:514 and write to STDOUT
  • 24. Demo: WebDAV server with user-provided data and backup to GitHub DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.201824 WebDAV Server „main“ Container /mediaRead / Write Data Restore Backup Configure git Repo „init“ Container Create Backup Upload to GitHub „backup“ Container Demo only, git is no backup tool: http://blog.codekills.net/2009/12/08/using-git-for-backup-is-asking-for-pain/
  • 25. Containers DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.201825 kind: Deployment spec: template: spec: initContainers: - name: init ... more container spec containers: - name: main ... more container spec - name: backup ... more container spec volumes: - name: media emptyDir: {}
  • 26. initContainers: - name: init image: schlomo/ssh-url-with-ssh-key volumeMounts: - mountPath: /media name: media command: - /bin/bash - -exc - | test -d /media/.git && exit 0 ssh-keyscan github.com >/etc/ssh/ssh_known_hosts 2>/dev/null git clone --depth 1 git~LS0t...tLQo=@github.com:schlomo/demo-data.git /media chmod 700 /media/.git chown -R 33:33 /media chown -R 0:0 /media/.git cd /media git config user.email "demo$RANDOM$RANDOM@nowhere$RANDOM$RANDOM.com" git config user.name "Demo $RANDOM" init DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.201826 Hack: https://goo.gl/gqjfuy
  • 27. containers: - name: main image: sashgorokhov/webdav ports: - containerPort: 80 protocol: TCP volumeMounts: - mountPath: /media name: media main DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.201827
  • 28. containers: - name: backup image: schlomo/ssh-url-with-ssh-key volumeMounts: - mountPath: /media name: media command: - /bin/bash - -exc - | cd /media ssh-keyscan github.com >/etc/ssh/ssh_known_hosts 2>/dev/null while true ; do sleep 15 git add -A && git commit -a -m "$(date)" && git push done backup DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 23.03.201828
  • 30. Pod with multiple containers Recap: Multiple Containers in One Pod App Service SSH Service Cron Service /usr/sbin/appd /etc/init.d/app /usr/sbin/crond /etc/init.d/crond /usr/sbin/sshd /etc/init.d/ssh Prepare data files Restore data Apply schema upgrade Backup data Clean up stale data Computer Linux Processes init main maintenance
  • 31. @schlomoschapiro DB Systel GmbH | Schlomo Schapiro | @schlomoschapiro | 22.03.201831 Throw away the old ideas, use the Kubernetes way! Blog, Slides & Code: goo.gl/EqSBJU Feedback: go.schapiro.org/feedback
  • 32. DB13243 © Deutsche Bahn AG / Volker Emersleben Thank you for your attention