この一年まとめも3回目になった。去年はここ

今年は1/1の会社統合によって所属がNHN Japanに変わってオフィスが新宿=>大崎=>渋谷と流浪しましたが、仕事は変わらずやってます。その成果の一つがこれ

1年でPVが2倍に伸びました。ライブドアブログの主なニュースまとめ2012年版

もちろん良いブログ、良い記事に恵まれ、ソーシャル系サービスの波にうまく乗ったがことが大きな要因だとは思いますが、サーバ側でも逐次アプリケーションやSQLの改善をしたり、インフラの増強等をしてこれたのも良かったのではないかと自負しています。

GrowthForecast

GrowthForecastを公開したのは去年の年末でした。弊社でも様々な指標のグラフ化に利用していますし、他社でも多くの方が使って頂いているようです。

GrowthForecastというグラフ表示ツールで捗る話

GrowthForecast を初めて紹介したのは上の去年の記事でした。その後、機能追加などをしつつ、ドキュメントもまとめました

GrowthForecastに1分更新グラフ作成とサマリーなどのJSONフォーマットでの出力機能追加

GrowthForecast のデータストアに MySQL が使えるようになりました

oranieさんがsqliteのパフォーマンス問題をいろいろ踏み抜いてくれたので、SQLiteの設定を見直しつつ、MySQLにも対応しました。

やったー GrowthForecast のページできたよー\(^o^)/

そして出来たのがこのドキュメントページです

GrowthForecast - Lightning fast Graphing / Visualization

ぜひ参考にしてくださいませ。

最近モリスさんによって追加されたJSON-APIについてはmikedaさんが素敵な記事をアップしてくれました。きっとモリスさんもなんか書いてくれるはず!

GrowthForecastでAPI使って複合グラフ作ったり、グラフの色を変えたりしてみた

CPANモジュール

ブログに書いてないモジュールもあったりするけど、いくつか作った。

Twiggy::Prefork をリリースしました

某RSS集約サービスの裏側で動いていたりする。半年以上動作しているがとくに問題は起きていない

Plack::Middleware::ServerStatus::Lite にアクセス数表示機能をつけました

Proclet という supervisor モジュール書いてリリースした

今年のイチオシモジュール。機能追加もしつつ、GrowthForecastやこのあと作った様々なツールでProcletを使っている。Web+Workerな管理ツールを作る時のマストアイテムになりました。

ProcletでSTDOUT/STDERRにサービス名を追加して表示できるようになったよー

Proclet::Declare リリースしました Re: Proclet::Declare について考えた

やったー PerlでProcfileベースのプロセス管理ツール foreman の互換コマンド “proclet” できたよ

foreman互換のコマンドを作った事で複数のプロセスを使う開発も捗るようになった

SQLite のパフォーマンスチューニング、または DBIx::Sunny 0.16 の話

GrowthforecastでSQLiteのパフォーマンス問題に当たったので、その調査。DBD::SQLiteのデフォルトが変わって行くもあるので要チェック

ロードアベレージを監視して任意のコマンドを実行するコマンド

そういえば使ってない

File::RotateLogs っていうログをファイルに記録していくモジュールを書いた

社内の新サービスではAxsLog+File::RotateLogsという組み合わせが使われる事が増えてきた。

DBIx::DSN::Resolver ってのを書いた

DBIx::DSN::Resolver::Cached をリリースしました

この二つのモジュールは、今社内で導入を進めているMHA for MySQLを使う際に、DNSへの負荷を減らすために使っている。ちなみにDNSにはMySQLをバックエンドにしたPowerDNSを用いている

Perl Advent Calendar Japan 2012 Hacker Track に Plack::Middleware::AxsLog の記事を書いたよ

Yet AnotherなAccessLogモジュール。advent calendarで紹介しました。奥様は20周年の某二人組のコンサートに行ってました。

Plack上でPHP(php-cgi)を動かす

やったー、ApacheナシでNagiosうごいたよー!。今はPHPが必要だと言う理由だけで古いバージョンのNagiosを使っているので年明けにこれを使ってアップデートするつもり。

Apacheモヒモヒ

素のApacheを使うのは小学生まで

Apache 2.2.15から入った mod_reqtimeout を Reverse Proxyで使う場合の注意点

最新のログファイルにリンクが作れるようになった Apache 2.4.1 の rotatelogs を試す

2.4系のサービス投入はまだ。大きなサービスでサーバ側でSSLを使うような話があればその前に検討したいと考えてる

Apache httpd.conf の Allow from .. にコメントを書いてしまうとDNSの逆引きが行われてレスポンスが悪化するので注意の件 + コメントが書けるようになるパッチ

設定を書く時にはパッチした方が便利だとは思う

modcopyheader ってのを書いた話 Re: Apache上のPerl FastCGIはCustomLogにデータを書くことができるか?

前職時代に作ったモジュールを思い出しながら復元。nginxだともっと簡単にできるようですね

Apacheのログで取得できる%{FooBar}nの値をCGIで得るには

mod_copy_headerの逆のことをやろうとした場合。使う場所があればmod_copy_headerに機能追加してもいいかな

Apache HTTP ServerをRFC6585の”429 Too Many Requests”に(とりあえず)対応させるパッチ

試してみた

nginx-1.1.x で httpなupstreamにもkeepaliveができるようになったので検証してみた

この機能は1.2系に追加されましたが、記事で紹介しているHTTP/1.0への対応はされてない。負荷が大きめの某所でHTTP/1.0に対応させるパッチを1.2系に適用して使っている

Replication Booster for MySQL を試す

実際に常に動かしています。たまにCPU 100%で張り付いていることがあるので監視して再起動とかしてたり。

Intel SSD 910 800GB のベンチマーク

CentOS 6.2 で RPS/RFS を使ってネットワークの割り込み処理を複数コアに分散してみた

姑系記事

アプリケーションのソースや設定をみて思った事などつらつらと

Plack::Middleware::ReverseProxy でリモートホストを確認する理由

Plack::Middleware::ReverseProxy はIPアドレスを利用する他のミドルウェアより先に指定しましょう!

Plack::Middleware::AccessLog でありがちな罠

cron等をつかって外部のAPIに問い合わせる場合は、毎時0分を避けるのが大人のマナー

僕らがmemcachedのキャッシュキーにsha1やmd5のhash値を使うを避ける理由

ウェブオペレーションエンジニアはリリース前のソースコードのココを見ているッ!

話してきた話/イベント

hb qp bp study 新年LT&ビアバッシュ2012に参加してビール飲んでピザ食べてきた

MySQL Beginners Talk で LT してきました

Monitoring Casual Talk #1 に参加してきた! #monitoringcasual

YAPC::Asia 2012 で発表してきました!日本よ、これが #yapcasia だッ!!

この発表の紹介したmy.cnfの公開がこちら

MySQLの設定ファイル my.cnf をgithubにて公開しました & チューニングポイントの紹介

isucon2 を開催しました。あるいは、優勝組の5倍のスコアを出す方法

まさか2回目があるとは思ってなかったisucon。吐いて寝てたアレは後日急性胃腸炎だと診断されました

2013年は

2012年はオペレーション・エンジニアという言葉がだいぶ認知されたように思えます。おぺかじもその一つでしょうか。

ただ残念に思っているのが、DevOps界隈などでオペレーションの自動化やそのツール・派手な可視化サービスが中心に紹介されて、サービスの可用性や性能、スケーラビリティを高めるソフトウェアの工夫にはなかなか目が向かないことです。大規模ならやっていて当然なんて言ってしまう人も現れる始末です。

なので、来年はオペレーション・エンジニアの業務の目的として「Site Reliability」という言葉を使って行きたいと思っている次第でございます。

なお、4月末には二人目の子供が生まれる予定でございます。お兄ちゃんとなる長男と生まれてくる子供の成長を今から楽しみにしています

このブログ記事について

このページは、Masahiro Naganoが2012年12月30日 23:48に書いたブログ記事です。

ひとつ前のブログ記事は「Plack上でPHP(php-cgi)を動かす」です。

次のブログ記事は「Plackを使ってApacheナシでNagiosをインストールする方法」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

OpenID対応しています OpenIDについて
Powered by Movable Type 4.27-ja