サーバにログインしない・させない サービス運用 - amazon …...•...

33
サーバにログインしない・させない サービス運用 株式会社 Gunosy 小出 幸典

Upload: others

Post on 02-Oct-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: サーバにログインしない・させない サービス運用 - Amazon …...• ニュースキュレーションアプリ • 2011.09'メールサービスとして開始 •

サーバにログインしない・させないサービス運用

 

株式会社!Gunosy 小出!幸典

Page 2: サーバにログインしない・させない サービス運用 - Amazon …...• ニュースキュレーションアプリ • 2011.09'メールサービスとして開始 •

自己紹介• 小出"幸典"/"@koid

• 株式会社Gunosy"開発本部

• 後方支援系エンジニア

• たまにバッチ書いたりたまにAPI直したり

Page 3: サーバにログインしない・させない サービス運用 - Amazon …...• ニュースキュレーションアプリ • 2011.09'メールサービスとして開始 •

こんにちはGunosyです

Page 4: サーバにログインしない・させない サービス運用 - Amazon …...• ニュースキュレーションアプリ • 2011.09'メールサービスとして開始 •

Gunosyについて

• ニュースキュレーションアプリ

• 2011.09'メールサービスとして開始

• 2013.01'iOS版アプリリリース

• 2013.02'Android版アプリリリース

• 現在900万DL突破

Page 5: サーバにログインしない・させない サービス運用 - Amazon …...• ニュースキュレーションアプリ • 2011.09'メールサービスとして開始 •

やっていること

• ニュース配信

• 広告配信

• アドネットワーク

• プラットフォーム

Page 6: サーバにログインしない・させない サービス運用 - Amazon …...• ニュースキュレーションアプリ • 2011.09'メールサービスとして開始 •

エンジニアについて

• 現在26名

• おおよその守備範囲デザイン+フロントエンド:&3人クライアント+QA:&5人Web+API:&5人アド:&5人数値解析+コンテンツ:&5人インフラ:&1人その他SMっぽい人

Page 7: サーバにログインしない・させない サービス運用 - Amazon …...• ニュースキュレーションアプリ • 2011.09'メールサービスとして開始 •

Gunosyでよく使っているもの• 開発言語 "#API:#Golang

 "#パートナー様/広告主様向け管理画面:#Rails

 "#バッチ・内部向け管理画面:#Django#or#素のPython

• その他 "#バージョン管理:#GitHub

 "#構成管理/デプロイ:#Chef#(+AWS#OpsWorks)

Page 8: サーバにログインしない・させない サービス運用 - Amazon …...• ニュースキュレーションアプリ • 2011.09'メールサービスとして開始 •

開発の特徴• 小さい単位で作ってすぐ捨てる

• マイクロサービス的な

• 機能が増え過ぎたら分割

• メンテするよりリプレース

Page 9: サーバにログインしない・させない サービス運用 - Amazon …...• ニュースキュレーションアプリ • 2011.09'メールサービスとして開始 •

本題:開発生産性を上げるための取り組みサーバへの不要なログインをやめよう

Page 10: サーバにログインしない・させない サービス運用 - Amazon …...• ニュースキュレーションアプリ • 2011.09'メールサービスとして開始 •

ここから恥ずかしい話をします

Page 11: サーバにログインしない・させない サービス運用 - Amazon …...• ニュースキュレーションアプリ • 2011.09'メールサービスとして開始 •

サーバにログインされて困ること(ログイン自体が直接悪いわけではないですが…)

Page 12: サーバにログインしない・させない サービス運用 - Amazon …...• ニュースキュレーションアプリ • 2011.09'メールサービスとして開始 •

信頼できないビルド・デプロイ• 開発者の手元でビルド→アップロード

• サーバに入ってデプロイスクリプト実行

• それどこの断面なんだっけ?最新のmasterと断面合ってる?

• 今プロダクションに上がっているモノが信用できない

• 今ステージングに上がっているモノ、本当にテストしたい断面だっけ?

Page 13: サーバにログインしない・させない サービス運用 - Amazon …...• ニュースキュレーションアプリ • 2011.09'メールサービスとして開始 •

勝手に加えられる変更• 勝手に追加されるパッケージ

• サーバ追加/リプレースしようとしたら動かない

• 勝手に変更されるcrontab

• コメントアウトしたの誰?そして何故?

Page 14: サーバにログインしない・させない サービス運用 - Amazon …...• ニュースキュレーションアプリ • 2011.09'メールサービスとして開始 •

弊社、以前からChefを使っていました

Page 15: サーバにログインしない・させない サービス運用 - Amazon …...• ニュースキュレーションアプリ • 2011.09'メールサービスとして開始 •

「サーバとレシピの間に乖離がある」「レシピを追随させる必要がある」

Page 16: サーバにログインしない・させない サービス運用 - Amazon …...• ニュースキュレーションアプリ • 2011.09'メールサービスとして開始 •

えっ…

Page 17: サーバにログインしない・させない サービス運用 - Amazon …...• ニュースキュレーションアプリ • 2011.09'メールサービスとして開始 •

ログインして直接いじるのはやめましょう(切実)

Page 18: サーバにログインしない・させない サービス運用 - Amazon …...• ニュースキュレーションアプリ • 2011.09'メールサービスとして開始 •

アプリケーションのデプロイは信頼できるものである必要がある

Page 19: サーバにログインしない・させない サービス運用 - Amazon …...• ニュースキュレーションアプリ • 2011.09'メールサービスとして開始 •

信頼できないデプロイ• 事故のリスク

• 手戻りの発生

• エンジニアの時間的・精神的負担

Page 20: サーバにログインしない・させない サービス運用 - Amazon …...• ニュースキュレーションアプリ • 2011.09'メールサービスとして開始 •

継続的デリバリ• バージョン管理

• 継続的インテグレーション

• 継続的デプロイ

Page 21: サーバにログインしない・させない サービス運用 - Amazon …...• ニュースキュレーションアプリ • 2011.09'メールサービスとして開始 •

しかし• バージョン管理ツールを使えば良いというものではない

• CIツールを使えば良いというものではない

• デプロイツールを使えば良いというものではない全てを統合した一連のワークフローを作ることが重要

Page 22: サーバにログインしない・させない サービス運用 - Amazon …...• ニュースキュレーションアプリ • 2011.09'メールサービスとして開始 •

色々な辛い思いをして、現在

Page 23: サーバにログインしない・させない サービス運用 - Amazon …...• ニュースキュレーションアプリ • 2011.09'メールサービスとして開始 •

GitHubを中心とした開発・デプロイフロー• Service(Hookを利用し、各サービスを連携

• GitHub

• CircleCI

• AWS(OpsWorks

• GunosyでのOpsWorksの利用については下記

• h;ps://speakerdeck.com/koid/yokuwakaruCawsCopsworks

Page 24: サーバにログインしない・させない サービス運用 - Amazon …...• ニュースキュレーションアプリ • 2011.09'メールサービスとして開始 •

Mergeボタンに全てを集中させる

Page 25: サーバにログインしない・させない サービス運用 - Amazon …...• ニュースキュレーションアプリ • 2011.09'メールサービスとして開始 •

具体的に• 各ブランチをマージする度に自動でビルド・テスト・デプロイ

Page 26: サーバにログインしない・させない サービス運用 - Amazon …...• ニュースキュレーションアプリ • 2011.09'メールサービスとして開始 •

デプロイしたければPull$Requestを作る

Page 27: サーバにログインしない・させない サービス運用 - Amazon …...• ニュースキュレーションアプリ • 2011.09'メールサービスとして開始 •

余談)OpsWorksでもデプロイ履歴が追える

Page 28: サーバにログインしない・させない サービス運用 - Amazon …...• ニュースキュレーションアプリ • 2011.09'メールサービスとして開始 •

結果• Pull%Request%Driven%Deploy

• 全ての情報がGitHubに集約

• 見える化、ビルド・デプロイの効率化、事故の削減

• ワークフローがわかりやすくなった

Page 29: サーバにログインしない・させない サービス運用 - Amazon …...• ニュースキュレーションアプリ • 2011.09'メールサービスとして開始 •

よりサーバにログインしないために

Page 30: サーバにログインしない・させない サービス運用 - Amazon …...• ニュースキュレーションアプリ • 2011.09'メールサービスとして開始 •

どうしてもつきものなのが調査• ミドルウェアログ収集

• アプリケーションログ収集サーバにログインして調べますか?

Page 31: サーバにログインしない・させない サービス運用 - Amazon …...• ニュースキュレーションアプリ • 2011.09'メールサービスとして開始 •

ブラウザから全てのサーバのログを見られるように• OS/ミドルウェアログ収集

• papertrail

• アプリケーションログ収集

• airbrake.(errbit)

• kibana

Page 32: サーバにログインしない・させない サービス運用 - Amazon …...• ニュースキュレーションアプリ • 2011.09'メールサービスとして開始 •

サーバへの不要なログインはやめましょう

Page 33: サーバにログインしない・させない サービス運用 - Amazon …...• ニュースキュレーションアプリ • 2011.09'メールサービスとして開始 •

ご静聴ありがとうございました