Contenu connexe
Similaire à Docker国内外本番環境サービス事例のご紹介 (20)
Plus de ThinkIT_impress (12)
Docker国内外本番環境サービス事例のご紹介
- 1. Copyright © 2016 TIS Inc. All rights reserved.
Dockercon 2016報告会 #tistudy201606
Docker国内外本番環境の事例紹介
TIS株式会社
戦略技術センター
森元 敏雄
- 2. Copyright © 2016 TIS Inc. All rights reserved.
自己紹介
2
氏名 :森元敏雄
所属 :TIS株式会社 戦略技術センター
担当業務:部門内の開発・検証環境の構築・保守
OSS関連製品の技術調査、記事執筆・寄稿
執筆記事:
連載1:Dockerを知る-周辺ツールと業界動向
(https://thinkit.co.jp/story/2014/12/02/5456)
連載2:より深くDockerを知る
(https://thinkit.co.jp/story/2015/03/06/5672)
連載3:進化を続けるDockerの今を知る
(https://thinkit.co.jp/story/2015/03/06/5672)
OSS運用監視ソフト 注目の10製品徹底比較 2016年版
(http://www.atmarkit.co.jp/ait/articles/1606/14/news011.html)
OSS サーバ構築自動化ツール、4製品徹底検証 2016年版
(https://www.atmarkit.co.jp/ait/articles/1606/14/news011.html)
TIS技術blog Tech-sketch
(http://tech-sketch.jp/author/morimoto)
- 3. Copyright © 2016 TIS Inc. All rights reserved.
今回のセッションの概要
3
Dockerを開発環境、本番環境に活用した先進的
な公開事例をご紹介します。
その事例から想定される、Dockerの本番利用イ
メージを考えてみます。
今回の発表内容は
Think IT上の👈こちらの
記事を基にしています。
https://thinkit.co.jp/article/9701
合わせご一読頂けますと
幸いです。
- 4. Copyright © 2016 TIS Inc. All rights reserved.
アジェンダ
1. 開発環境の事例
① パッケージの保守開発環境(Works Applications社)
2. 本番環境の事例
① 料理レシピ情報サイト運用(クックパット社)
② 大規模コマースサイト運用(Shopify社)
③ 研究機関の大規模バッチ運用 (国立情報学研究所)
3. Dockerの本番活用イメージ
① Webサイト環境イメージ
② バッチ環境イメージ
4
- 5. Copyright © 2016 TIS Inc. All rights reserved.
アジェンダ
1. 開発環境の事例
① パッケージの保守開発環境(Works Applications社)
2. 本番環境の事例
① 料理レシピ情報サイト運用(クックパット社)
② 大規模コマースサイト運用(Shopify社)
③ 研究機関の大規模バッチ運用 (国立情報学研究所)
3. Dockerの本番活用イメージ
① Webサイト環境イメージ
② バッチ環境イメージ
5
- 6. Copyright © 2016 TIS Inc. All rights reserved.
①パッケージの保守開発環境(Works Applications社)
6
導入前の問題
• 多数のパッケージ製品の開発検証環境が必要
• 各製品の新旧バージョンの保守・開発環境が必要
• 国内・海外の開発拠点の環境の共通化が必要
株式会社ワークスアプリケーションズ 遠藤博樹氏 講演資料より引用
http://www.slideshare.net/endhrk/Docker-use-case-36473690/
生産管理ソリューション
人工知能型ERP
財務・管理会計
人事・給与
マイナンバー管理
グループウェア
メッセンジャー
SCM
Eコマース
BPM
クラウド管理サービス
グローバル対応
etc…
- 7. Copyright © 2016 TIS Inc. All rights reserved. 7
開発環境でのバージョン不整合の問題
①パッケージの保守開発環境(Works Applications社)
- 8. Copyright © 2016 TIS Inc. All rights reserved. 8
開発環境を東京に集約することによる問題
①パッケージの保守開発環境(Works Applications社)
- 9. Copyright © 2016 TIS Inc. All rights reserved. 9
対応策
• 開発環境(開発・検証・CI)をDockerコン
テナに統合
• 各製品、各バージョンの開発環境をリポジ
トリで管理
• 開発者のリクエストに応じて、必要となる
開発環境一式をコンテナで一括提供する仕
組みを実現
• 開発環境をオンプレミスだけではなく、パ
ブリッククラウドも利用できる状態を実現
①パッケージの保守開発環境(Works Applications社)
- 10. Copyright © 2016 TIS Inc. All rights reserved. 10
製品、バージョンに対応した開発環境をコンテナで提供
①パッケージの保守開発環境(Works Applications社)
- 11. Copyright © 2016 TIS Inc. All rights reserved. 11
環境をオンプレミス、クラウドで自由に選択可能に
①パッケージの保守開発環境(Works Applications社)
- 12. Copyright © 2016 TIS Inc. All rights reserved. 12
導入後の効果
• 開発環境提供の運用コストの低減
• 各製品の各バージョンの開発・検証環境が
統一され、製品の品質が安定
• 使用するリソース量が削減でき、開発者
個々に開発・検証環境の提供を実現
• DBサーバを含む開発・検証環境を開発者に
近いロケーションでの提供を実現
品質の向上とコストの低減を両立する為には、
貴重なフルスタックエンジニアを開発環境の改善
という投資にアサインできるかが鍵になる。
①パッケージの保守開発環境(Works Applications社)
- 13. Copyright © 2016 TIS Inc. All rights reserved.
アジェンダ
1. 開発環境の事例
① パッケージの保守開発環境(Works Applications社)
2. 本番環境の事例
① 料理レシピ情報サイト運用(クックパット社)
② 大規模コマースサイト運用(Shopify社)
③ 研究機関の大規模バッチ運用 (国立情報学研究所)
3. Dockerの本番活用イメージ
① Webサイト環境イメージ
② バッチ環境イメージ
13
- 14. Copyright © 2016 TIS Inc. All rights reserved.
①料理レシピ情報サイト運用(クックパット社)
14
導入の為に実施した対策
• コンテナの更新によるアクセスの変更は、nginxの
設定の変更で対応
• コンテナの自動デプロイの導入により、アプリケー
ションの更新作業を自動化
クックパッド株式会社 開発者ブログより引用
http://techlife.cookpad.com/entry/2015/04/20/134758
前提条件
• WebアプリケーションサーバとしてDockerを採用
• アプリケーションの更新はDockerコンテナ単位で
実施
• 更新作業によるサービス停止は許容されない
◆Docker環境で構築されたシステムの運用自動化を実現
- 15. Copyright © 2016 TIS Inc. All rights reserved. 15
アプリケーションの
更新はコンテナを入
れ替える形で実施
呼び出すコンテナの切り
替えは上位のnginxの設
定変更で対応
②料理レシピ情報サイト運用(クックパット社)
- 16. Copyright © 2016 TIS Inc. All rights reserved. 16
実現できたこと
• 1つのシステムを複数のDockerコンテナの
組み合わせで構成
• クラスタ構成されたDockerサーバでの負荷
分散および冗長化の確保
• アプリケーションの更新および設定変更の
自動化
今後の課題
• コンテナ配置のワークロードの自動化
• コンテナ増減によるオートスケールの実現
②料理レシピ情報サイト運用(クックパット社)
- 17. Copyright © 2016 TIS Inc. All rights reserved.
アジェンダ
1. 開発環境の事例
① パッケージの保守開発環境(Works Applications社)
2. 本番環境の事例
① 料理レシピ情報サイト運用(クックパット社)
② 大規模コマースサイト運用(Shopify社)
③ 研究機関の大規模バッチ運用 (国立情報学研究所)
3. Dockerの本番活用イメージ
① Webサイト環境イメージ
② バッチ環境イメージ
17
- 18. Copyright © 2016 TIS Inc. All rights reserved. 18
②大規模コマースサイト運用(Shopify社)
Shopify ENGINEERING blogのGraeme Johnson氏の記事から引用
https://engineering.shopify.com/17489060-docker-at-shopify-how-we-built-containers-
that-power-over-100-000-online-shops
◆10万テナントのショップサイトをDocker環境で実現
- 19. Copyright © 2016 TIS Inc. All rights reserved. 19
導入方法
• コンテナ内部から不要な機能を除き、最小化
• コンテナの構築をDockerfileで自動化
• アプリケーションをDockerコンテナで動作させる
ことを前提とする Containerizingを行った
• 提供するアプリケーションを1つのコンテナに集約
導入後の効果
• 利用申し込みからテナントへのサービスの提供の自
動化を実現
• サービス提供までの時間短縮を実現
• リソース使用量の低減にも成功
• 現在は20万件以上のテナントにサービスを提供
②大規模コマースサイト運用(Shopify社)
- 20. Copyright © 2016 TIS Inc. All rights reserved.
アジェンダ
1. 開発環境の事例
① パッケージの保守開発環境(Works Applications社)
2. 本番環境の事例
① 料理レシピ情報サイト運用(クックパット社)
② 大規模コマースサイト運用(Shopify社)
③ 研究機関の大規模バッチ運用 (国立情報学研究所)
3. Dockerの本番活用イメージ
① Webサイト環境イメージ
② バッチ環境イメージ
20
- 21. Copyright © 2016 TIS Inc. All rights reserved. 21
③研究機関の大規模バッチ運用 (国立情報学研究所)
国立情報学研究所(NII) 横山重俊先生の講演資料から引用
http://www.iic.hokudai.ac.jp/kyodo_kenkyu/cloud-week-
2015/document/20150909yokoyama.pdf
経緯
• 某事件の影響で遺伝子研究の分野でも論文の再現性
の検証を行うことが必須に
• 論文の検証に再現には、巨大な遺伝子のデータを大
規模かつ複雑なソフトウェアでの解析が必須
- 22. Copyright © 2016 TIS Inc. All rights reserved. 22
③研究機関の大規模バッチ運用 (国立情報学研究所)
課題
• 巨大データの処理のために、各大学のリソースを1
つの大きなクラウドとして利用できる環境を実現
⇒そのクラウド環境の運用負荷が課題に
- 23. Copyright © 2016 TIS Inc. All rights reserved. 23
③研究機関の大規模バッチ運用 (国立情報学研究所)
対応
• 遺伝子解析プログラムをDockerコンテナ化
• 遺伝子解析処理の超並列稼働と順序制御を自動化
- 24. Copyright © 2016 TIS Inc. All rights reserved.
まとめ:Dockerの本番導入事例からわかること
これら導入事例をから、Dockerを本番で活用する為には以
下を考慮する必要があると考えられる。
24
① Dockerコンテナは、同じ機能を大量かつ、並
列で動作させるのに適している。
② 1つのコンテナには、稼働させる1つの機能
を搭載する。
③ 搭載するアプリケーションもDockerコンテナ
で動作させることを前提で開発する。
④ Dockerを採用する最大の目的は、サービス提
供時間の短縮と運用の自動化である。
- 25. Copyright © 2016 TIS Inc. All rights reserved.
アジェンダ
1. 開発環境の事例
① パッケージの保守開発環境(Works Applications社)
2. 本番環境の事例
① 料理レシピ情報サイト運用(クックパット社)
② 大規模コマースサイト運用(Shopify社)
③ 研究機関の大規模バッチ運用 (国立情報学研究所)
3. Dockerの本番活用イメージ
① Webサイト環境イメージ
② バッチ環境イメージ
25
- 27. Copyright © 2016 TIS Inc. All rights reserved.
①Webサイト環境
27
セッション層
アプリケーション層
永続データ層
- 28. Copyright © 2016 TIS Inc. All rights reserved.
②バッチ環境イメージ
28
対象データの分割とコンテナの分散配置が肝
- 29. Copyright © 2016 TIS Inc. All rights reserved.
②バッチ環境イメージ
29
東京工業大学 寛本英之先生 論文「科学技術計算における効率の良い複数拠点利用とそれを実現する
ユーザ駆動型・拠点協調フレームワークの開発と検証」より引用
https://jhpcn-kyoten.itc.u-tokyo.ac.jp/ja/docH27/FinalRep/jh150042-MD03_FinalRep.pdf
◆Docker環境でも適用できそうなバッチの実装
複数のNodeに対して
全てのバッチ処理を要
求しておく
- 30. Copyright © 2016 TIS Inc. All rights reserved.
②バッチ環境イメージ
30
別nodeで処理が開始
されたJOBはキャンセ
ルする。
- 31. Copyright © 2016 TIS Inc. All rights reserved.
まとめ:Dockerの本番活用に必要なもの
Dockerを活用した本番環境を稼働、運用する為には
『Docker環境に最適化されたアプリケーション
+運用フレームワーク製品の開発』が必要
31
企業間の連携だけではなく、Dockerの活用についての知
見も実績も豊富な大学・研究機関との連携も行いたい
http://www.iic.hokudai.ac.jp/kyodo_kenkyu/cloud-week-2016/