Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

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

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

  1. 1. 從軟體開發⾓角度 談 Docker 的應⽤用
  2. 2. about me • JAVA: 6 years • JS: 1 year • blog • linkedin • github • twitter
  3. 3. 版本控制 對開發⼈人員本⾝身來說
  4. 4. why need version control • 溝通 • 合作 • 可讀性 • 回朔 • 版本切換 • 版本發佈 • 同步
  5. 5. source version control
  6. 6. database version control
  7. 7. Environment version control
  8. 8. 溝通 跟開發⼈人員合作
  9. 9. 開發者與開發者之間 • Spec. 規格實例化 • 規格的釐清 • 確認需求 • 前後端整合 • 第三⽅方 API 串接
  10. 10. 開發者與資料庫管理者 • ORM Model • schema • 資料庫效能調教 • 資料庫正規化 • 報表製作
  11. 11. 開發者與維運⼈人員
  12. 12. DevOps 開發⼈人員維運⼈人員
  13. 13. • 系統環境規格 • deploy 的⽅方式 • production 環境建置 • development 環境建置 • 環境異常釐清
  14. 14. 開發者維運⼈人員
  15. 15. Docker Build Ship Run Anything JAVA Write once, run anywhere
  16. 16. why use docker?
  17. 17. atomic find more services : https://registry.hub.docker.com/
  18. 18. same environment development production OSX UBUNTU developer A developer B
  19. 19. switch version
  20. 20. switch environment mode
  21. 21. 想要同時擁有 開發者維運⼈人員
  22. 22. docker hub
  23. 23. use Dockerfile
  24. 24. reusable sails framework ruby and nodejs ubuntu 14.04 loopback ruby and nodejs ubuntu 14.04
  25. 25. extendable FROM smlsunxie/rudy-node:latest sails framework … ruby and nodejs ubuntu 14.04
  26. 26. readable FROM smlsunxie/rudy-node:latest sails framework 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 ruby and nodejs ubuntu 14.04
  27. 27. Build Ship Run Anything
  28. 28. all about docker push
  29. 29. 我想要 清楚好⽤用⼜又快速的...
  30. 30. 使⽤用 docker 搭配 fig 簡化設定
  31. 31. simple • docker pull mysql:latest • docker run -p 3306:3306 -v /data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root mysql docker fig
  32. 32. easy
  33. 33. clear
  34. 34. dynamic • fig env document • 查詢所有環境變數:fig run SERVICE_NAME env
  35. 35. convenience Redis Mysql 2.8 5.7
  36. 36. one command start all services mysql redis myapp MQ server fig up myapp
  37. 37. Mobius CMS docker hackathon
  38. 38. plugin base framework
  39. 39. base on TDD
  40. 40. https://github.com/smlsunxie/mobius-cms
  41. 41. CMS modules concept plugin A plugin B
  42. 42. plugin indepand CMS modules run plugin
  43. 43. 結論 • 環境更統⼀一 • 建置過程明確 • 開發⼈人員與維運⼈人員可利⽤用 dockerfile 進⾏行溝通 • 除了部署之外,docker 還有很多應⽤用 • 再 fig 的幫助下,可以更有條理的使⽤用 docker

×