SlideShare una empresa de Scribd logo
1 de 76
Descargar para leer sin conexión
Automated 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

service
rmq
service

service

service

service
service
cache
serveservice serve serve serveservice
serve
serve service
service
service
service
django
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
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

service
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

user/service (push to index)

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
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
ql:

//

u:p

@1

.2.

3.4

:49

15
6

/d
b

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 POSTGRESQL_URL=postgresql://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
Baremetal Platform

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
Baremetal Platform
Thin as possible!
❖ Run the platform on the platform!
❖ Run as many services as possible in containers
❖

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
Baremetal Platform
Two main components!
❖ container manager!
❖ orchestration!
❖ Two major goals!
❖ minimize downtime!
❖ eliminate single point of failure
❖

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
Container Manager
Starts containers assigned to the host!
❖ Stops containers no longer assigned!
❖ Restarts containers that should be running and die!
❖ Restarts containers when service config changes
❖

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
Orchestration
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
Orchestration Configuration
Repositories!
❖ tracks Docker image, git repo and branch!
❖ Services!
❖ repo, dependencies, failover!
❖ Applications!
❖ services, # instances, configuration, memory allocation
❖

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
The nuts and bolts

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
Additional Services
etcd - fault-tolerant configuration store!
❖ serf - host discovery and message passing!
❖ zfs - next-gen copy-on-write filesystem
❖

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
Containerize as much as possible

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
Containerize as much as possible
Run the platform on the platform!
❖ Services remain self-contained!
❖ Portable - simple to relocate to another system!
❖ Easily deploy new versions and rollback if needed
❖

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio
Thanks!

Let us know what you think:

http://baremetal.io/scale

roberto@baremetal.io ⁃ ⁃ ⁃ ⁃

@baremetalio

Más contenido relacionado

La actualidad más candente

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
 
Plack perl superglue for web frameworks and servers
Plack perl superglue for web frameworks and serversPlack perl superglue for web frameworks and servers
Plack perl superglue for web frameworks and servers
Tatsuhiko Miyagawa
 

La actualidad más candente (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
 
Plack perl superglue for web frameworks and servers
Plack perl superglue for web frameworks and serversPlack perl superglue for web frameworks and servers
Plack perl superglue for web frameworks and servers
 

Similar a Baremetal deployment scale

Baremetal deployment
Baremetal deploymentBaremetal deployment
Baremetal deployment
baremetal
 
DevOps for Opensource Geospatial Applications
DevOps for Opensource Geospatial ApplicationsDevOps for Opensource Geospatial Applications
DevOps for Opensource Geospatial Applications
tlpinney
 

Similar a Baremetal deployment scale (20)

Baremetal deployment
Baremetal deploymentBaremetal deployment
Baremetal deployment
 
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
 
JFrog container registry - DevOps extravaganza
JFrog container registry - DevOps extravaganza JFrog container registry - DevOps extravaganza
JFrog container registry - DevOps extravaganza
 
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
 
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)
 
Origins of Serverless
Origins of ServerlessOrigins of Serverless
Origins of Serverless
 
K8s, Amazon EKS - 유재석, AWS 솔루션즈 아키텍트
K8s, Amazon EKS - 유재석, AWS 솔루션즈 아키텍트K8s, Amazon EKS - 유재석, AWS 솔루션즈 아키텍트
K8s, Amazon EKS - 유재석, AWS 솔루션즈 아키텍트
 
DevOps for Opensource Geospatial Applications
DevOps for Opensource Geospatial ApplicationsDevOps for Opensource Geospatial Applications
DevOps for Opensource Geospatial Applications
 
What's Rio
What's RioWhat's Rio
What's Rio
 
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
 
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
 
Deploying Symfony | symfony.cat
Deploying Symfony | symfony.catDeploying Symfony | symfony.cat
Deploying Symfony | symfony.cat
 
Optimizing Spring Boot apps for Docker
Optimizing Spring Boot apps for DockerOptimizing Spring Boot apps for Docker
Optimizing Spring Boot apps for Docker
 
Docker - introduction
Docker - introductionDocker - introduction
Docker - introduction
 
Bootiful Reactive Testing with Mario Gray
Bootiful Reactive Testing with Mario GrayBootiful Reactive Testing with Mario Gray
Bootiful Reactive Testing with Mario Gray
 
Deploying Next Gen Systems with Zero Downtime
Deploying Next Gen Systems with Zero DowntimeDeploying Next Gen Systems with Zero Downtime
Deploying Next Gen Systems with Zero Downtime
 
Lessons Learned in Automating Compliance for Containers
Lessons Learned in Automating Compliance for ContainersLessons Learned in Automating Compliance for Containers
Lessons Learned in Automating Compliance for Containers
 
CodeIgniter For Project : Workshop 001 - Install Docker and CodeIgniter
CodeIgniter For Project : Workshop 001 - Install Docker and CodeIgniterCodeIgniter For Project : Workshop 001 - Install Docker and CodeIgniter
CodeIgniter For Project : Workshop 001 - Install Docker and CodeIgniter
 

Baremetal deployment scale