Contenu connexe Similaire à 『GMOプライベートDMP』の開発にあたって取り組んできた DevOps、更にその反省点と現在進行中のカイゼン事例の紹介 (20) 『GMOプライベートDMP』の開発にあたって取り組んできた DevOps、更にその反省点と現在進行中のカイゼン事例の紹介24. 24
• Docker 社が Go 言語で開発した、コンテ
ナ型の仮想環境を管理するためのツール
• Yelp, Spotify, Baidu, ebay …
• ハイパーバイザー型より軽量な仮想環境を
Linux カーネルの機能で実現
• Namespaces, CGroups, UnionFS…
Docker とは
26. 26
• Infrastructure as Code
• Dockerfile というコードで記述できる
• Immutable Infrastructure
• 状態を保持しない 使い捨て イメージ
• 設計思想として1コンテナ1サービス
27. 27
Dockerfile の記述例
FROM centos
MAINTAINER Tetsuo Yamabe
!
# パッケージのインストール
RUN yum groupinstall -y "Development Tools"
RUN yum --enablerepo=epel install -y rsyslog wget sudo
passwd openssh openssh-server openssh-clients…
!
# ユーザー管理
RUN groupadd web
RUN useradd -M -g web web
…
28. 28
• Infrastructure as Code
• Dockerfile というコードで記述できる
• Immutable Infrastructure
• 状態を保持しない 使い捨て イメージ
• 設計思想として1コンテナ1サービス
36. 36
…
RUN git pull
RUN git checkout develop
RUN git submodule init
RUN git submodule update
RUN php composer.phar self-update
RUN php composer.phar update
RUN npm install
RUN grunt
RUN php oil r install
…
39. 39
• Docker に限らず Vagrant や VirtualBox
を使う際に様々な箇所で躓きやすい。
• BIOS の設定、バージョン間差異など
• cygwin 地獄
• 開発環境整備コストの増加
40. Docker に関しては boot2docker の
インストーラ利用で敷居が下がる?
Windows Mac
VirtualBox VirtualBox
boot2docker (Linux) boot2docker (Linux)
コンテナ コンテナ コンテナ コンテナ
49. 49
• Chef や Puppet に並ぶ構成管理ツール。
• YAML で記述できる。
• SSH だけで良いクライアントレス方式。
• 柔軟なディレクトリ構成。
Ansible とは
52. 52
• Web / DB を分離して変更に強くなった。
• データの揮発を意識しなくて良くなった。
• Dockerfile に記述していた構成管理を
Ansible に担わせたことで、本番環境への
プロビジョニングが可能になった。
69. 69
• Vagrant や Serf の開発元の HasiCorp 社製。
• 様々な構成管理ツールと出力イメージに対応。
• Ansible の資産を Docker に再利用、など。
(※ 現在 docker 1.4 系以上だと docker builder x ansible
provisioner の組み合わせが正しく動作しない)
Packer とは