Slide 1

Slide 1 text

運用と開発が同時並行で進んでいる
 Railsアプリケーションを
 Docker対応した事例について
 2019/11/15 WEBエンジニア勉強会 #15 gremito

Slide 2

Slide 2 text

自己紹介 ● 岩本 拓也 ○ gremito(@grem_ito) ● フリーランス エンジニア ○ 2017/5に中途入社したドリコムを 2019/7/12に退職 ■ ゲーム基盤・QAエンジニア ○ 現在、QAエンジニア / Unityインストラクター / CSM ● コミュニティ活動 ○ 八耐: 八時間耐久制作会(仮) ○ Podcast: ものラジ ○ UNIBOOK: 日本Androidの会 Unity部 ○ Unity Fukuoka ← 12/28(土) @EngineerCafe ○ Unity Developer Jobs ○ QAエンジニア勉強会 ← NEW 2

Slide 3

Slide 3 text

八耐

Slide 4

Slide 4 text

八時間耐久制作会(会):八耐 ● 8時間でモノ作りして発表して交流する会
 ● 2017年から東京でもはじめました!
 ● 約8年ほど参加・運営
 https://www.facebook.com/hachijikan/

Slide 5

Slide 5 text

八時間耐久制作会(会):八耐 ● 8時間でモノ作りして発表して交流する会
 ● 2017年から東京でもはじめました!
 ● 約8年ほど参加・運営
 https://www.facebook.com/hachijikan/ ご参加お待ちしておりますー!

Slide 6

Slide 6 text

Podcast


Slide 7

Slide 7 text

Podcast
 日頃からもの作りしている人と
 もの作りについて話し合う
 もの作りトークラジオ
 
 略して『ものラジ』!!


Slide 8

Slide 8 text

https://monorazi.hateblo.jp/ https://soundcloud.com/monorazi

Slide 9

Slide 9 text

https://monorazi.hateblo.jp/ https://soundcloud.com/monorazi 視聴してくれると嬉しいです!>< もの作りトークをしたい方 ゲストに出たい方 是非お待ちしてます!!

Slide 10

Slide 10 text

アジェンダ ● Docker化のメリットとデメリット ● Dockerとdocker-compose ● Docker 入門 ● Docker化の落とし穴と沼 ● まとめ

Slide 11

Slide 11 text

Docker化のメリットとデメリット ➢ メリット ○ サーバ環境が統一できる ○ メンテナンスしやすい ○ 一回の作業で全Docker環境に適応できる ○ 開発からデプロイまでのバリューストリーム がスムーズになる ➢ デメリット ○ 本番(=STGも)では採用しずらい ○ Windowsユーザーはさらに一苦労 ★ トレードオフ ○ 管理コストを下げられる ⇔ 学習コストがかかる ○ 開発メンバー全員のスキルアップ ⇔ 学習コストがかかる

Slide 12

Slide 12 text

Docker化のメリットとデメリット ➢ メリット ○ サーバ環境が統一できる ○ メンテナンスしやすい ○ 一回の作業で全Docker環境に適応できる ○ 開発からデプロイまでのバリューストリーム がスムーズになる ➢ デメリット ○ 本番(=STGも)では採用しずらい ○ Windowsユーザーはさらに一苦労 ★ トレードオフ ○ 管理コストを下げられる ⇔ 学習コストがかかる ○ 開発メンバー全員のスキルアップ ⇔ 学習コストがかかる 【今回の目的について】 1. ローカル環境統一化 (※ただし新規入場者には今まで通り環境構築をやってもらう) 2. 容易に検証できる環境を手に入れる

Slide 13

Slide 13 text

Dockerとdocker-compose

Slide 14

Slide 14 text

Dockerとdocker-compose Dockerfile docker- compose.yml

Slide 15

Slide 15 text

Docker 入門 https://docs.docker.com/compose/rails/

Slide 16

Slide 16 text

Docker 入門 ● 最初は0から環境を作ると覚えやすい ● Quickstar: Compose and Rails ○ Dcokerfile ○ docker-compose.yml ○ Gemfile ○ Gemfile.lock ○ entrypoint.sh

Slide 17

Slide 17 text

Play Demo...


Slide 18

Slide 18 text

Docker 入門 https://github.com/gremito/docker_for_rails

Slide 19

Slide 19 text

Docker 入門 https://github.com/gremito/docker_for_rails

Slide 20

Slide 20 text

Docker化の落とし穴と沼 1. githubや独自ドメインなどからインストールする必要があるGemについて 2. アプリと連携している別アプリやモジュールなどのコンテナー化 3. バージョンを合わせられないときがある 4. シェルスクリプトの作成 5. curl: (7) Failed to connect to 127.0.0.1 port 9200: Connection refused 6. config周りの整備

Slide 21

Slide 21 text

● 参考記事 ○ Parallel Selenium Test With Docker ○ コンテナ時代のDevOps 〜Azure Web Apps for Containers + Docker + Jenkins + SeleniumでイマドキのCI/CDをやってみる [理論編]〜 ○ How we used Docker to deploy schibsted.pl ○ 事例から考えるDockerの本番利用に必要なこと ○ 開発、リリース、運用のサイクルを回す――アメブロのフロントエンドにおけるモダンな DevOps環境作り ○ Steps in the outer-loop DevOps workflow for a Docker application ○ 業務アプリ開発者のための、コンテナ仮想化ツールDockerをつかったインフラ構築ことはじめ ○ CI/CD: Using GitLab + Docker + Ansible ○ Angular Continuous Delivery / Deployment with gitlab-ci, stage on commit and prod on git-tag ○ ...etc

Slide 22

Slide 22 text

まとめ ● Docker for RailsApp!! ● but… ○ Gemfile / Gemfile.lock ○ Config ○ Shell ○ Test ○ CI ○ ...etc

Slide 23

Slide 23 text

続きは懇親会で