DevelopersのためのSonicGardenで実践しているシステム運用での11の常識...

Post on 28-May-2015

2.424 views 4 download

description

SonicGarden Study #06 で利用したスライド資料です。 今回のテーマは"運用"。 ソニックガーデンではたくさんのサービスを管理・運用しています。 その取組の中で基礎的なことから、他社とはちょっと違う考え方/仕組みなどについて11回の連載で紹介したいと思います。今回はその第1回で監視についてです。 過去の勉強会内容を確認するには以下にアクセス! http://sonicgarden.doorkeeper.jp/

Transcript of DevelopersのためのSonicGardenで実践しているシステム運用での11の常識...

SonicGardenで実践している

安達 輝雄 (Teruo Adachi)

自己紹介

安達 輝雄 (Teruo Adachi)

昔はバリバリのインフラ屋。今は開発からインフラまで幅広く対応。自称フルスタックエンジニア

福岡出身の独身エンジニア 30歳

創業メンバー

さっそく弟子へ質問。

システム運用というと

何を思い浮かべる?

”サービスを安定稼働させる”

ための取り組み全般

一般的 には...

安定稼働させるためには何をすればよい?

監視

サービス監視特定のURLにアクセスして応答があるかを確認問題があればメンバーに通知

アクセス不可を検出して早く復旧させることが目的

監視サーバ

アプリケーションサーバ

URL監視

ホスト監視

利用者

本当にこれで大丈夫?

n 監視サーバが落ちても気づくように

n 同一クラウドからの監視にならないように ※ユーザの多い地域からリクエスト

障害に気づけない事態を回避

監視サーバ(国内)

アプリケーションサーバ

URL監視

ホスト監視

監視サーバ(外国)

サブ監視サーバ

Availability monitoring

早く復旧させるには

n 複数台構成にする

n Opsworks や AutoScale などの

仕組みに乗っかる

n … etc

プロセス監視特定のプロセスが起動しているかを確認

想定外のプロセス異常終了を検知して早く復旧することが目的

Linux

Web ServerApacheNginx

Mail ServerPostfixSendmail

RDBMSMySQLPostgresql

Otherscrondrsyslogd…

番犬が監視

本当にこれで大丈夫?

サーバ起動時の自動起動(systemd services)も忘れずに

番犬は異常検出時に任意のコマンドを実行して

プロセス再開の仕組みを提供

自動復旧!

リソース監視サーバリソースの状況をモニタリング Disk / CPU / Memory / Network

閾値に近づいていたらアラート

異常状態に早く気づくことが目的

本当にこれで大丈夫?

これと言ってない。。。

パフォーマンス監視アプリケーションやミドルウェア等の状況を監視ボトルネック解消のための情報を把握

低下に気づき、改善することが目的

本当にこれで大丈夫?

ボトルネックはわかったけど、どうやって解消すればいい?

気合!?

アプリケーションのパフォーマンス改善

NewRelicは本番環境の計測だけでなく開発においても便利!

http://localhost:3000/newrelic

ミドルウェアのパフォーマンス改善

基本的には Munin で取得しているリソース状況よりボトルネックを判断

基本的には Munin で取得しているリソース状況よりボトルネックを判断

ボトルネック改善に時間がかかるなら...

基本的には Munin で取得しているリソース状況よりボトルネックを判断

ボトルネック改善に時間がかかるなら...

n EC2インスタンス スケールアップ / スケールアウト

n EBS IOPSを利用

インフラコストも年々低下

エラー監視アプリケーションエラーを検出して通知

いち早く発生したエラーに気づき、不具合修正することが目的

本当にこれで大丈夫?

同一構成のstaging環境を準備し、エラーの再現性/リリース前チェックを実施

http://staging.app.com

本番APサーバ

利用者

本番DBサーバ

StagingAPサーバ StagingDBサーバ

M/Wのバージョンも統一

http://production.app.com

サーバスペックは最小限に

バッチ処理などのエラーハンドリングも

お忘れなく

ここからは世間ではあまり聞かない監視項目

キュー監視タスクが溜まっていないかをチェック・DelayedJob / Rescue / sidekiq・Postfix Mail queue

バックアップデータ監視データのバックアップがリモートに保存されていることを確認

他にも...

BackupsのsnapshotをS3に転送する機能 on Heroku

n 実データのフルバックアップ (tar.gz / zip)

n インスタンスのAMI

n Data領域のEBS snapshot

バックアップの種類はさまざま

これら全てを監視!!

AWS

監視で利用しているツールのまとめ

サービス監視 Nagios / NewRelic

プロセス監視 Monit

リソース監視 Munin / Monit

パフォーマンス監視 NewRelic / Munin

エラー監視 AirBrake / Bugsnag / PaperTrail

バックアップ監視 自社ツール

http://blog.mah-lab.com/2013/04/12/sonicgarden-heroku-2013/

プラットフォーム別の監視項目

こんな感じでサービスを安定稼働させるための

取り組みを実施してます

当たり前すぎ?当たり前を疎かにすると

痛い目に遭うかも!?

”サービスを安定稼働させる”ための取り組み全般

一般的 には...

と言いましたが...

”サービスを進化させつつ安定稼働させる”ための取り組み全般

SonicGarden では...

なのです。

“進化させつつ”を

実現するために

Developers の取り組みは

を実施するのが当たり前。

n ソースコードのリファクタリング

n フレームワークのバージョンアップ

Operationsでも

をするのが当たり前??

n システム構成のリファクタリング

n OSのバージョンアップ

システム構成を変化させるのはリスクが高くて嫌だ・・・

この不安を取り除くために

serverspec

残念。お時間です。

続きは次回・・・

今日のまとめ

システム運用での11の常識

常識① 監視を怠るべからず

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