SlideShare ist ein Scribd-Unternehmen logo
1 von 74
Downloaden Sie, um offline zu lesen
Dynamic, HA deployments with
SaltStack & Docker
Roberto Aguilar, roberto@baremetal.io

@baremetalio
How many of us have:

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
Spent too much time
deploying new software?

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
Spent too much time
ack software?
deploying new
ng b
rolli

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
Or have answered the question:

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
“Can we get an install of _________________ ?”
Cassandra

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
“Can we get an install of _________________ ?”
Memcached

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
“Can we get an install of _________________ ?”
RabbitMQ

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
“Can we get an install of _________________ ?”
Redis

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
…
“Can we get an install of _________________ ?”

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
With:

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
“maybe next week.”

–Your friendly devops / sysadmin

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
The answer should be:

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
“on it!”

–Your friendly devops / sysadmin

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
“you can do it yourself!”

–Your friendly devops / sysadmin

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
How do we get there?

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
“How to build a dynamic compute environment?”

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
Dynamic Compute Environment
❖

Easily start and stop services!

❖

Experimentation with a low barrier to entry!

❖

Scale processes as needed!

❖

Unique, isolated application environments!

❖

Self-service

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
Separation of concerns
service

service

service
service

service

service

service
service
serveservice serve serve serveservice
serve
serve service
service
service
service
service
server server server server server server
service

server server server
server
server
server
server
server
server

server server server
server
server
server
server
server
server

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
Separation of concerns
❖

Host systems are identical!

❖

Host systems are application/service -unaware!

❖

Services are self-contained

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
The Application Layer

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
XII

The Twelve-Factor App
http://12factor.net

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
XII
I. Codebase
&
II. Dependencies

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
XII

V. Build, Release & Run

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
XII

IV. [Backing] Services

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
XII
VII. Port-binding

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
XII

III. Environment-based Config

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
Application Layer
service
pg

service
rmq
service
django

service
cache

Django needs to be told how to access the services it depends on, which is done by
passing in the connection information via environment variables

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
The nuts and bolts

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
Compute
Environment

❖
❖
❖
❖

The way to interact with systems!
Server provisioning!
Base software stack!
System configuration!
❖ logging (syslog config)!
❖ networking (/etc/hosts, floating IPs, etc.)!
❖ metrics collection
roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
Application
Environment

Image creation!
❖ Image distribution!
❖ Application runtime
❖

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
Fill in the blanks

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
XII
I. Codebase
&
II. Dependencies

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
I. Codebase
nginx service repo

[0][~/Projects/baremetal/containers/nginx(master)]	
[berto@g6]$ find . -type f | grep -v .git	
./Dockerfile	
./files/etc/apt/nginx.pgp	
./files/etc/apt/sources.list.d/nginx.list	
./files/etc/nginx/nginx.conf	
[…]
roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
II. Dependencies
Dockerfile (http://docs.docker.io/en/latest/use/builder/)
❖

FROM - Defines the base image: OS, version, etc.!

❖

ADD - Adds files to image!

❖

RUN - Commands to configure image!

❖

EXPOSE - Specifies exposed ports!

❖

ENV - Defines environment variables!

❖

VOLUME - Filesystem directories that are sharable!

❖

CMD - Default command to run when launched
roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
II. Dependencies
Dockerfile (http://docs.docker.io/en/latest/use/builder/)
FROM ubuntu:quantal	
MAINTAINER Roberto Aguilar roberto@baremetal.io	

!
ADD files/etc/apt/nginx.pgp /etc/apt/nginx.pgp	
ADD files/etc/apt/sources.list.d/nginx.list /etc/apt/sources.list.d/nginx.list	

!
RUN apt-key add /etc/apt/nginx.pgp	
RUN apt-get update	
RUN apt-get install -y nginx	

!
EXPOSE 80 443	
CMD /usr/sbin/nginx -g 'daemon off;'
roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
II. Dependencies
Dockerfile (http://docs.docker.io/en/latest/use/builder/)

FROM ubuntu:quantal	
MAINTAINER Roberto Aguilar roberto@baremetal.io	

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
II. Dependencies
Dockerfile (http://docs.docker.io/en/latest/use/builder/)

ADD files/etc/apt/nginx.pgp /etc/apt/nginx.pgp	
ADD files/etc/apt/sources.list.d/nginx.list /etc/
apt/sources.list.d/nginx.list	

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
II. Dependencies
Dockerfile (http://docs.docker.io/en/latest/use/builder/)

RUN apt-key add /etc/apt/nginx.pgp	
RUN apt-get update	
RUN apt-get install -y nginx	

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
II. Dependencies
Dockerfile (http://docs.docker.io/en/latest/use/builder/)

EXPOSE 80 443

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
II. Dependencies
Dockerfile (http://docs.docker.io/en/latest/use/builder/)

CMD /usr/sbin/nginx -g 'daemon off;'

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
XII

V. Build, Release & Run

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
Docker

Builds images
docker build -t <image_name> .

Container runtime
docker run -d <image_name> [command]

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
Docker Registry
github.com/dotcloud/docker-registry

Host images
docker push <image_name>

Distribute images
docker pull <image_name>

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
Check out the Docker Index
Ready-made, downloadable images

http://index.docker.io
roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
Anatomy of an image name

registry.local/baremetal/postgresql

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
Anatomy of an image name

registry.local/baremetal/postgresql
registry (optional)

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
Anatomy of an image name

registry.local/baremetal/postgresql

user (optional)

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
Anatomy of an image name

registry.local/baremetal/postgresql

service
roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
Anatomy of an image name

registry.local/baremetal/postgresql
registry (optional)
user (optional)
service
roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
XII
VII. Port-binding

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
VII. Port-binding
$ docker run -d -p 80 -p 443 registry.local/baremetal/nginx	
1052eb879f4e[…]	

!
$ docker ps | chop	
CONTAINER ID

IMAGE

PORTS	

1052eb879f4e

[…]nginx

0.0.0.0:49155->443/tcp, 0.0.0.0:49157-

>80/tcp	

!
$ alias chop="sed -e 's/

*/|/g' | cut -d'|' -f 1,2,6 | column

-s '|' -t"

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
VII. Port-binding
$ docker run -d -p 80 -p 443 registry.local/baremetal/nginx	
1052eb879f4e[…]	

!
$ docker ps | chop	
CONTAINER ID

IMAGE

PORTS	

1052eb879f4e

[…]nginx

0.0.0.0:49155->443/tcp, 0.0.0.0:49157-

>80/tcp	

!
$ alias chop="sed -e 's/

*/|/g' | cut -d'|' -f 1,2,6 | column

-s '|' -t"

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
VII. Port-binding
$ docker run -d -p 80 -p 443 registry.local/baremetal/nginx	
1052eb879f4e[…]	

!
$ docker ps | chop	
CONTAINER ID

IMAGE

PORTS	

1052eb879f4e

[…]nginx

0.0.0.0:49155->443/tcp, 0.0.0.0:49157-

>80/tcp	

!
$ alias chop="sed -e 's/

*/|/g' | cut -d'|' -f 1,2,6 | column

-s '|' -t"

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
VII. Port-binding
$ docker run -d -p 80 -p 443 registry.local/baremetal/nginx	
1052eb879f4e[…]	

!
$ docker ps | chop	
CONTAINER ID

IMAGE

PORTS	

1052eb879f4e

[…]nginx

0.0.0.0:49155->443/tcp, 0.0.0.0:49157-

>80/tcp	

!
$ alias chop="sed -e 's/

*/|/g' | cut -d'|' -f 1,2,6 | column

-s '|' -t"

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
VII. Port-binding
$ docker run -d -p 80 -p 443 registry.local/baremetal/nginx	
1052eb879f4e[…]	

!
$ docker ps | chop	
CONTAINER ID

IMAGE

PORTS	

1052eb879f4e

[…]nginx

0.0.0.0:49155->443/tcp, 0.0.0.0:49157-

>80/tcp	

!
$ alias chop="sed -e 's/

*/|/g' | cut -d'|' -f 1,2,6 | column

-s '|' -t"

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
VII. Port-binding

baremetal@baremetal:~$ docker port 1052eb879f4e 443	
0.0.0.0:49155	
baremetal@baremetal:~$ docker port 1052eb879f4e 80	
0.0.0.0:49157

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
VII. Port-binding
All interfaces, dynamic host port
-p 80

All interfaces, explicit host port
-p 80:80

Explicit interface, dynamic host port
-p 192.168.42.147::80

Explicit interface, explicit host port
-p 192.168.42.147:80:80
roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
XII

III. Environment-based Config

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
III. Environment-based Config

pg

po
stg
res
://

u:p

@1

.2.

3.4

:49
15

6/
db

amqp://u:p@1.2.3.35:49901

rmq

cache
:
.11
.3

302
49

1.2
/

e:/
ach
mc
me

django

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
III. Environment-based Config

$ docker run -d 	
-p 1.2.3.42::8000 	
-e MEMCACHED_URL=memcache://1.2.3.11:49302 	
-e AMQP_URL=amqp://u:p@1.2.3.35:49901 	
-e POSTGRES_URL=postgres://u:p@1.2.3.4:49156/db 	
registry.local/app1/djangoapp

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
III. Environment-based Config
settings.py - memcached setup
import os	
from urlparse import urlparse	

!
backend = 'django.core.cache.backends.memcached.MemcachedCache'	
memcached_url = urlparse(os.environ['MEMCACHED_URL'])	
CACHES = {	
'default': {	
'BACKEND': backend,	
'LOCATION': memcached_url.netloc,	
}	
}
roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
III. Environment-based Config
settings.py - RabbitMQ setup

import os	
!

BROKER_URL = os.environ['AMQP_URL']	

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
III. Environment-based Config
settings.py - postgresql setup

import dj_database_url	
!

dj_db_config = dj_database_url.config()	
if dj_db_config:	
DATABASES['default'] = dj_db_config

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
Orchestration

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
Orchestration Configuration
Repositories!
❖ tracks Docker image, git repo and branch!
❖ Services!
❖ repo, dependencies, failover, process type, node role!
❖ Applications!
❖ services, # instances, configuration
❖

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
Orchestration Daemon
Aware of all hosts in cluster!
❖ Reacts to hosts joining and leaving cluster!
❖ Reacts to configuration changes!
❖ Assigns containers to hosts
❖

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
Container Daemon
Reacts to cluster events!
❖ Reacts to Docker events for container uptime!
❖

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
What about Salt Master in a
container?

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
Salt Master in a container

Why?

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
Salt Master in a container
Self-contained!
❖ Portable - simple to relocate to another system!
❖ Easily test new salt version with !
❖ Easy rollback if needed
❖

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
Salt Master in a container

Issues

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
Salt Master in a container

❖

Are there scaling issues with Salt in a container?!
❖ So far so good

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
Thanks!

Let us know what you think:

http://baremetal.io/saltconf

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio

Weitere ähnliche Inhalte

Was ist angesagt?

atomPub, ruby y la api de 11870
atomPub, ruby y la api de 11870atomPub, ruby y la api de 11870
atomPub, ruby y la api de 11870
David Calavera
 
Composer for Busy Developers - php|tek13
Composer for Busy Developers - php|tek13Composer for Busy Developers - php|tek13
Composer for Busy Developers - php|tek13
Rafael Dohms
 

Was ist angesagt? (20)

The Bash Dashboard (Or: How to Use Bash for Data Analysis)
The Bash Dashboard (Or: How to Use Bash for Data Analysis)The Bash Dashboard (Or: How to Use Bash for Data Analysis)
The Bash Dashboard (Or: How to Use Bash for Data Analysis)
 
Tracking large game assets with Git LFS
Tracking large game assets with Git LFSTracking large game assets with Git LFS
Tracking large game assets with Git LFS
 
Construire son JDK en 10 étapes
Construire son JDK en 10 étapesConstruire son JDK en 10 étapes
Construire son JDK en 10 étapes
 
Git the Docs: A fun, hands-on introduction to version control
Git the Docs: A fun, hands-on introduction to version controlGit the Docs: A fun, hands-on introduction to version control
Git the Docs: A fun, hands-on introduction to version control
 
Vagrant - PugMI
Vagrant - PugMIVagrant - PugMI
Vagrant - PugMI
 
ZfDayIt 2014 - There is a module for everything
ZfDayIt 2014 - There is a module for everythingZfDayIt 2014 - There is a module for everything
ZfDayIt 2014 - There is a module for everything
 
Rapid Prototyping Chatter with a PHP/Hack Canvas App on Heroku
Rapid Prototyping Chatter with a PHP/Hack Canvas App on HerokuRapid Prototyping Chatter with a PHP/Hack Canvas App on Heroku
Rapid Prototyping Chatter with a PHP/Hack Canvas App on Heroku
 
Modern Perl for the Unfrozen Paleolithic Perl Programmer
Modern Perl for the Unfrozen Paleolithic  Perl ProgrammerModern Perl for the Unfrozen Paleolithic  Perl Programmer
Modern Perl for the Unfrozen Paleolithic Perl Programmer
 
Composer the right way - SunshinePHP
Composer the right way - SunshinePHPComposer the right way - SunshinePHP
Composer the right way - SunshinePHP
 
JBUG Netherlands Openshift Primer
JBUG Netherlands Openshift PrimerJBUG Netherlands Openshift Primer
JBUG Netherlands Openshift Primer
 
Puppet Performance Profiling - CM Camp 2015
Puppet Performance Profiling - CM Camp 2015Puppet Performance Profiling - CM Camp 2015
Puppet Performance Profiling - CM Camp 2015
 
Git Anti-Patterns - Extended Version With 28 Common Anti-Patterns) - SCTurkey...
Git Anti-Patterns - Extended Version With 28 Common Anti-Patterns) - SCTurkey...Git Anti-Patterns - Extended Version With 28 Common Anti-Patterns) - SCTurkey...
Git Anti-Patterns - Extended Version With 28 Common Anti-Patterns) - SCTurkey...
 
Velocity London - Chaos Engineering Bootcamp
Velocity London - Chaos Engineering Bootcamp Velocity London - Chaos Engineering Bootcamp
Velocity London - Chaos Engineering Bootcamp
 
Git Anti-Patterns: How To Mess Up With Git and Love it Again - DevoxxPL 2017
Git Anti-Patterns: How To Mess Up With Git and Love it Again - DevoxxPL 2017Git Anti-Patterns: How To Mess Up With Git and Love it Again - DevoxxPL 2017
Git Anti-Patterns: How To Mess Up With Git and Love it Again - DevoxxPL 2017
 
Modern Perl for the Unfrozen Paleolithic Perl Programmer
Modern Perl for the Unfrozen Paleolithic Perl ProgrammerModern Perl for the Unfrozen Paleolithic Perl Programmer
Modern Perl for the Unfrozen Paleolithic Perl Programmer
 
atomPub, ruby y la api de 11870
atomPub, ruby y la api de 11870atomPub, ruby y la api de 11870
atomPub, ruby y la api de 11870
 
Git inter-snapshot public
Git  inter-snapshot publicGit  inter-snapshot public
Git inter-snapshot public
 
Enabling Microservices @Orbitz - Velocity Conf 2015
Enabling Microservices @Orbitz - Velocity Conf 2015Enabling Microservices @Orbitz - Velocity Conf 2015
Enabling Microservices @Orbitz - Velocity Conf 2015
 
Composer for Busy Developers - php|tek13
Composer for Busy Developers - php|tek13Composer for Busy Developers - php|tek13
Composer for Busy Developers - php|tek13
 
今すぐ始めるCloud Foundry #hackt #hackt_k
今すぐ始めるCloud Foundry #hackt #hackt_k今すぐ始めるCloud Foundry #hackt #hackt_k
今すぐ始めるCloud Foundry #hackt #hackt_k
 

Andere mochten auch

Andere mochten auch (6)

Let Salt saltify it self!
Let Salt saltify it self!Let Salt saltify it self!
Let Salt saltify it self!
 
Writing SaltStack Modules - OpenWest 2013
Writing SaltStack Modules - OpenWest 2013Writing SaltStack Modules - OpenWest 2013
Writing SaltStack Modules - OpenWest 2013
 
Automating Your Data Center with RackHD - EMC World 2016
Automating Your Data Center with RackHD - EMC World 2016Automating Your Data Center with RackHD - EMC World 2016
Automating Your Data Center with RackHD - EMC World 2016
 
Real-time Infrastructure Management with SaltStack - OpenWest 2013
Real-time Infrastructure Management with SaltStack - OpenWest 2013Real-time Infrastructure Management with SaltStack - OpenWest 2013
Real-time Infrastructure Management with SaltStack - OpenWest 2013
 
AWS re:Invent 2016: Enterprise Fundamentals: Design Your Account and VPC Arch...
AWS re:Invent 2016: Enterprise Fundamentals: Design Your Account and VPC Arch...AWS re:Invent 2016: Enterprise Fundamentals: Design Your Account and VPC Arch...
AWS re:Invent 2016: Enterprise Fundamentals: Design Your Account and VPC Arch...
 
AWS Account Best Practices
AWS Account Best PracticesAWS Account Best Practices
AWS Account Best Practices
 

Ähnlich wie Baremetal deployment

Baremetal deployment scale
Baremetal deployment scaleBaremetal deployment scale
Baremetal deployment scale
baremetal
 

Ähnlich wie Baremetal deployment (20)

Baremetal deployment scale
Baremetal deployment scaleBaremetal deployment scale
Baremetal deployment scale
 
Best Practices In Implementing Container Image Promotion Pipelines
Best Practices In Implementing Container Image Promotion PipelinesBest Practices In Implementing Container Image Promotion Pipelines
Best Practices In Implementing Container Image Promotion Pipelines
 
What's Rio 〜Standalone〜
What's Rio 〜Standalone〜What's Rio 〜Standalone〜
What's Rio 〜Standalone〜
 
Mojolicious lite
Mojolicious liteMojolicious lite
Mojolicious lite
 
Docker in production: reality, not hype (OSCON 2015)
Docker in production: reality, not hype (OSCON 2015)Docker in production: reality, not hype (OSCON 2015)
Docker in production: reality, not hype (OSCON 2015)
 
Optimizing Spring Boot apps for Docker
Optimizing Spring Boot apps for DockerOptimizing Spring Boot apps for Docker
Optimizing Spring Boot apps for Docker
 
JFrog container registry - DevOps extravaganza
JFrog container registry - DevOps extravaganza JFrog container registry - DevOps extravaganza
JFrog container registry - DevOps extravaganza
 
Origins of Serverless
Origins of ServerlessOrigins of Serverless
Origins of Serverless
 
Becoming a Git Master
Becoming a Git MasterBecoming a Git Master
Becoming a Git Master
 
TIAD 2016 : Real-Time Data Processing Pipeline & Visualization with Docker, S...
TIAD 2016 : Real-Time Data Processing Pipeline & Visualization with Docker, S...TIAD 2016 : Real-Time Data Processing Pipeline & Visualization with Docker, S...
TIAD 2016 : Real-Time Data Processing Pipeline & Visualization with Docker, S...
 
Real-Time Data Processing Pipeline & Visualization with Docker, Spark, Kafka ...
Real-Time Data Processing Pipeline & Visualization with Docker, Spark, Kafka ...Real-Time Data Processing Pipeline & Visualization with Docker, Spark, Kafka ...
Real-Time Data Processing Pipeline & Visualization with Docker, Spark, Kafka ...
 
What's Rio
What's RioWhat's Rio
What's Rio
 
Becoming a Git Master - Nicola Paolucci
Becoming a Git Master - Nicola PaolucciBecoming a Git Master - Nicola Paolucci
Becoming a Git Master - Nicola Paolucci
 
Dockerize a Django app elegantly
Dockerize a Django app elegantlyDockerize a Django app elegantly
Dockerize a Django app elegantly
 
Minimum Viable Docker: our journey towards orchestration
Minimum Viable Docker: our journey towards orchestrationMinimum Viable Docker: our journey towards orchestration
Minimum Viable Docker: our journey towards orchestration
 
Docker - introduction
Docker - introductionDocker - introduction
Docker - introduction
 
Git::Hooks
Git::HooksGit::Hooks
Git::Hooks
 
Bootiful Reactive Testing with Mario Gray
Bootiful Reactive Testing with Mario GrayBootiful Reactive Testing with Mario Gray
Bootiful Reactive Testing with Mario Gray
 
青云虚拟机部署私有Docker Registry
青云虚拟机部署私有Docker Registry青云虚拟机部署私有Docker Registry
青云虚拟机部署私有Docker Registry
 
Container Power Hour with Jess, Clare, and Abby (CON362) - AWS re:Invent 2018
Container Power Hour with Jess, Clare, and Abby (CON362) - AWS re:Invent 2018Container Power Hour with Jess, Clare, and Abby (CON362) - AWS re:Invent 2018
Container Power Hour with Jess, Clare, and Abby (CON362) - AWS re:Invent 2018
 

Kürzlich hochgeladen

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Kürzlich hochgeladen (20)

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
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...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
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
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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
 
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
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

Baremetal deployment