docker & diego - good friends or not?

42
Diego & Docker - Good friends or not ?

Upload: anynines

Post on 18-Feb-2017

35 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Docker & Diego  - good friends or not?

Diego & Docker - Good friends or not ?

Page 2: Docker & Diego  - good friends or not?
Page 3: Docker & Diego  - good friends or not?

• DevOps Engineer @anynines • Used to work with Java (monoliths)• Got to know Node.js and

Microservices • Learned about CloudFoundry • Can I push my Container to CF ?

Page 4: Docker & Diego  - good friends or not?

Why even use Docker ?

Page 5: Docker & Diego  - good friends or not?
Page 6: Docker & Diego  - good friends or not?

Code

Dockerfile

Docker Imagedocker build

Docker container

Codedocker run

Docker hub

Page 7: Docker & Diego  - good friends or not?

Docker hub

Docker ImageDocker ImageDocker Image

Page 8: Docker & Diego  - good friends or not?

Developer machine

Docker container

Code

node 0.12

Docker Image

Docker hub

Docker ImageDocker Image

new Developer machine test/staging/production machine

Docker container

Code

Docker container

Code

node 6.3.0 node 5.0.0

node 5.0.0 node 5.0.0 node 5.0.0

Docker Image

Page 9: Docker & Diego  - good friends or not?

Why even use Cloud Foundry ?

Page 10: Docker & Diego  - good friends or not?

Developer machine

Code

Cloud Foundry

Instancecf push

Page 11: Docker & Diego  - good friends or not?

Developer machine

Code

Cloud Foundry

Instancecf scale APP -i 4

Instance

Instance

Instance

Page 12: Docker & Diego  - good friends or not?

Diego supports Docker

Page 13: Docker & Diego  - good friends or not?

Docker Image

Filesystem

Commands

Garden Container

Filesystem

Droplet

Garden Linux

creates

Page 14: Docker & Diego  - good friends or not?

Garden Container

Garden Linux

creates

Docker Image

Filesystem

Commands

Page 15: Docker & Diego  - good friends or not?

Why even use Docker & CloudFoundry

Page 16: Docker & Diego  - good friends or not?

Importer

Docker Container

MongoDB(Movies)

DBWrapper

Recommender

Docker Container

MongoDB(Subscriber)

Page 17: Docker & Diego  - good friends or not?

Spin it up$ docker run -d -p 27017:27017 mongo

$ cd ../importer$ PORT=… MOVIE_DB_HOST=… MOVIE_DB_PORT=… npm start

$ cd ../recommender$ PORT=… MOVIE_DB_HOST=… MOVIE_DB_PORT=… npm start

$ cd db$ PORT=… MOVIE_MONGO_URI=mongodb://192… npm start

$ docker pull mongo

Page 18: Docker & Diego  - good friends or not?

Docker Container

Docker ContainerDocker Container

Importer

Docker Container

MongoDB(Movies)

DBWrapper

Recommender

Docker Container

MongoDB(Subscriber)

Page 19: Docker & Diego  - good friends or not?
Page 20: Docker & Diego  - good friends or not?
Page 21: Docker & Diego  - good friends or not?

Spin it up with Docker$ docker-compose up

Page 22: Docker & Diego  - good friends or not?

Importer

Docker Container

MongoDB(Movies)

DBWrapper

Recommender

Docker Container

MongoDB(Subscriber) $ MONGO_URI=… npm

start

local

$ MOVIE_DB_HOST=… npm start $ MOVIE_DB_HOST=… npm start

Page 23: Docker & Diego  - good friends or not?

MongoDB(Movies)

DBWrapper

cloud

manifest.yml

Page 24: Docker & Diego  - good friends or not?

Importer

DBWrapper

manifest.yml

cloud

Page 25: Docker & Diego  - good friends or not?

DBWrapper

Recommender

cloud

manifest.yml

Page 26: Docker & Diego  - good friends or not?

Recommender

MongoDB(Subscriber)

manifest.ymlcloud

Page 27: Docker & Diego  - good friends or not?

Deploy it on Cloud Foundry$ docker build -t mebnoah/moviez_db .$ docker push mebnoah/moviez_db

$ cf push --docker-image mebnoah/moviez_db

$ cd db

$ cd ../importer$ docker build -t mebnoah/moviez_importer .$ docker push mebnoah/moviez_importer

$ cf push --docker-image mebnoah/moviez_importer $ cd ../recommender

$ docker build -t mebnoah/moviez_recommender .$ docker push mebnoah/moviez_recommender

$ cf push --docker-image mebnoah/moviez_recommender

Page 28: Docker & Diego  - good friends or not?
Page 29: Docker & Diego  - good friends or not?

State of the onion

Page 30: Docker & Diego  - good friends or not?

Spin it up with just 1 command

Page 31: Docker & Diego  - good friends or not?

• Build each Docker image explicitly• Register on Docker Hub and push

each image • Push each app separately to CF

Page 32: Docker & Diego  - good friends or not?

You decide wether to push a micro service with or without

docker !

Page 33: Docker & Diego  - good friends or not?

I would push it without docker

Page 34: Docker & Diego  - good friends or not?

Spin it up with just 1 command

Page 35: Docker & Diego  - good friends or not?
Page 36: Docker & Diego  - good friends or not?

Push it to CF with just 1 command

Page 37: Docker & Diego  - good friends or not?
Page 38: Docker & Diego  - good friends or not?

Support Continuous Integration/Deployment

Page 39: Docker & Diego  - good friends or not?

There is a friendship but it’s not a good one

Page 40: Docker & Diego  - good friends or not?

Questions ?

Page 41: Docker & Diego  - good friends or not?
Page 42: Docker & Diego  - good friends or not?

• github.com/mebnoah• twitter.com/mebnoah

Follow me