docker in development (story)

30
DOCKER IN DEVELOPMENT by Quan Nguyen Solutions Manager FPT Technology Solutions [email protected]

Upload: quan-nguyen

Post on 11-Apr-2017

545 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Docker in development (Story)

DOCKERIN DEVELOPMENTbyQuan NguyenSolutions ManagerFPT Technology [email protected]

Page 2: Docker in development (Story)

WHO AM I?Tech-a-holic, Coffee-a-holic,Cocacola-a-holicGraduated from FPT University2008~2012: FPT Software Developer Technical lead2012~now: FPT Technology Solutions Full-stack developer Products Manager Solutions Manager FPT-a-holic as well

Page 3: Docker in development (Story)

WHAT WE WILL DISCUS TODAY?Overview of Micro-service architect (currently apply at FTS)Why Docker in Micro-service architect?Docker in (web apps) development.

Story50%

Concept20%

Application20%

Usage10%TODAY'S CONTENTS

Page 4: Docker in development (Story)

LET THE STORY BEGINS Once upon a time

Page 5: Docker in development (Story)

TRAFFIC INSIGHTLive Traffic Portal

NOTISLive Traffic on Mobilehttp://notis.vn

Page 6: Docker in development (Story)

THE CHALLENGES COME Life is not like a dream

Page 7: Docker in development (Story)

CHALLENGE #01Many languages (NodeJS, Python, C++, C#, Ruby, Scala, GoLang, …)Many platforms/libraries (OpenCV2, OpenCV3, .NET, …)Many environments (Ubuntu, Debian, Windows, …)Many databases (MongoDB, PostgesSQL, Redis, MySQL, SQL Server, …)Many other things (Active MQ, Rapid MQ, Mosquito, Hadoop, Spark, …)

Get right tool for the right job

Page 8: Docker in development (Story)

SOLUTION #01

Page 9: Docker in development (Story)

MONOLITHIC VS MICRO-SERVICES

Page 10: Docker in development (Story)

WHEN ARCHITECTS DESIGN

Page 11: Docker in development (Story)

WHEN DEVELOPERS DEVELOP

Page 12: Docker in development (Story)

WHEN TESTERS TEST

Page 13: Docker in development (Story)

CHALLENGE #02

Page 14: Docker in development (Story)

CHALLENGE #02 – THE MATRIX FROM HELL

Page 15: Docker in development (Story)

SOLUTION #02

Page 16: Docker in development (Story)

SOLUTION #02

Page 17: Docker in development (Story)

CHALLENGE #03We have many micro-services for images/videos processing.Those services used GPU core (CUDA) to improve speed.The challenge is How to put those services on 01 GPU Server independently.

Page 18: Docker in development (Story)

CHALLENGE #04 – WELCOME ON BOARDLegacyI told him: Get a new PC with Windows Install NodeJS Install MongoDB Install Redis Install VMWare with Debian VM Install PostgresSQL Install MySQL …Nextday: Get code from GIT Configure for each thing Run each thing

With DockerI told:Get a new PC with Windows Install Docker-ToolboxGet code from GITDocker-compose upAnd coffee time

Page 19: Docker in development (Story)

CHALLENGE #05 – TESTING

Page 20: Docker in development (Story)

CHALLENGE #06 – DEPLOYMENT

Page 21: Docker in development (Story)

DEMO TIME

Page 22: Docker in development (Story)

THE SAMPLE MULTI SERVICES WEB APPDockerCoinsMiner is the application for mining DockerCoins. We have 4 services: Random Number (RNG): web service generating random bytes. (Ruby + Sinatra) Hasher: web service computing hash (Python + Flask) Worker: background process using RNG and Hasher (Python) WebUI: web interface to watch progress (NodeJS + ExpressJS + Redis)

Page 23: Docker in development (Story)

THE SAMPLE MULTI SERVICES WEB APPDockerCoinsMiner is the application for mining DockerCoins. How it works: Worker asks to RNG to give it random bytes Worker feeds those random bytes into hasher Each hash starting with 0 is a DockerCoin DockerCoins are stored in Redis Redis is also updated every second to track speed You can see the progress with the WebUI

Page 24: Docker in development (Story)

DEMO

Page 25: Docker in development (Story)

CHALLENGE #07 – SCALINGIt’s a loooooong story:Twelve-factorConfigure databaseService discoveryAmbassadors pattern…

Page 26: Docker in development (Story)

RECAP

Page 27: Docker in development (Story)

OUR HERO

Page 28: Docker in development (Story)

Q&A

Page 29: Docker in development (Story)

TAKE AWAYAmbassadors patternDocker-composeDocker-machineService discoveryDocker

Page 30: Docker in development (Story)

THANKS FOR LISTENINGbyQuan NguyenSolutions ManagerFPT Technology [email protected]