Hatena Engineer Seminar #6 〜インフラ編〜 @ Tokyo #hatenatech に参加してきました
参加してきました。
はてなにおけるログ解析のこれまでとこれから
はてなのログ運用 これまでとこれから / Hatena Engineer Seminar #6 // Speaker Deck
はてなにおいて今どのように扱っていて、今後はどのように扱っていくのかの内容。
ログは最終的には3系統になっていて、「自社SSD(rsyslog)」「S3(Glacir) & Amazon EMR」「BigQuery」に投げて運用しているとのこと。そろそろrsyslogは辞めたいらしい。
はてな発のLTSVフォーマットを統一して利用していて、サーバ上ではそちらで取り扱い、アプリケーションログなどはembulkでTSVに変換してから投げ込んでるらしい(ちょっとつらそう)。
LTSVははてな由来のフォーマットです #hatenatech
— ゆううき (@y_uuk1) 2016年8月31日
質問は、以下。
- fluentdでひたすら配送していたらaggregatorで詰まらないか?
詰まるけど2重化してそれなりに、必要なログは複数経路用意して絶対落ちないようにしている
ログの欠損はどうしてるか
- 転送する時はどうしても欠損が発生するので、リアルタイムで書き込むか、アプリサーバ内のストレージに保持したりしている
ログ、解析すると分かる物があったり、エンジニア以外の人が見ると実は気づく物があったりして、色々な集計をして色々な媒体で見られるようになると便利そう。
はてなのサーバプロビジョニングの話
テント泊登山すごい #hatenatech
— why/橘和板 (@whywaita) 2016年8月31日
山ガチ勢とのこと、XiやauLTEが富士山頂で繋がるようになって久しいですが、山の上での障害対応も乙な物かもしれませんね。
へー今はさくらの専用サーバも使ってるのか #hatenatech
— why/橘和板 (@whywaita) 2016年8月31日
昔はpixivのように自作サーバ運用していた話が有名なはてなだけど、最近はさくらの専用サーバとかの運用も始まって自作サーバはほぼほぼ動いていないらしい。
Chef運用のスライドにしんどい事ばっかり書いてあってしぶい #hatenatech
— why/橘和板 (@whywaita) 2016年8月31日
「Chef学習が難しいって社会では叩かれている」 #hatenatech
— why/橘和板 (@whywaita) 2016年8月31日
Chef運用はどこもしんどそう。みんなしんどいのでItamaeなりAnsibleなり使っていきましょう。
MySQL運用とらぶるすとーり〜2
2つあって、「MySQLテーブルのRowsの値が見た事ある数字になってた」「レプリケーションで使ってるbinlogが良い感じに死んでた」の2つで凄かった。
The table 'relword' is full #hatenatech
— sue445 (@sue445) 2016年8月31日
"is full... is full!?" #hatenatech
— why/橘和板 (@whywaita) 2016年8月31日
不要データ削除しても余命1ヶ月(;´Д`) #hatenatech
— sue445 (@sue445) 2016年8月31日
古いMySQLの中でもディストリビューションビルドに頼らず独自ビルドしている場合などは、当時は公式リポジトリ界隈で当たり前のように使われていたオプションが独自ビルドしているせいで足りないみたいな事があるようで危険。MySQLに限らず気を付けた方が良いな〜と感じた。(そもそも独自ビルドは色々しんどい)
これMySQL 4.0のソースコードみて確認しました #hatenatech
— ゆううき (@y_uuk1) 2016年8月31日
ソースコードを追って確認するのは確実性があるのでエンジニア人生には確実に必要な事だと思っている。
4.0 -> 5.0 -> 5.1 レプリケーションの図、異常に既視感がある #hatenatech
— れい (Yoshikawa Ryota) (@rrreeeyyy) 2016年8月31日
若手インフラの MySQL 4 バージョンアップ、若手Webエンジニアの Rails 3 バージョンアップ、若手フロントエンドエンジニアの jQuery バージョンアップ
— SHIBATA Hiroshi (@hsbt) 2016年8月31日
巨大ミドルウェアのバージョンアップにおいては近年知見が溜まりつつあり、更に可能な限り楽をしようと思うと大体各社同じような経験をするエンジニアが多くなるようだ。
Master DB が Disk full になったタイミングで bin-log に中途半端に書き込んでしまって結果壊れる、とても懐かしい :innocent: #hatenatech
— シン・おっくん (@hfm) 2016年8月31日
binlogをhexdumpで読む話 #hatenatech
— えのきちゃん (@k_enoki) 2016年8月31日
binlogの途中破損怖すぎるけど間違いなくあり得る話なので注意していきたい。個人的な感覚だとMySQL Replicationは凄い繊細に成り立っていると思っている。
ちなみにmysql bin-logのhexdump結果が見やすくて驚いた。意外とバイナリもちゃんとしてるんだなあ。
アプリケーションエンジニアからみたはてなのインフラの話
アプリエンジニアがサーバの構成変えたい時はChefのリポジトリにPR出せば良いの便利だし分かりやすいし良いな〜 #hatenatech
— why/橘和板 (@whywaita) 2016年8月31日
これ凄い良い話だと思っていて、一昔前はどういうアプリケーション動作構造になっているかアプリケーションエンジニアには分かっていない事があるので mkdir
コマンドを利用するだけでもインフラエンジニアに依頼して1日かかっていたみたいな話をたまに聞くのだけど、コード化されているとアプリエンジニアでも比較的見られるようになるし、PRを使う事で本番環境でアプリエンジニアが勝手にやって死亡みたいな事も防げて良い体勢だと思う。
ただこれだと、「今すぐにやって欲しい」みたいな時にもPR作ってマージして、みたいなプロセスが必要なのでその辺はどうカバーしているのか気になる。
不安なSQLをアプリで書くときはMySQLのlockが好きな人に頼むとレビューしてくれたり、そもそも呼ばなくても勝手にマサカリが飛んでくる #hatenatech
— why/橘和板 (@whywaita) 2016年8月31日
これは上記のMySQLの話をしていたichirinさんがマサカリを投げてくれるらしい。便利。
東京にいながら仕事のほとんどを京都のエンジニアと一緒にしている私のリモートワークの話
はてな東京オフィスのWebオペレーションエンジニアは1人なのか #hatenatech
— シン・おっくん (@hfm) 2016年8月31日
チームリーダだけ東京にいるw #hatenatech
— シン・おっくん (@hfm) 2016年8月31日
1人だけOpsエンジニアが東京に居るらしく凄い。会社としては京都に行って貰った方が効率的であるのは間違いないと思うのだけど、これが許容されている会社は本当に良い会社なのだろうなと思う。
雑談しながら日報書くの良いかもしれない #hatenatech
— why/橘和板 (@whywaita) 2016年8月31日
気軽に会話出来る場があれば基本的にチームとしての距離は近くなるらしい。強制的にslack callを使うのはかなり良い取り組みだな〜と感じる。
常にGoogle Hangoutするのどうなんだろ、拡張オフィス的な扱いになって良さそうに見えるけど実際効果出てくるのかしら #hatenatech
— why/橘和板 (@whywaita) 2016年8月31日
これどうなのか懇親会で聞いた所、気軽に手を振り合ったりする事が出来るので便利らしい。京都オフィスに行ったときに真新しさを感じないのが逆に困るとのこと。
セールスエンジニアを支えそうな技術
mackerel使ってたら気がついたらセールスエンジニアになってた、最高のキャリアっぽい #hatenatech
— sue445 (@sue445) 2016年8月31日
セールスとしてMackerelの良さを広めるエバンジェリスト的な立場とのこと。顧客からのお問い合わせ対応したりしてるらしい。
ほぼ全ての問い合わせに対して同じ環境で再現検証 #hatenatech
— sue445 (@sue445) 2016年8月31日
同じ環境を整える為に趣味サーバを用いていて、その趣味サーバも完全にコード化する事で定期的にインスタンス再起動して綺麗な状態を保持しているとのこと。
無限の開発力がセールスエンジニアには必要 #hatenatech
— why/橘和板 (@whywaita) 2016年8月31日
色々な利用要件があるので、お客様の要望に応えるために無限の技術力が必要らしい。求人は重要ですね。
懇親会
色々な話をさせて頂きました。
結構しぶめの話だったりこれからどうやっていくかみたいな事を話していたり、社内の悩み事を他社の方に相談してみたりと中々良い知見が集まってかなり良かったです。
:pizza: :beers: :ok_woman:
まとめ
とにかく株式会社はてなには人が足りてないんだろうなという印象を持った。約100人ほど?であれだけのサービスを支えているはてなの方々の技術力は本当に素晴らしい。
ツイート一覧はこちらからどうぞ。
余談
し、しまったァー!はてなのイベントに参加しようと思ったら、日時は明日だし、場所は東京だったァー! (@ 株式会社 はてな in 京都市中京区, 京都府 w/ @icchyr) https://t.co/oAlWQZzN9o pic.twitter.com/F07hZKNBMN
— why/橘和板 (@whywaita) 2016年8月30日
こういうツイートをするとはてな社内に共有されてちょっと不穏な空気が流れるらしいので各位気を付けましょう。