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.

第22回 Cloudn(クラウド・エヌ)勉強会 「CloudnにおけるDockerを利用した開発環境管理」

2,158 views

Published on

2015年3月5日に開催しました、第22回 Cloudn(クラウド・エヌ)勉強会で、コガソフトウェア株式会社様にご講演いただいた内容です。コガソフトウェア様で提供している介護事業者様向けサービス「ケアサポーター」の開発では、Cloudn上に構築したVMにDockerを導入して運用をしております。
開発環境管理に関する課題を、Cloudn+Dockerを用いてどう解決したか、実例を含めご紹介させていただいております。

Published in: Technology

第22回 Cloudn(クラウド・エヌ)勉強会 「CloudnにおけるDockerを利用した開発環境管理」

  1. 1. Layoutbyorngjce223,CC-BY Cloud における Dockerを利用した開発環境管理 2015/3/5 コガソフトウェア株式会社 n
  2. 2. Layoutbyorngjce223,CC-BY アジェンダ ・自己紹介 ・ケアサポーターについて ・Dockerとは? ・ケアサポーター開発環境運用の流れ ・デモ:開発環境のアップデート ・評価と今後の目標 2
  3. 3. Layoutbyorngjce223,CC-BY 自己紹介 コガソフトウェア株式会社 (http://www.kogasoftware.com/) 3
  4. 4. Layoutbyorngjce223,CC-BY 自己紹介 4
  5. 5. Layoutbyorngjce223,CC-BY 自己紹介 5
  6. 6. Layoutbyorngjce223,CC-BY 自己紹介 6
  7. 7. Layoutbyorngjce223,CC-BY ケアサポーターについて 東日本リージョン VPC OpenNWタイプ VPC Subnet jp-e1a (現用) Monitoring (監視) VPC Subnet jp-e1b (待機) ObjectStorage (バックアップ保存) インターネット 本番環境 7
  8. 8. Layoutbyorngjce223,CC-BY ケアサポーターについて 東日本リージョン FLATタイプ jp-e1a インターネット 試験環境 Monitoring (監視) 8
  9. 9. Layoutbyorngjce223,CC-BY ケアサポーターについて ・開発環境管理の課題 ・共有の試験環境にインフラ変更を適宜取り込みたい…。 ・開発者のローカル環境は、インフラ含め最新の状態を いつでもすぐに欲しい…。 ・本番環境と同一の環境で開発、試験をしたい。 ・VM単位の管理だと台数が増えすぎる。 ⇒どうしよう!? 9
  10. 10. Layoutbyorngjce223,CC-BY Dockerとは? 10
  11. 11. Layoutbyorngjce223,CC-BY Dockerとは? Server Server HostOS HostOS Hypervisor Docker Engine GuestOS GuestOS Bins/Libs Bins/Libs App App Bins/Libs Bins/Libs App App VM Docker 11
  12. 12. Layoutbyorngjce223,CC-BY Dockerとは? ・できること ・Dockerイメージからのコンテナ作成 ・コンテナの実行と停止 ・Dockerイメージの作成と管理 ・Dockerfileの作成 ・Dockerレジストリの構築 ・Docker Hubの利用 12
  13. 13. Layoutbyorngjce223,CC-BY Dockerとは? ・メリット ・環境の構築/廃棄が迅速・容易に ・リソースの有効活用 ・環境情報のコード化と一元管理 ・アプリケーション開発者への親和性 ⇒継続的インテグレーションの達成 ⇒Immutable Infrastructureの達成 etc... 13
  14. 14. Layoutbyorngjce223,CC-BY ・ケアサポーター環境用 Dockerfile ① ベースイメージの取得 ② Apacheの導入 ③ openSSLの導入&鍵の設定 ④ phpの導入 ⑤ MySQLの導入 ⑥ アプリケーションのソースコード取得の導入 ⑦ アプリケーションのデプロイ ケアサポーター 開発環境運用の流れ 14
  15. 15. Layoutbyorngjce223,CC-BY ケアサポーター 開発環境運用の流れ 開発拠点 image image image registry DockerFile App Source 試験環境サーバ Gitサーバ Dockerレジストリサーバ ObjectStorage image 15
  16. 16. Layoutbyorngjce223,CC-BY ケアサポーター 開発環境運用の流れ 開発拠点 image image image registry DockerFile App Source 試験環境サーバ Gitサーバ Dockerレジストリサーバ ObjectStorage image ② ③ ④ ⑤ ① 16
  17. 17. Layoutbyorngjce223,CC-BY ケアサポーター 開発環境運用の流れ DockerFile Gitサーバ ① ② ① dockerfile取得~更新 # dockerfile取得 git pull (ユーザ)@(接続先):caresupport_docker.git -----Dockerfile編集内容----- # プロセス監視ツール[monit]導入(最後に追加) RUN yum install –y monit ADD files/monit_httpd.conf /etc/monit.d/httpd.conf ---------------------------- # dockerイメージ作成 docker build -t (接続先)/caresupport_test . # コンテナ起動 docker run -it (接続先)/caresupport_test ② dockerfile更新 # dockerfileのpush git push (ユーザ)@(接続先):caresupport_docker.git 17
  18. 18. Layoutbyorngjce223,CC-BY ケアサポーター 開発環境運用の流れ registry DockerFile App Source Gitサーバ Docker レジストリサーバ ObjectStorage image③ ④ ③④ Dockerイメージ最新化~レジストリ登録 (git hookスクリプト) # リポジトリからDockerfile取得 git merge # Dockerイメージ作成 docker build --rm -t (接続先)/caresupport_test . # Dockerレジストリにイメージを登録 docker push (接続先)/caresupport_test 18
  19. 19. Layoutbyorngjce223,CC-BY ケアサポーター 開発環境運用の流れ image image image registry DockerFile App Source 試験環境サーバ Gitサーバ Dockerレジストリサーバ ObjectStorage image ⑤ ⑤ 試験環境用コンテナ作成 (git hookスクリプト…下記処理をGitサーバからリモート実行) # Dockerイメージを取得 docker pull (接続先)/caresupport_test # 試験環境の旧コンテナを廃棄し、Dockerイメージから新コンテナを作成 docker stop $(sudo docker ps | grep (試験環境コンテナ名) | awk {'print $1(}) docker rm $(試験環境コンテナID) docker run --name="(試験環境コンテナ名)" -p 8080:443 -d (接続先)/caresupport_test 19
  20. 20. Layoutbyorngjce223,CC-BY ケアサポーター 開発環境運用の流れ 環境情報 Docker-cnt(コンテナ用サーバ) OS:CentOS release 6.6 (Final) Docker:version 1.4.1 Docker-registry(レジストリサーバ) OS:CentOS release 6.6 (Final) Docker-registry:stackbrew/registry 0.9.1 20
  21. 21. Layoutbyorngjce223,CC-BY ・ケアサポーター環境の更新 ① Dockerfileの取得⇒更新 ② DockerfileのGitリポジトリへのpush ③ Dockerイメージの作成 ④ Dockerレジストリへのコミット ⑤ Dockerイメージからのコンテナ作成 デモ 21
  22. 22. Layoutbyorngjce223,CC-BY 評価と今後の目標 ・VMによる環境管理との比較 ・コストメリット(少ないVMでリソースを最大限活用) ⇒土台として性能のよいVMを導入する場合は、 性能の低いVMを並べる場合とのコスト比較が重要。 ・環境構築の容易さ ⇒OSレベルからの構築が不要。 ⇒環境のスケーリングのしやすさ。 22
  23. 23. Layoutbyorngjce223,CC-BY 評価と今後の目標 ・今後やりたいこと ・本番環境における導入と継続的デリバリー ・ポータビリティを活かしたマルチクラウド 23
  24. 24. Layoutbyorngjce223,CC-BY ご清聴ありがとうございました! コガソフトウェア株式会社 http://www.kogasoftware.com/ TEL : 03-3833-0733 helpdesk@kogasoftware.com 24

×