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の事例紹介

Related Books

Free with a 30 day trial from Scribd

See all
  • Be the first to comment

Dockerの事例紹介

  1. 1. Dockerの事例紹介
  2. 2. 自己紹介 ● 名前 – 遠藤博樹 ● 所属 – Works Applications – ATE Div. 技術基盤開発グループ ● 仕事 – 主にインフラ技術の調査と社内展開
  3. 3. 目次 ● エンタープライズ? ● 事例紹介 – 継続的インテグレーション – 評価環境 – 開発環境 – DB運用 ● まとめ
  4. 4. ● エンタープライズ? ● 事例紹介 – 継続的インテグレーション – 評価環境 – 開発環境 – DB運用 ● まとめ
  5. 5. 製品の数と販売形態
  6. 6. 開発拠点
  7. 7. エンタープライズ? ● 製品の数が多く環境の入れ替えがよくある ● 古いバージョンの保守が定期的に必要 ● 複数の国で同じ製品の開発をしている
  8. 8. ● エンタープライズ? ● 事例紹介 – 継続的インテグレーション – 評価環境 – 開発環境 – DB運用 ● まとめ
  9. 9. 継続的インテグレーション(CI) 〜製品もバージョンもいっぱいあるんだよ〜
  10. 10. 今の開発の流れ Jenkins GitLab PullPush Merge Request Hook! Jobの起動 ビルド/テスト中 Pull 結果の記入 M erge判 断 (1)(2)(3) (4) (5) (6) (8) (7) (9) 開発者 偉い人
  11. 11. CIの問題点 Jenkins GitLab tomcatのライブラリ 足りてないんですけど… RubyやPythonの バージョン違うんですけど・・・ Pull Hardware OS ver0.8用実行環境 App ver0.5 Versionが違う! あれ? RedisのIP変わりました? こんなNodeモジュール 知りません 重い…
  12. 12. CIの問題点 Jenkins GitLab Jenkins 起動 環境準備 最初から そうすればいいんですよ Hardware OS ver0.5用実行環境 開発者サーバ管理者
  13. 13. Dockerを使ったCI環境 Jenkins GitLab Pull Hardware Linux kernel Bin/Libs Docker daemon ver0.5用環境 App ver0.5 Bin/Libs Docker run ビルド/テスト中 Docker Image ver0.8用環境 App ver0.8 Bin/Libs Execute Shell
  14. 14. CI まとめ CIのビルド/テスト実行環境をDockerで仮想化 ● 起動が速いので – 大量にくるマージリクエストを素早く処理できる ● 環境を簡単にパッケージ・名前付けできるので – ソースコードと対応する環境を用意できる
  15. 15. 評価環境 〜作って終わりじゃないんだよ〜
  16. 16. Web画面を伴う開発の流れ Jenkins GitLab M erge判 断 tomcat Deploy 結果の記入 偉い人
  17. 17. トラブル発生! tomcat Jenkins DeployDeployDeploy Deploy
  18. 18. 大トラブル発生! tomcat Jenkins DeployDeployDeploy Deploy
  19. 19. 複数のtomcatを作る手はある tomcat Jenkins Deploy Deploy Deploy Deploy tomcat tomcat tomcat :8080 :8081 :8082 :8083
  20. 20. とりあえずDockerを使った Jenkins DeployDeployDeploy Deploy
  21. 21. 改善した Jenkins GitLab docker run/ deploy Hardware Linux kernel Bin/Libs Docker daemon Tomcat war Bin/Libs Docker Image Tomcat war Bin/Libs Merge Request Hook! ジョブ起動
  22. 22. Jenkins DeployDeployDeploy Deploy GitLab
  23. 23. Jenkins GitLab Marge 適用 Hook! コンテナ終了処理
  24. 24. Jenkins GitLab docker rm
  25. 25. Jenkins GitLab
  26. 26. 評価まとめ 動作チェック用のアプリ実行環境をDockerで仮想化 ● 仮想的に隔離されているので – 誰かのアプリが問題を起こしても 影響が限定的 ● 軽量なので – 確認時のパフォーマンスにも影響しない
  27. 27. 開発環境 〜製品やバージョンごとにあるんだよ〜
  28. 28. 開発の問題点
  29. 29. VirtualBox解決案
  30. 30. Dockerを使った開発環境 Hardware Linux kernel Bin/Libs Docker daemon Libs xpra Bin/Libs Docker Image DB/Libs Bin/Libs Eclipse xpra コンテナ Eclipse (1) docker run xpra ID=10 (2) sessionxpra (3) DISPLAY=10; exec eclipse (4) view (5) view ホストPC
  31. 31. 開発環境まとめ 開発のセット(Eclipseとかライブラリ)をDockerでパッケージ化 ● Docker Registryがあるので – 必要な環境をPullすれば使える ● オーバーヘッドがないので – 開発利用でも十分に利用できる ● 環境がパッケージ化されているので – 終わったら環境を消すことも簡単
  32. 32. 複数拠点DB運用 〜海外拠点もあるんだよ〜
  33. 33. 同じデータベースを利用 東京のサーバ使って開発するの 遅いのでなんとかならないですか オッケー!
  34. 34. Dockerを使ったDB環境 Master Private Registry 東京 Slave Private Registry 上海 Hardware Linux kernel Bin/Libs Docker daemon DB Bin/Libs Hardware Linux kernel Bin/Libs Docker daemon DB Bin/Libs Push コピー Pull sync LOCAL FILE from S3 Bucket
  35. 35. 選択の自由 データベース
  36. 36. 今回はオフィス内のサーバ データベース
  37. 37. DBのまとめ 複数拠点で使用するデータベースをDockerでパッケージ化 ● クラウドごとの差異や物理の違いを吸収できるので – 状況に合ったインフラを選択し、同一環境を稼働できる ● 環境がパッケージ化されているので – 同じ構成を東京と海外拠点で利用できる ● オーバーヘッドがないので – 開発利用でも十分に利用ができる
  38. 38. ● エンタープライズ? ● 事例紹介 – 継続的インテグレーション – 評価環境 – 開発環境 – DB運用 ● まとめ
  39. 39. まとめ ● 事例紹介 – CI環境導入 – 開発環境導入 – 評価環境導入 – データベース環境導入
  40. 40. Thank you

×