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.

RANCHERを使ったDev(Ops)

2,316 views

Published on

2016/12/08 Rancher Meetup Tokyo #2での、藤原の講演資料になります

Published in: Technology
  • Login to see the comments

RANCHERを使ったDev(Ops)

  1. 1. を使ったDev(Ops) 1(C) Recruit Technologies Co.,Ltd. All rights reserved. 株式会社リクルートテクノロジーズ IS統括部IS2部ISG  藤原涼⾺馬
  2. 2. ⽬目次 ⾃自⼰己紹介 リクルートテクノロジーズについて プロジェクトの概要 Docker利利⽤用によるメリット Rancherの活⽤用 まとめ 2(C) Recruit Technologies Co.,Ltd. All rights reserved.
  3. 3. ⾃自⼰己紹介 名前:                藤原涼⾺馬 所属:              株式会社リクルートテクノロジーズ       IS統括部  IS2部  ISG 現在の担当:              新規サービスインフラ構築担当  +  α Docker歴:              6ヶ⽉月くらい 3(C) Recruit Technologies Co.,Ltd. All rights reserved.
  4. 4. リクルートテクノロジーズとは 4(C) Recruit Technologies Co.,Ltd. All rights reserved.
  5. 5. リクルートテクノロジーズの役割 5(C) Recruit Technologies Co.,Ltd. All rights reserved. 開拓拓 実装・展開活⽤用・進化 「開拓」「実装・展開」を経た「活用・進化」で リクルートの各種ビジネスにおける競争優位の確立・ 利益への貢献を果たす
  6. 6. 登壇の経緯 https://www.amazon.co.jp/dp/B01M4KNOFM/ref=dp-‐‑‒kindle-‐‑‒redirect?encoding=UTF8&btkr=1 6(C) Recruit Technologies Co.,Ltd. All rights reserved. 現在開発進行中の プロジェクト でRancherを利用 + 著者が上司
  7. 7. 注意 Rancherを使ったDevOpsと記載してはいますが、システム⾃自体は開発中な のでほぼDevの話となります。(Opsにも⽣生かせる部分は多々ありますが) 7(C) Recruit Technologies Co.,Ltd. All rights reserved.
  8. 8. プロジェクトの概要 リクルートの運営するwebサービスの再構築に伴い技術的なチャレンジ実施 (インフラ⾯面のチャレンジ) •  コンテナ仮想化技術を⽤用いた開発アジリティの向上 (アプリ⾯面のチャレンジ) •  React  +  Reduxを中⼼心としたuniversal  JSを⽤用いたUX改善 8(C) Recruit Technologies Co.,Ltd. All rights reserved. * アプリ面の概要については、 http://yosuke-furukawa.hatenablog.com/entry/2016/12/01/175446 システムの主な構成要素
  9. 9. Docker利利⽤用によるメリット 9(C) Recruit Technologies Co.,Ltd. All rights reserved.
  10. 10. Dockerに利利⽤用によるメリット 1.  環境のビルド  &  デプロイの容易易化・⾼高頻度度化 2.  内部DNS提供による環境間差異異の削減  (Swarm  mode) 3.  動的なスケールの変更更(Swarm  mode) 4.  可⽤用性の向上(Swarm  mode) 10(C) Recruit Technologies Co.,Ltd. All rights reserved. 時間の都合上、今回は1のみをここでは話します。
  11. 11. 環境のビルド  &  デプロイの容易易化・⾼高頻度度化  (1/2) コンテナを利利⽤用することでビルド  &  デプロイが容易易になり、アプリケーショ ン実⾏行行環境の⼊入れ替えを容易易に実施できるようになった。 11(C) Recruit Technologies Co.,Ltd. All rights reserved. 旧 新 ①Masterにコードをマージ ② Jenkinsでリポジトリ の変更を検知 ③ アプリケーション をごっそり入れ替え ビルド & デプロイ 入れ替えに伴うダウンダイムはおおよそ1回あたり 1 min程度 (ダウンタイム考慮なしで設計してこの程度、改善入れると0にできそう)
  12. 12. 環境のビルド  &  デプロイの容易易化・⾼高頻度度化  (2/2) 結果として開発環境にて品質改善サイクルをかなり⾼高速に回すことができている。 12(C) Recruit Technologies Co.,Ltd. All rights reserved. バグ検知 コード改修 デプロイ再テスト 10  deploys/day1時間に1回くらい
  13. 13. Rancherの活⽤用 13(C) Recruit Technologies Co.,Ltd. All rights reserved.
  14. 14. Rancher利利⽤用によるメリット 1.  開発環境ログ閲覧の容易易化 2.  コンテナ環境全体のバージョン管理理* 3.  Docker操作の監査ログ取得 *  Rancherを利利⽤用している他プロジェクトでのヒアリング結果 14(C) Recruit Technologies Co.,Ltd. All rights reserved.
  15. 15. Rancherの使い途について 1.  開発環境ログ閲覧の容易易化 15(C) Recruit Technologies Co.,Ltd. All rights reserved.
  16. 16. Dockerの課題 何をするにもsudo権限が必要 &  権限が分かれていない (dockerコマンド打てればコンテナ環境に対して何でもできてしまう) 16(C) Recruit Technologies Co.,Ltd. All rights reserved. インフラとアプリで担当が分かれており、保有する権限がことなる。 インフラエンジニア •  sudo権限は持っているので アプリログを閲覧可能 •  アプリのコード修正はできない アプリログはあまり理解できない アプリエンジニア •  アプリログは理解出来る。 エラー内容に応じてアプリコードを 修正できる。 •  sudo権限がないので アプリログを閲覧できない
  17. 17. Rancherを導⼊入することで解決 アプリエンジニア  sudo権限ない問題 Rancherを利利⽤用することでアプリエンジニアがsudo権限を持っていなくても dockerコンテナの持つ情報を確認できるようにする。 17(C) Recruit Technologies Co.,Ltd. All rights reserved. •  ログイン管理(LDAPなど) •  操作権限の管理 •  監査ログ管理 •  ログの閲覧 •  コンテナのコンソール操作 Rancherを経由することでDocker環境の操作のみに権限を縛ることができる。 さらに権限を詳細に管理理することで実⾏行行可能な操作も縛ることができる。
  18. 18. Rancherを使ったログの閲覧  (1/2) Rancherを使ってコンテナのログを閲覧できるようにすることで デバッグを効率率率化 18(C) Recruit Technologies Co.,Ltd. All rights reserved.
  19. 19. Rancherを使ったログの閲覧  (2/2) Rancher  CLI  を利利⽤用することでさらに利利便便性アップ GUIではgrepによる抽出やログの加⼯工が⾯面倒 Rancher  CLIを⽤用いることでgrepによるログ抽出、 加⼯工、分析をサーバにログインすることなく実⾏行行可能に。 19(C) Recruit Technologies Co.,Ltd. All rights reserved. ※使い方については前沸さんの発表 or 下記URL参照 http://qiita.com/RyoMa_0923/items/547ee25f17d23f649220 Googleで” Rancher CLI qiita”でもOK。
  20. 20. 2.  コンテナ環境全体のバージョン管理理 20(C) Recruit Technologies Co.,Ltd. All rights reserved.
  21. 21. スタックの利利⽤用 スタックを⽤用いることでコンテナ環境全体をバージョン管理理することができ る 21(C) Recruit Technologies Co.,Ltd. All rights reserved. アプリケーション ver  1.0 ミドルウェアA ver  1.0 ミドルウェアB ver  1.0 コンテナ環境 ver 1.0 アプリケーション ver  1.0 ミドルウェアA ver  1.2 ミドルウェアB ver  1.0 コンテナ環境 ver 1.2 アプリケーション ver  1.2 ミドルウェアA ver  1.2 ミドルウェアB ver  1.0 コンテナ環境 ver 1.4 どんな組み合わせで動作確認したのかを明示 & 再現できる
  22. 22. スタックの使い途 •  構成要素間のバージョン不不整合を回避できる •  動作検証済みのコンテナのセットを定義できる •  本番環境で発⽣生したトラブルの再現試験が容易易になる •  過去のバージョンの環境を容易易に再現できるので開発に使っている環境も短時間で検証 ⽤用環境に作り変えることができる。 22(C) Recruit Technologies Co.,Ltd. All rights reserved.
  23. 23. 3.  コンテナ環境の監査ログ取得 23(C) Recruit Technologies Co.,Ltd. All rights reserved.
  24. 24. コンテナ監査の監査ログ取得 Rancher経由でコンテナ環境に⾏行行われた処理理は監査ログが取得できる。 本番環境への導⼊入の障壁を下げることができる。 (誰がいつ何をやったかが容易易に把握できる) 24(C) Recruit Technologies Co.,Ltd. All rights reserved.
  25. 25. まとめ Dockerを利利⽤用するメリット •  環境のビルド  &  デプロイの⾼高頻度度化  =  品質改善サイクルの⾼高速化 Rancherを利利⽤用するメリット •  開発環境ログ閲覧・分析の容易易化      (ポリシー次第では本番環境も) •  コンテナ環境全体のバージョン管理理の実現 •  コンテナ操作の監査ログ取得 25(C) Recruit Technologies Co.,Ltd. All rights reserved. 他にも多くのメリット(もちろんデメリットも)がありますが、 他についてはこの後の懇親会にてお話しさせてください!! 正直なところ、Rancherをフルに使いこなせてはいませんが 導入することによるプラス効果は確実に得られています。
  26. 26. ご清聴有難うございました! 26(C) Recruit Technologies Co.,Ltd. All rights reserved.

×