$30 off During Our Annual Pro Sale. View Details »

運用と開発が同時並行で進んでいるRailsアプリケーションをDocker対応した事例について

gremito
November 15, 2019

 運用と開発が同時並行で進んでいるRailsアプリケーションをDocker対応した事例について

2019/11/15 WEBエンジニア勉強会 #15

gremito

November 15, 2019
Tweet

More Decks by gremito

Other Decks in Technology

Transcript

  1. 運用と開発が同時並行で進んでいる

    Railsアプリケーションを

    Docker対応した事例について

    2019/11/15
    WEBエンジニア勉強会 #15
    gremito

    View Slide

  2. 自己紹介
    ● 岩本 拓也
    ○ 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

    View Slide

  3. 八耐

    View Slide

  4. 八時間耐久制作会(会):八耐
    ● 8時間でモノ作りして発表して交流する会

    ● 2017年から東京でもはじめました!

    ● 約8年ほど参加・運営

    https://www.facebook.com/hachijikan/

    View Slide

  5. 八時間耐久制作会(会):八耐
    ● 8時間でモノ作りして発表して交流する会

    ● 2017年から東京でもはじめました!

    ● 約8年ほど参加・運営

    https://www.facebook.com/hachijikan/
    ご参加お待ちしておりますー!

    View Slide

  6. Podcast


    View Slide

  7. Podcast

    日頃からもの作りしている人と

    もの作りについて話し合う

    もの作りトークラジオ


    略して『ものラジ』!!


    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  13. Dockerとdocker-compose

    View Slide

  14. Dockerとdocker-compose
    Dockerfile
    docker-
    compose.yml

    View Slide

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

    View Slide

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

    View Slide

  17. Play Demo...


    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  21. ● 参考記事
    ○ 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

    View Slide

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

    View Slide

  23. 続きは懇親会で

    View Slide