radioc@?

レディオキャットハテナ

【勉強会メモ】MonotaRO TechTalk #5「Docker」

www.kokuchpro.com

日時:2017年8月8日(火) 19:30〜21:30 場所:株式会社MonotaRO 本社

①Rancherで開発、リリース、運用のサイクルを回す

※例によって遅刻してしまったため途中からのメモになります。

発表者:Rancher Labs 新藤洋介氏

www.rancher.co.jp

DevOpsとDockerとマイクロサービスでイノベーション

各社の事例

Rancherについて

  • Docker上でコンテナ管理するツール
  • RancherサーバとRancherエージェント
  • インフラは何でも良い

情報収集:

AWSでDockerを運用するためのマネージドサービスたち

発表者:金谷 敦志氏 @todogzm

docs.google.com

会場アンケート

  • Docker使っている…半分くらい
  • AWSを使っている…3/1くらい

モノタローのDocker運用範囲

  • データ分析の基盤構築
  • 開発環境構築
  • ツールの検証とテスト運用

基本的にAWSを使用、それ以外のツールは使われていない

  • ビルド手動
  • デプロイ手動
  • デプロイメントパイプライン⇒×

⇒Docker運用を快適にするためにマネジメントサービスを活用する

1.Develop

AWS CodeCommit

  • Gitのリポジトリ管理
  • PR機能は無い
  • BitBucket⇒CodeBuildでの必要性

2.Build

CodeBuild

  • クラウド内でコードをビルド/テストできる
  • ビルドサーバ不要
  • Dockerイメージを含む各種言語のコードビルド
  • buildspec.yml を書いてビルドする(またはコマンド指定)
  • ビルドに特化
  • ビルドトリガーはもたない(WebHookがきてビルドみたいなことはできない)
  • Dockerイメージのビルドは遅め
  • ビルドサーバを管理しなくていい

3.Package

ECR(EC2 Container Registry)

  • Dockerイメージ管理
  • DockerHubと比較して
    • イメージ管理のみ
    • 安定している

4.Build〜Test

CodePipeline

  • 継続的デリバリーを実現
  • ビルドトリガー機能
  • アクションと成果物の管理
  • 並列処理・やり直しも簡単
    • ステージ単位
      • 大まかな処理
      • リトライの単位
    • ステージ内にアクションを設定
  • Jenkinsと比較
    • デプロイメントパイプラインに特化
    • パイプライン管理サーバのメンテナンスをしなくていい

5.Deploy/Upgrade

ECS(EC2 Container Service)

  • コンテナ管理
  • クラスタリング構成の管理を吸収
  • ECSを理解するキーワード
    • タスク
      • コンテナを束ねる
      • タスク定義でリビジョン管理
    • サービス
      • どのリビジョンのタスクを何個動かすか
    • クラスタ
  • ブルーグリーンデプロイメント

6.Operate

CloudWatch

  • AWSリソースやログのモニタリング
  • アラート送信

Docker開発ワークフロー

  • 開発環境…ブランチごとにCI
  • リリース方法⇒マージとともにリリース
  • 環境の調達
    • Cloud Formationを使うと捗る