19
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

シーエー・アドバンスAdvent Calendar 2019

Day 8

システム運用をChatOpsからNoOpsでさらに効率化した話

Last updated at Posted at 2019-12-07

ChatOpsとNoOpsとは :question:

ChatOpsとは?

  • 「Chat」と「Ops」という2つのワードを掛け合わせて作られた造語
  • チャットサービス(Chat)をベースとして、システム運用(Ops)を行うという意味がある
  • みなさんご存知の SlackChatwork などがチャットサービスにあたります

NoOpsとは?

  • 運用のうれしくないことをなくす「No "Uncomfortable" Ops」のこと
  • システム運用そのものをなくしてしまう“No Ops” という意味で発言されることもある?

システム運用、監視について私が思うこと :thinking:

監視ツール、サービスって結構いっぱいある :thinking:

Zabbix, NewRelic, Mackerel, Prometheus, Nagios, Sensu...etc.

CloudWatch, Datadog, Stackdriver...etc.

なんだこれ、どれ使ったらいいの :question: ってなりません :question: :sweat_drops: この時に私が考えたこと :speech_balloon: :thinking:
どれも基本的にやってくれることってこんなことですよね :question:

  • モニタリング(Monitoring) :eyes:
  • ロギング(Logging)
  • リソース(CPU負荷、メモリ使用率)レポート :chart:
  • アラート(Notification) :alarm_clock:

・・・ん :question: アラートまではやってくれるけど、それで終わり :question: :sweat_smile:

アプリの設計にも同じこと言える

バッチ開発時、エラーはメール or Slackで通知後して終了ってなりがち :sweat:

え?じゃあアラート来たら家のパソコン開くの :question: もしくは会社行くの :question:

気持ちよく飲んでる時 :beers: とかすごい嫌じゃない :question:

可能なら自動 or リモートで簡単に対応したいですよね :exclamation: :question:

そこで ChatOps と NoOps :thumbsup:

まずはChatOpsからお話 :speaking_head:

Chatサービスをベースとして、システム運用(Ops)を行うことを実践してみました :exclamation:

以前に別の場所で話している資料があるので、こちらをご参照お願いします :exclamation: ぜひ読んでね :bow:

続いてNoOpsのお話 :speaking_head:

NoOps = 運用のうれしくないことをなくす(自動化)するってことと解釈し、実践してみました :thinking:

アプリの現在の設計が影響して、「定期的に○○しないといけない」とか、「エラー(もしくはアラート)が起きた時に何かしらのOpsをしないといけない」とかってことよくありますよね :question:

監視ツールからアラートがきた時に何かアクションできればいいはず :thinking:

通知後にアクションできるやついた :astonished:

それできるよ、そうCloudWatchさんならね(ちょっと古いですが・・・ :sweat_smile:) :wink:

実は皆さんも既に NoOps してるはず :eyes:

  • CPU負荷監視のアラートからのAutoScaling
  • SQS監視にて処理速度低下検知アラートからのAutoScaling
  • アラート時にLambda動かしてWEBサーバのプロセス再起動など

これだ :exclamation: これでNoOpsしよう :exclamation:

:arrow_forward: 今回のNoOps化したい課題

  • アプリケーションにて、S3からファイルのDL(download)を繰り返し、削除されないことでEC2のフルディスクによる障害が発生 :sweat_drops:
    • Slackへアラートがきたら手動対応を繰り返してた :cry:

:arrow_forward: 解決策

97c3784a-ee41-77ae-976b-f7f5c4cdfeef.png

:arrow_forward: 対応した結果

  • 毎朝、アラートが来てないか Slackを確認する手間もなくなり、ChatOpsでコマンド打つこともなくなったので、ChatOps -> NoOps化できた :exclamation: :exclamation: :exclamation:
  • アラートが発生しても自動で解決する状態ができた :thumbsup:

これで心置きなくお酒が飲めますね :beer: :wine_glass:

開発時、エラーが起きたらメール等での通知っていう設計もありですが

アラートのたびに会社行きたくないので自動復旧させるなら CloudWatch & Lambda でNoOpsかなーと思いました :thinking:

アプリちゃんと直すまで手動対応なやつは自動化しちゃおう :exclamation:

それでこそエンジニア・・・ですよね :question: :grin:

その仕組みが他のPJでも役にたつはず :stuck_out_tongue_closed_eyes:

まとめ

  • 導入する監視ツールと運用(Ops)はセットで考えよう :thinking:
    • アプリの設計も同じ :wink:
  • 運用時の手動対応をChatOpsで自動化すると会社行かなくていいしスマホ(Slack or Chatwork)で対応できるよ :thumbsup:
  • さらに、NoOps化すると会社行かなくていいし、自動障害対応できるよ

皆さんの Ops が少しでもハッピー :heart: になりますように :pray:

19
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?