Download - 從軟體開發角度談 Docker 的應用

Transcript
Page 1: 從軟體開發角度談 Docker 的應用
Page 2: 從軟體開發角度談 Docker 的應用

從軟體開發⾓角度談 Docker 的應⽤用

Page 3: 從軟體開發角度談 Docker 的應用

about me• JAVA: 6 years• JS: 1 year• blog• linkedin• github• twitter

Page 4: 從軟體開發角度談 Docker 的應用

版本控制

對開發⼈人員本⾝身來說

Page 5: 從軟體開發角度談 Docker 的應用

why need version control• 溝通• 合作• 可讀性• 回朔• 版本切換• 版本發佈• 同步

Page 6: 從軟體開發角度談 Docker 的應用
Page 7: 從軟體開發角度談 Docker 的應用

source version control

Page 8: 從軟體開發角度談 Docker 的應用

database version control

Page 9: 從軟體開發角度談 Docker 的應用

Environment version control

Page 10: 從軟體開發角度談 Docker 的應用

溝通

跟開發⼈人員合作

Page 11: 從軟體開發角度談 Docker 的應用

開發者與開發者之間• Spec. 規格實例化• 規格的釐清• 確認需求• 前後端整合• 第三⽅方 API 串接

Page 12: 從軟體開發角度談 Docker 的應用

開發者與資料庫管理者• ORM Model• schema• 資料庫效能調教• 資料庫正規化• 報表製作

Page 13: 從軟體開發角度談 Docker 的應用

開發者與維運⼈人員

Page 14: 從軟體開發角度談 Docker 的應用

DevOps

開發⼈人員 維運⼈人員

Page 15: 從軟體開發角度談 Docker 的應用

• 系統環境規格• deploy 的⽅方式• production 環境建置• development 環境建置• 環境異常釐清

Page 16: 從軟體開發角度談 Docker 的應用

開發者 維運⼈人員

Page 17: 從軟體開發角度談 Docker 的應用

DockerBuild Ship Run Anything JAVAWrite once, run anywhere

Page 18: 從軟體開發角度談 Docker 的應用

why use docker?

Page 19: 從軟體開發角度談 Docker 的應用

find more services : https://registry.hub.docker.com/

atomic

Page 20: 從軟體開發角度談 Docker 的應用

productiondevelopment

developer A developer B

OSX UBUNTU

same environment

Page 21: 從軟體開發角度談 Docker 的應用

switch version

Page 22: 從軟體開發角度談 Docker 的應用

switch environment mode

Page 23: 從軟體開發角度談 Docker 的應用

想要同時擁有

開發者 維運⼈人員

Page 24: 從軟體開發角度談 Docker 的應用

docker hub

Page 25: 從軟體開發角度談 Docker 的應用

use Dockerfile

Page 26: 從軟體開發角度談 Docker 的應用

reusable

ubuntu 14.04

ruby and nodejs

sails framework

ubuntu 14.04

ruby and nodejs

loopback

Page 27: 從軟體開發角度談 Docker 的應用

extendable

ubuntu 14.04

ruby and nodejs

sails frameworkFROM smlsunxie/rudy-node:latest …

Page 28: 從軟體開發角度談 Docker 的應用

readable

ubuntu 14.04

ruby and nodejs

sails frameworkFROM smlsunxie/rudy-node:latest

RUN gem install compass RUN gem install bootstrap-sass

RUN npm install -g grunt-cli RUN npm install -g bower RUN npm install -g coffee-script RUN npm install -g sails

Page 29: 從軟體開發角度談 Docker 的應用

Build Ship Run Anything

Page 30: 從軟體開發角度談 Docker 的應用

all about dockerpush

Page 31: 從軟體開發角度談 Docker 的應用

我想要

清楚好⽤用⼜又快速的...

Page 32: 從軟體開發角度談 Docker 的應用

使⽤用 docker 搭配 fig 簡化設定

Page 33: 從軟體開發角度談 Docker 的應用

simple• docker pull mysql:latest• docker run \

-p 3306:3306 \-v /data/mysql:/var/lib/mysql \-e MYSQL_ROOT_PASSWORD=root \mysql

docker

fig

Page 34: 從軟體開發角度談 Docker 的應用

easy

Page 35: 從軟體開發角度談 Docker 的應用

clear

Page 36: 從軟體開發角度談 Docker 的應用

dynamic• fig env document• 查詢所有環境變數:fig run SERVICE_NAME env

Page 37: 從軟體開發角度談 Docker 的應用

convenience

Mysql

Redis

2.8

5.7

Page 38: 從軟體開發角度談 Docker 的應用

one command start all services

mysql redis

myapp

MQ server

fig up myapp

Page 39: 從軟體開發角度談 Docker 的應用

docker hackathon

Mobius CMS

Page 40: 從軟體開發角度談 Docker 的應用

plugin base framework

Page 41: 從軟體開發角度談 Docker 的應用

base on TDD

Page 42: 從軟體開發角度談 Docker 的應用

https://github.com/smlsunxie/mobius-cms

Page 43: 從軟體開發角度談 Docker 的應用

CMS

modules

concept

plugin A

plugin B

Page 44: 從軟體開發角度談 Docker 的應用
Page 45: 從軟體開發角度談 Docker 的應用

CMS

modules

plugin indepand

run plugin

Page 46: 從軟體開發角度談 Docker 的應用
Page 47: 從軟體開發角度談 Docker 的應用

結論• 環境更統⼀一• 建置過程明確• 開發⼈人員與維運⼈人員可利⽤用 dockerfile 進⾏行溝通• 除了部署之外,docker 還有很多應⽤用• 再 fig 的幫助下,可以更有條理的使⽤用 docker

Page 48: 從軟體開發角度談 Docker 的應用
Page 49: 從軟體開發角度談 Docker 的應用