クラウド&コンテナ活用で
DevOpsを加速させる!
大原和人
自己紹介
大原和人(やまと)
開発部技術基盤Gマネージャー
新卒入社5年目
好きな飲み物
ビールからのハイボールからのレモンサワー
好きな食べ物
ポテトサラダからの出汁巻き玉子からのハム
カツ
2
技術基盤G誕生の背景と
取り組み
3
背景
開発内製化から6~7年くらい
開発者増(約40名)
サービス(リポジトリ)増(約250)
まだまだ開発が追いつかない
人を増やす?
人を一気に増やすのは難しい
人を増やした分だけ開発量が上がらない
開発効率を上げたい
4
開発が遅くなる要因
レガシー化
バージョンが古くてモダンな開発が出来ない
密結合で気軽にバージョンアップ出来ない
手作業
手動でリリース
サーバに入ってtail&grep
5
開発が遅くなる要因
サイロ化
開発とインフラ部門が別
依頼待ちが発生する
意見が対立しやすい
6
技術基盤Gの誕生
メインタスクは開発&運用効率化
クラウド移行&DevOpsの推進
インフラGとガッチリ組んで進行
技術基盤Gは開発効率向上のための運用設計
それ以外(機械学習とか)もやっていきたい
7
クラウド&DevOpsの取り組み
クラウド(GCP)移行
運用削減&開発効率化が目的
コンテナ(Docker)移行
後ほど説明
CI (Wercker)
モニタリング基盤刷新(Google Stackdriver)
ログ調査基盤刷新(Google Stackdriver Logging +
BigQuery)
など 8
コンテナ(Docker)移行
9
クラウド移行時の要件
インフラへの依頼をできるだけ無くしたい
開発者の責任でバージョンアップ等していく
Chefは浸透しなかった・・・
継続的にバージョンアップできる仕組みにしたい
サービス、機能単位でサーバを分ける
サーバやデプロイの管理どうする?
運用を削減したい
サーバ管理、デプロイなど出来る限り自動化
10
コンテナが解決する課題
デプロイがシンプルになる
アプリケーションと動作環境のセット(コンテナ)
をただ運ぶだけ
再現性高い
開発者がDocker le書いて環境設定できる
構成がシンプルになる
1コンテナ1プロセス、軽量
疎結合になりバージョンアップ等しやすくなる
11
コンテナが解決する課題
強力なコンテナ管理ツール(Kubernetes)
デプロイ(rolling update/blue green)
負荷分散、オートスケール
自動復旧
IP割当、名前解決
12
コンテナ運用の考え方
インフラはコンテナの外側に責任を持つ
サイジング、クラスタ作成など
オートスケール等で手がかからないよう努める
開発者はコンテナの内側に責任を持つ
アプリケーションとその動作環境まで
バージョンアップ等も開発者主導で行う
リリースはWerckerで自動化し、開発者が責任
を持つ
13
コンテナをベースとしたCI
WerckerでBuild&Test→Image Push→Deploy
14
苦労した点
Dockerの良さを活かすための設計
1コンテナに色々詰め込みたくなっちゃう
Chefとのお別れ
細かい運用ルール(envやイメージの管理等)
Kubernetesの実運用事例が少ない
公式ドキュメント(英語)、サポート(フォーラム)
でカバー
開発者と運用者の意見の相違
15
まとめ
コンテナ移行により
デプロイ、構成がシンプルになる
運用が削減される
開発者と運用者の役割が本来的になる
レガシー化しづらくなる
16
まとめ
開発効率向上はサービスの成長のため
クラウド基盤をフル活用し、開発者が最大限価
値のある仕事に集中できるようにする
開発者と運用者で同じ方を向いて良い開発基盤
を作り上げていく
17
参考
クラウド開発徹底攻略
http://gihyo.jp/book/2016/978-4-7741-8095-3
WANTEDLY TECH BOOK
http://tatsu-zine.com/books/wantedly-tech-book
18

クラウド&コンテナ活用でDevOpsを加速させる!