Masteries

技術的なことや仕事に関することを書いていきます.

YAPC::Okinawaで, 「Webサービスを監視するときに僕達が考えたこと」というトークをしました

トークを聞きに来て下さった皆様, ありがとうございました! 以下スライドです:

少なくともYAPCでは初めての40分トークで, しかも思っていた以上に人が来ていて, 終始あたふたしまくりでしたね. 発表していた自分のLAも危険な領域に突入していました...

そういう感じで, 後半ちょっと走り気味ではありましたが, とはいえ話したいと思っていたことは全部話せたので良かったです. 結構学生の方が聞きに来てくれていて, そういった方がこれからエンジニアとして活躍していくときに役立つような発表ができたら良いし, その中で, 既にエンジニアとして働いている方々に知見を提供できたり, そこから新しい意見を聞けたりできたらいいなー, と思っておりましたが, そういう感じで楽しんでいただけたのなら幸いです.

この後もB会場を中心にうろうろしている予定で, 懇親会にも参加しますので, 質問や感想などあれば是非直接話しかけてもらえると嬉しいです! (ツイートやブログエントリでも嬉しいです!). 沖縄はあいにくの大雨ですが, 引き続きYAPC::Okinawa楽しんでいきましょう〜!

YAPC::Okinawaで, 「Webサービスを監視するときに僕達が考えたこと」というトークをします

yapcjapan.org

YAPC::Okinawaで応募していたトークが採択されました! タイトルは, 「Webサービスを監視するときに僕達が考えたこと」です.

Webサービスを開発し, 運用していると, 様々な出来事が生じます. 何らかの要因によるリクエスト数の上昇があったり, サーバーやネットワークの疎通が急に止まったり, 或いは利用している外部サービスで障害が発生したり... そういった時に, サービスの異常事態にいち早く気付き, 迅速に対応するためには, Webサービスをしっかりと「監視」していくことが重要です.

本トークでは, Webサービスの「監視」と「通知」そして「対応」という3つの視点から, 「Webサービスを運用していく」ことについて考察します. その中で, 「監視」と「通知」を実現する道具として, 株式会社はてなが提供するサーバー監視SaaS「Mackerel」を題材とする予定です. また, 「はてなブログ」を題材とした, Mackerelを利用したWebサービス監視の実情などもお話出来ればと思っています.

具体的には, 以下のような話題が含まれる予定です:

- なぜ「監視」が必要なのか?
- サービスに這い寄る障害達
- 「監視」と「通知」と「対応」の車輪を回そう
- どこまで通知する? 〜狼少年にならないために〜
- Mackerelを活用したWebサービスの監視
- Webサービスの監視の現場 〜はてなブログの場合〜

このトークをきっかけに, 「Webサービスの監視」について, 皆さんと一緒に理解を深められると嬉しいです.

初心者向けの内容にしようと考えていて, "Webサービスの監視"について思いを馳せたことのない学生さんや, Webサービスの監視についての知見が欲しい/意見交換がしたいエンジニアを想定した内容になる... 予定です. はてなブログにおけるWebサービス監視の実例や, (機材を買えば)自宅で今すぐ初められる監視ライフといったお話も, できればと思っています.

それはそれとして沖縄情報もまとめておきました, YAPC::Okinawaに参加される方は参考にして下さい:

papix.hatenablog.jp

それでは, 3月3日にYAPC::Okinawaでお会いしましょう!

「mackerel-plugin-nature-remo」書いた

最近, いろいろあってNature Remoを購入しました.

nature.global

購入してから知ったのですが, Nature Remoは温度と湿度が測定出来るようになっていて(湿度は10%刻みの概算値ですが), これもちょうど最近公開されたAPIドキュメントを見ていたところ, Nature Remoで取得した温度と湿度を, API経由で取得出来ることがわかりました.

...というわけで, Goの勉強を兼ねて, Mackerelのプラグインにしてみました.

github.com

Goについてはまだまだ勉強中という感じでしたが, github.com/mackerelio/go-mackerel-pluginを使いつつ公式のドキュメントを見たり, あるいは既存のプラグインのコードを参考にしながら, 試行錯誤しつつ6時間くらいで完成できました.

...割といろいろ雑なので, Pull Requestいただけると幸いです.

できること

こういう感じで, Nature Remoから取得した温度と湿度をMackerelで可視化することができます. ちなみに複数のNature Remoを持っている場合は, 湿度と温度が1つのグラフでまとまって表示される... はずです(1つしか持っていないので試していない).

f:id:papix:20180222012530p:plain

ちなみにプラグイン本体は, GOOS=linux, GOARCH=mipsel でビルドして, Edge Router Xで動かしています.

papix.hatenablog.com

「アジャイルサムライ」読んだ

「SQLアンチパターン」を読み進めたい, と言っていたのだけれど, この季節寝る前に枕元で本を読むなら物理本よりも電子本(Kindle)の方が圧倒的に楽なので, ついつい電子本を読み進めてしまい... というわけで, こちらもまた以前安く販売されていたので買ったものの, 延々と放置してしまっていた, 「アジャイルサムライ」を読みました.

アジャイルサムライ−達人開発者への道−

アジャイルサムライ−達人開発者への道−

  • 作者: Jonathan Rasmusson,西村直人,角谷信太郎,近藤修平,角掛拓未
  • 出版社/メーカー: オーム社
  • 発売日: 2011/07/16
  • メディア: 単行本(ソフトカバー)
  • 購入: 42人 クリック: 1,991回
  • この商品を含むブログ (257件) を見る

前職時代, アジャイルに造詣の深い方が入社されて, プロダクト開発の中でアジャイルなやり方を試してみたり, 現職でもプロダクト開発の中でアジャイルのエッセンスを活用したりしていて, そういう"実践"から見たアジャイルは, 自分なりに咀嚼していたつもりです.

一方で, この「アジャイルサムライ」という本は, アジャイルなやり方について, "根本から"... というか, 「なぜアジャイルのような開発手法が登場してきたのか?」という"理論(思考)"的な部分から解説されていて, これまでに自分が咀嚼してきた内容を, 別の観点から補足してもらう... みたいな, そういった学びができた気がします.

文体もカジュアルだけれどカジュアル過ぎず, ユーモアもあって読みやすかったですし, 加えて文量もそんなにないので, シュッと読めました. 本の中では, アジャイルな開発のために活用される様々なアイデア, 手法が紹介されていますが, それらもチームの立ち上げ期から順を追って紹介されているので, 「自分だったらどうするだろう?」, 「今のチームだとどう活かせるだろう?」というイメージもしやすかったです. 加えて プロダクト開発の中で起こる様々なトラブルに対して, どのような対処が考えられるか紹介されていたのも良かったですね.

さっくりとアジャイルのエッセンスを体感してみたい方はもちろん, 既にチームにアジャイルマスターがいて, アジャイルなやり方に取り組んでいるけれど, なんとなくやっていてうまくいっているけれどもう少し理論的な(?)所を補足したい, という方にとっても, お手軽に読めてオススメだなーと思いました.

次こそは「SQLアンチパターン」... と思っていたけれど, 前述の理由(電子本の方が圧倒的に楽)で, 「高速スケーラブル検索エンジン ElasticSearch Server」を読み始めてしまった...

高速スケーラブル検索エンジン ElasticSearch Server (アスキー書籍)

高速スケーラブル検索エンジン ElasticSearch Server (アスキー書籍)

  • 作者: Rafal Kuc (lにストローク符号、cにアクサン・テギュ付く),Marek Rogozinski (nにアクサン・テギュ付く)
  • 出版社/メーカー: KADOKAWA / アスキー・メディアワークス
  • 発売日: 2014/03/25
  • メディア: Kindle版
  • この商品を含むブログ (3件) を見る

ただこれ, ElasticSearchの滅茶苦茶に古いバージョンの本なので, 程よく読み飛ばしつつサクッと読み切って, 次こそは「SQLアンチパターン」... と思いつつ, 「エラスティックリーダーシップ」も手に入ったので, そっちも消化したいんですよね...

エラスティックリーダーシップ ―自己組織化チームの育て方

エラスティックリーダーシップ ―自己組織化チームの育て方

...まあ, 最近程よくコンスタントに積んでいる本を消化できているので, 焦らず1冊ずつ読み解いていきたいと思います.

「Redis入門 インメモリKVSによる高速データ管理」読んだ

大抵のサービスでRedis入れているけれど, そんなにガッツリ理解しているわけではなかった(ライブラリがいい感じにやってくれるのに頼っていた)ので, とりあえず初手として「Redis入門 インメモリKVSによる高速データ管理」を読んでいました. 確かだいぶ前に, Kindleで電子書籍版が安く販売されていたので購入して積んでいた... 記憶があります...

Redis入門 インメモリKVSによる高速データ管理

Redis入門 インメモリKVSによる高速データ管理

中身としては, Redisの紹介や代表的な機能紹介をする「第1部 さあ始めよう」, そこから発展して様々な要求をRedisで解決していく「第2部 コアコンセプト」, RedisのスケーリングやLuaを利用する方法について書かれた「第3部 次の一歩」という, 3部構成の本になっています. 2013年に販売された本ということもあって, Redis 2.6(当時の最新版)がベースになっているけれど, とはいえRedisの得意/不得意な領域とか, それを活かしてどのような事が出来るか, というのを理解する点では「第1部 さあ初めよう」は結構有用でした.

一方「第2部 コアコンセプト」は, サンプルコードがPythonで書かれており, iPhone 7で読もうとすると異様に読みにくい(これはiPhone 7で読もうとした自分が悪いのですが, とにかくインデントがわかりにくかった...)のと, Redisの本というコンセプト的に仕方がない所もあるのでしょうが, 「全てをRedisで解決する!!!」というような内容になっていて, だいたい業務で使う時はRedisとMySQLなどのRDBMSを組み合わせて... というパターンが多いので, イメージがつきにくいというか, 若干オーバーテクノロジー(?)気味では, という印象がありました.

感想としては, 第1部はRedis初心者にとっては概要を掴めるので結構有用そう, それ以外はRedisに慣れてきて初めて活きてくる内容が多く, そういう意味でもしっかり読み込むというよりは, 目次を見て興味持った部分だけ読み進める程度で良さそう, という気持ちでした.

次は年末にちょっと読み始めて放置していた「SQLアンチパターン」を読み進めようと思っております...