ようへいの日々精進XP

よかろうもん

「FUKUOKA DevOps 勉強会 #2 Dockerを使った CI/CD」で Docker Compose のハンズオンをさせて頂いた&&参加メモ

tl;dr

以下の勉強会に参加して、Docker Compose のハンズオンをさせて頂いたり、@zembutsu さんによる貴重な基調講演を聞けたり、Fusic さんの Drone 導入、運用のお話、Nulab さんの Jenkins のスレーブ環境として Docker を運用しているお話等、内容の濃い勉強会だった。

peatix.com

参加された皆さん、登壇された皆さん、大変お疲れ様でした。有難うございました!


基調講演:Dockerライフサイクルの基礎 地雷を踏み抜けろ! @クリエーションライン前佛さん

@zembutsu さんによる貴重な基調講演。 (※資料は別の勉強会の資料を一時的に掲載させて頂いています→正式に資料がアップされたら差し替えます)

  • Docker のコンテナやイメージについて解りやすく丁寧に解説頂いて、改めて Docker の基礎を学び直すことが出来た
  • 資料はアップされ次第、転載させて頂きます

事例紹介

IDCF クラウドで辿る DevOps @オルターブース小島さん

  • IDCF クラウドの成長と共に変遷してきた DevOps ツールの紹介と事例の紹介
  • オフィシャルに出来ない(笑)ような濃いお話だった
  • IDCF の起動は確かに速いと思う

FusicにおけるDrone導入事例紹介 @Fusic 甲斐さん

  • CI 環境に Docker を使うことで有名な Drone オープンソース版を社内に導入されたお話
  • 従来は Jenkins を利用していたが、よくある Jenkins 運用の壁にぶち当たってしまったとのことで Drone の導入を検討されたとのこと
  • ある日突然 Drone を動かし始めて現在に至る
  • Drone 自体が Fusic さんの状況にマッチしていて、手軽に利用出来るという点を評価されているとのこと

ハンズオン

Docker Compose で Wordpress の Deploy @cloudpack 川原

  • 前フリ
  • ハンズオン資料

qiita.com

qiita.com

qiita.com

始めてのハンズオンでの登壇だったので、前フリとか進め方なので手探りの状態だったが、参加されている方々が真剣に取り組んでくださったおかげて滞りなくハンズオンを進めることが出来た(と思う)。皆さん、本当に有難うございました。

ただ、残念ながら VirtualBox を利用されている方への考慮不足があり、メモリ不足で WordPress 環境が起動しないというハプニング発生。事前の検証確認を徹底しなければと反省。


ということで

Docker について改めて勉強が必要だなと思った勉強会だったと同時に参加された皆さんがとても真剣にハンズオンに取り組んでくださっていて、本当に刺激になったし、満足出来る勉強になったと思う。


おまけ

以下、聴講メモ。

# FUKUOKA DevOps 勉強会 #2 Docker を使った CI / CD

## Dockerライフサイクルの基礎 地雷を踏み抜けろ!
### スピーカー
- 前佛さん (クリエーションライン株式会社)
### Docker ってなんだっけ
- アプリケーションを簡単に開発、移動、実行する為のプラットフォーム
- 開発者が簡単にアプリケーションを動かす環境を作る
- Docker Toolbox
- Docker Hub
- Docker Trusted Registry
### Docker コンテナ
- ホスト OS Kernel 機能を使い複数のルートファイルシステムを実行する
- 各ルートファイル・システムをコンテナと呼ぶ
- CPU / Memory / ネットワークリソースを持つ
- PID 1
- 各コンテナは隔離されている
### Docker イメージ
- イメージ・レイヤの集合体
- 親子関係がある
- 差分情報のみを記録
- 共通部分は共有する
- 一番下のにあるイメージはベースイメージ
- docker history
### Docker コンテナを起動すると...
- 書き込み可能なイメージレイヤが自動的に割当
- 隔離された環境(コンテナ)を起動
### docker rm / rmi
- rm = 書き込み可能なイメージレイヤーを削除する
- rmi = コンテナイメージを削除
### Copy on Write
- 重要(後で調べる)
### Docker ボリューム
### Dockerfile
- どのようなイメージにするかを指示する
- Dockerfile の一行、一行がイメージレイヤーになる
### 地雷を避けよう
- .dockerignore ファイルの活用 = 特定のファイルをイメージに追加しない
- 不要パッケージのインストールを避ける
- イメージレレイヤの数を減らす
- キャッシュの活用
### CMD / ENTRYPOINT
- デフォルトで実行するコマンドを ENTRYPOINT
- CMD は上書き可能
### ストレージドライバ
- Ubuntu = AUFS
- CentOS = Device Mapper(大量ファイルにアクセスする場合にはメモリを食う)
### ドキュメント
- docs.docker.jp
- Dockerfile リファレンス
- Dockerfile ベストプラクティス
### Docker Compose
### Docker Swarm
- Docker 互換 API
- Docker Compose との連携

## IDCFクラウドで辿るDevOps
### スピーカー
- 小島さん(オルターブース)
### 事例紹介
- IDCF 起動がチョッパヤ

## FusicにおけるDrone導入事例紹介
### スピーカー
- 甲斐さん(株式会社Fusic)
### Fusic の Devops の歴史
- 2 年前から Ansible や Capstrano
- CI ツールで Jenkis を導入したけど定着しなかった(設定が難しいと、Jekins 運用が大変)
### Drone.io
- Go で書かれてた CI ツール
- ビルド環境は Docker
- 等
### Drone 導入の経緯
- Jenkins ヤメタイ
- TravisCI くらい手軽にやりたい
### 導入の流れ
- ある日突然 Drone を動かし始める
- 2015/12 から運用開始
- 2016/04 から案件利用を開始、定着しつつある
### 使ってみてよかったところ
- プロジェクトへの導入が楽
- 設定を .drone.yml で簡単に書ける
- クリーンな環境で実行出来る
- 自動デプロイが便利
- Slack との連携
### まとめ
- Drone 設定容易
- CI ツールの利用が広がりそう
- CI ツール管理コストの低減