こんにちは、シニアエンジニアの id:y_uuki です。 はてなのWebオペレーションエンジニア8名が、この1年で対外的にアウトプットした成果物をまとめて紹介します。
座談会
今週、Webオペレーションエンジニアの座談会記事を公開しました。技術ブログや技術発表では表現しきれない一人一人の考え方や思いが垣間見えるコンテンツになっていると思います。
Software Engineering
Keepalivedのシンタックスチェッカ「gokc」を作った - ゆううきブログ
gokcというGoで作られたKeepalivedの設定ファイルのシンタックスチェッカーです。社内で普通に導入しています。
インフラエンジニアがGo言語でオペレーションツールを書くことについて - Hatena Developer Blog
Go 1.6 Release Partyでの発表内容です。Go言語が好き。
自作Linuxコンテナの時代 - ゆううきブログ Droot Internals // Speaker Deck
自分の用途にあったLinuxコンテナエンジンを自作しようみたいな話です。第9回コンテナ型仮想化の情報交換会@福岡での発表がベースになっています。
CPAN Authorになった (Pgtoolsリリースした) - tom__bo’s Blog
はてなインターン2015で作ってもらっていたPostgresの運用ツールの話です。アルバイトの id:tom__bo くんの成果です。
swiro - A switching route tool for AWS
EC2におけるRoute Tableベースのフェイルオーバツールです。アルバイトの id:taku_k くんに作ってもらいました。
サーバモニタリング向け時系列データベースの探究 / The study of time-series database for server monitoring // Speaker Deck
IOTS2016で招待講演で、Mackerelのための時系列データベースを求めてたどり着いた一つの結論の話です。
Varnishによる一貫性を考慮した積極的キャッシュ戦略実験 - でこてっくろぐ ねお
ISUCON6の予選を題材に、汎用的な手法でなるべく多くのアクセスをVarnishにキャッシュさせようとした試みです。
sabaviz Chefviz creates the dot files of recipes dependency-graph for graphviz.
これもアルバイトの id:tom__bo くんの趣味の成果です。はじめてみるサービスの依存関係の把握が難しかったので、依存関係を可視化するツールを作ってみたとのことです。
System Engineering
雑な LVS/TUN の解説図 - mura日記 (halfrack) LVSでTunnel方式のL3DSRを実現した様子の図解です。入社したときに、これがわかっていないとLVSオペレーションしてはいけないみたいなことを言われて勉強した記憶があります。
Linuxサーバにログインしたらいつもやっているオペレーション - ゆううきブログ よくあるLinuxコマンド集にみえますが、実際に入社してから使い続けたものを厳選しています。
ウェブアプリケーション開発に新言語を採用したときにインフラで考えたこと - ゆううきブログ ここ数年、はてなではアプリケーション開発言語としてScalaとGoが採用されているのですが、プログラムを書く以外の観点が見過ごされがちだったので課題についてまとめました。第3回関西IT系インフラ勉強会内容とだいたい同じです。
仮想化基盤Xenの性能評価 / Performance evaluation of virtualization platform Xen // Speaker Deck 第3回関西IT系インフラ勉強会での発表です。最近は1台に30近い仮想ホストが蠢くようになっているので、仮想化基盤の安定化が課題です。
nginxでproxy_hide_header, proxy_set_header, add_headerを書く時にはまりがちな罠 - でこてっくろぐ ねお nginxの設定は、上位のコンテキストから下位のコンテキストに設定を継承しようとするとハマりどころが増えるという話ですね。
最近AWSのENIの付け替え速度がチョッパヤになってる気がしたので測ってみた - でこてっくろぐ ねお id:dekokun という人はチョッパヤみたいな一昔前の俗語が好きなようです。これをデコ感と呼びます。
AWS EC2でのHTTP/2 or SPDY導入方法 - Hatena Developer Blog AWSでのHTTP/2 or SPDY運用の課題とPROXY protocol - Hatena Developer Blog
はてなでもHTTP/2の導入が進んでいます。ELBを使いつつ、HTTP/2を利用するのに癖があります。3部作といいつつ、3つ目はどうなったのでしょうか。(ALBがもうでてしまった)
PostgreSQLで異なるメジャーバージョン間のレプリケーション実験 - tom__bo’s Blog 第7回 PostgreSQLアンカンファレンス@東京に行ってきた - tom__bo’s Blog
PostgreSQLのオンラインバージョンアップ方法を調べてもらっていました。MySQLのように数珠つなぎレプリケーションをするわけにはいかないようです。自ら発表したいということで、第7回PostgreSQLアンカンファレンス@東京で発表してもらいました。
Googleが数千台もある10年前のLinuxディストリをライブアップグレードした話 - ゆううきブログ
CentOS5のEOLは来年3月で、ちょうどディストーションのアップグレードに興味がありました。Googleでさえ、かなり泥臭いことをやらないといけないことがわかりました。
はてなにおけるLinuxネットワークスタックパフォーマンス改善 / Linux network performance improvement at hatena // Speaker Deck
はてな・ペパボ技術大会の発表です。よくあるチューニングを除いて、ウェブサービスでLinuxネットワークスタックがボトルネックになるケースは多くはないのですが、ユーザをたくさん抱えているとカーネルレイヤのチューニングが必要になることがあります。
Mackerelにおける時系列データベースの性能改善 / Performance Improvement of TSDB in Mackerel // Speaker Deck
同じく技術大会の発表です。こちらは、時系列データベースGraphiteの性能改善事例です。パフォーマンスが低下したときに、カーネルレベルで分析し、PRをなげて問題解決しました。
計算量と僕とWeb開発 / computational complexity and I and Web // Speaker Deck
同じく技術大会でのゆるふわ?計算量の話です。競技プログラミングで鍛えた感覚でだいたい計算量がわかるとのことです。すごいですね。
負荷分散技術を選ぶときに考えること // Speaker Deck
同じく技術大会での発表です。ネットワークからミドルウェアのレイヤまで幅広く抑えられているのが特徴です。はてなではいろんなレイヤで負荷分散を実現しています。
仮想化基盤のリソース最適化 / Resource optimization on virtualization platform // Speaker Deck
同じく技術大会での発表です。仮想ホストを構築するときに、どこの物理サーバを選べば良いのかをがんばって探さないといけないという課題があり、数学的モデルに落とし込むことで最適な配置ができるというものです。現実には、かなり多くの制約条件があって、プログラマブルに値をとりにくいものもあるので、なかなか難しいですね。
はてなでの サービス信頼性向上のための 取り組み事例 // Speaker Deck
SRE tech talksでの発表です。 ちょうと社内でSRE輪読会をやっていたところ、声がかかったので良いタイミングでした。SREの視点を通して、最近のはてなのウェブオペレーションを俯瞰するとどうみえるかという内容になっています。
ISUCON予選突破を支えたオペレーション技術 - ゆううきブログ
Kyoto.なんか #2での発表内容です。ウェブオペレーションエンジニア視点で、ISUCONという競技を自分なりに捉え直したものです。
はてなのログ運用 これまでとこれから / Hatena Engineer Seminar #6 // Speaker Deck
Hatena Engineer Seminar #6 〜インフラ編〜の発表です。rsyslogからfluentdへの変遷など。参加された人に聞くと、リバースプロキシでcronでアクセスログ送信しているところ、意外とやっている人がいるということに驚きました。
はてなのサーバプロビジョニングについて / Hatena Engineer Seminar #6 // Speaker Deck
同じくセミナーでの発表です。Chefなどのconfigurationフェーズの話は世の中にたくさんでてますが、OSイメージの作成などbootstrapフェーズも含んだ話は意外と少ないのではでしょうか。
MySQL運用とらぶるすとーり〜^2 / MySQL-Troubleshooting-Story // Speaker Deck
同じくセミナーでの発表です。MySQL芸人こといちりんちゃんの磨きのかかった発表でした。テーブルの行数制限にあたった話とbinlog破損から救いを求めた話です。
はてなのサーバ/インフラを支える技術〜2016年新卒編〜 / OSC Tokyo 2016 Fall // Speaker Deck
OSC Tokyo 2016での新卒2人による発表です。新しい広告配信システムのインフラの話と、はてなのサーバ・ネットワークの基盤の紹介です。
セキュリティ会の取り組み - Hatena Developer Blog
セキュリティ会自体は、ウェブオペレーションエンジニアとは直接関係ありません。専門のセキュリティエンジニアがいるわけではないので、セキュリティ会が、情報を収集し、対応をまとめ周知するという役割を担っています。
MySQL-5.6のMRRにデッドロック回避の夢を見る - ichirin2501's diary
MySQLのロックの挙動を調査するために、gdbで解析してたりします。
フルCDNアーキテクチャ実験 / Minami Aoyama Night #1 // Speaker Deck
Minami Aoyama Night#1での発表です。はてなブログのHTTPキャッシュ戦略と、のちにやりたいと思っているフルCDN化についての発表です。
はてなのインフラ環境を自宅で再現する // Speaker Deck
YAPC::Hokkaido 2016での発表です。自宅で動いたから検証済みとかいって本番に投入していく新卒(詐欺)です。
DataCenter Networking Conference での発表です。はてなのこれまでのネットワークを振り返るような話になっています。いちWebサービス事業者が今もオンプレでネットワーク運用している例は、昨今では少ないんじゃないでしょうか。資料はそのうち公開されると思います。
10ms以下のレスポンスタイムを支える継続的負荷テスト - taketo957の日記
低レイテンシを求められる広告配信システムでやっている負荷テストCIの話です。負荷テストCIってよくあるアイデアのわりにはあまり見かけないですね。
LinuxのARPとL2スイッチのお話 - masayoshiの日記
LVSのDSRで非対称ルーティングしているときのネットワークのトラブルシューティングの話です。
輪読会
社内でSRE本*1の輪読会を開催し始めました。 世間で言われているエラーバジェットやToilの割合を一定以下に収める努力などが書かれているのはもちろんですが、SREというのは単に定量的アプローチのことだけを指すわけではないということがわかってきています。
その他
法学部生だけどはてなのインフラで4年間バイトした - naokibtn’s blog
長い間おつかれさまでした。
株式会社はてなに入社しました - masayoshiの日記 株式会社はてなに入社しました - taketo957の日記
今年はなんと新卒のWebオペレーションエンジニアが2人も入社しました。
リモートワークにおけるSlack Call活用と終業15分前の雑談 - Hatena Developer Blog
雑談に限らずコミュニケーションの機会を意識的に増やしはじめました。
2016年ウェブオペレーションエンジニアの新卒研修 - Hatena Developer Blog
新卒が2人もきたので、研修し始めました。
東京にいながら仕事のほとんどを京都のエンジニアと一緒にしている私のリモートワークの話 / Hatena Engineer Seminar #6 // Speaker Deck
セミナーでの発表です。Webオペレーションエンジニアは東京でも募集しています。
アプリケーションエンジニアからみたはてなのインフラの話 / Hatena Engineer Seminar #6 // Speaker Deck
セミナーでの発表です。id:KGA さんはWebオペレーションエンジニアではありませんが、アプリケーションエンジニアからみたWebオペレーションエンジニアの話をしてもらいました。
情報処理学会でウェブオペレーション技術について招待講演した話 - ゆううきブログ
なぜか研究者のコミュニティで技術者として講演しました。
ウェブオペレーションエンジニアになるまでの思い出 - ゆううきブログ
Hatena Engineer Seminar #7 での発表内容です。思い出に共感してもらい、Webオペレーションエンジニアに興味をもってもらうという趣旨でした。
サーバとわたし - Words fly away, the written letter remains.
id:tomomii さんは職種としてはエンジニアではありませんが、tomomiiさんらしい感性でとらえた技術の話がたのしいです。
あとがき
はてなのWebオペレーションエンジニアはすごいことをしているのに外へのアウトプットが全然ないなぁと思ったのが、僕がアルバイトにきた2012年のことでした。すごいことをしているのにもったいないと思って、ちまちまとブログを書いたり発表し続けてきたりしました。 今年から自分だけでなくチームメンバーにもアウトプットを促すようになり、アルバイト含めたすべてのWebオペレーションエンジニアがなんらかのアウトプットをした年になりました。
こうして1年俯瞰してみると、はてなのWebオペレーションエンジニアの特色が浮きぼりになります。 ネットワーク、Linux、仮想化、RDBMS、WebサーバといったWebのインフラを支える運用技術(System Engineering)については、自信をもって強いと言えます。しかし、Mackerel以外で、Software Engineeringにより自分たちで最適なシステムをつくっていくという点がまだまだ弱いのが課題だと思っています。
SREに代表されるように、インターネットのインフラの世界でSoftware Engineeringの重要性が高まっており、はてなでもSoftware Engineeringによりシステムの信頼性を高めたいと考えています。 はてなでは、インフラの領域でソフトウェアを書いてみたい、これまでWebアプリケーションエンジニアだったけどインフラの世界に興味があるといった方を募集しています。 もちろん、今のはてなの強みでもあるSystem Engineeringのスキルを生かしたいという方も大歓迎です。
新卒の採用募集もやっています!
*1:Betsy Beyer, Chris Jones, Jennifer Petoff, Niall Richard Murphy, "Site Reliability Engineering: How Google Runs Production Systems", O'Reilly Media, March 2016