タグ

ブックマーク / developer.cybozu.co.jp (16)

  • Kazuho@Cybozu Labs: テストケースの実行にあわせて Apache を起動・終了する方法

    ウェブアプリケーションやライブラリの結合テストを行う段階になると、実際に Apache を起動してテストを実行したくなります。しかし、そのためにいちいち Apache の設定ファイルを修正して httpd を再起動して、とやっていては面倒です。特に複数のプログラムを同時に開発していると、あっちをテストしたらこっちが動かなくなって… なんてなったりして嫌気がさしてきます。 そこで、テストを実行する際に、環境毎に異なる以下のような問題を吸収しつつ、テスト専用に設定された Apache を自動的に起動終了してくれる Perl モジュール:Test::Httpd::Apache2 を書きました。 環境によって、インストールパスが違う (/usr/local/apache/bin だったり /usr/sbin だったり) 環境によって LoadModule の要不要や、ロードするパスが違う 環境によ

  • Cybozu Inside Out: ScaleBench 公開

    どーもみなさま。こんにちは。 amachang と申します。 さて、ようやく ScaleBench というプロダクトが発表されましたね! ScaleBench のご紹介 で、僕もこれの開発に携わっていたのでちょっと技術的なことについて書いてみたいと思います。 ScaleBench とは ScaleBench とは、サイボウズ製品向けの負荷テストツールで Grinder というオープンソースの負荷テストツールをベースにしています。 Grinder とは Java を使った Web の負荷テストツールです。 Jython でシナリオ(ユーザがどう行動するか)を書いてそれを実行します。 またブラウザの操作を記録して、シナリオを自動で生成することもできたりします。 で、僕がこのプロジェクトで担当していたのが Grinder の改良、改造 シナリオ(バーチャルユーザがどのような順で負荷をかけていくか

    Cybozu Inside Out: ScaleBench 公開
  • Kazuho@Cybozu Labs: 既製品の管理ツールを使わないことでウェブサービスの TCO を下げる話について hbstudy#8 で話してきた件

    昨日、hbstudy#8 で話をする機会をいただくことができたので、Nagios や Amanda といった既製品の管理ツールやバックアップツールを使わずに内製したことで「パストラック」の運用コストを下げた、という話をしてきました。 もちろん、「既製品を使わない」というのもひとつの手段にすぎませんから、それを無闇にお勧めするつもりはありません。ただ、小回りの効くツールを組み合わせる手法にも十分な競争力があるという点、あるいはその事例として参考になれば幸いです。 スライドはこちら。hbstudy 運営の皆様、話を聞いてくださった皆様、ありがとうございました。

  • Kazuho@Cybozu Labs: crontab を使って効率的にサービス監視する方法

    監視とは継続的なテストである、という話 (もしくは cronlog とテストスクリプトを組み合わせた監視手法について)に続きます 今日ようやく、積ん読状態だった「Software Design 2010年1月号」を手に取ったのですが、特集が「今日から使えるスクリプト満載! [プロ直伝]お手軽サーバ監視術」。興味深く拝読したのですが、もっと楽ができるのにと思うところも。ちょうど、昨年末に運用しているサービス「パストラック」のサーバを移転し、crontab と perl で書かれたスクリプト群を使った監視環境を構築したところなので、そこで使っているスクリプト cronlog を紹介したいと思います。 特集の前書きにも書かれていることですが、サーバやネットワーク機器が多数ある環境なら、Nagios を始めとする、専ら監視のために作られたソフトウェアを使って、監視システムを構築すべきです。逆に小規

  • Kazuho@Cybozu Labs: リモートからXenのDomUとかLVMやファイルを差分バックアップするスクリプトを書いた

    月曜から XenServer の運用を始めたんですが、以下のような要件のバックアップツールがほしくなりまして。ちょっと調べた範囲で見つからなかったので、書いてみました。 スナップショットによる無停止でのバックアップ 差分/多世代バックアップが可能 ネットワーク越しにプルベースでバックアップが可能 元々は去年書いたバイナリファイルの差分バックアップスクリプト (データベースの差分バックアップとウェブサービスのお引っ越し)。これを拡張して、LVMを操作したり、バージョン番号を自動採番するようにしたり、ssh経由での転送機能をつけたりした感じです (ディスクは遅いからギガイーサなら over ssh でも問題ない)。 詳しいことを知りたい人にはソースコードを読んでいただくとして (といっても300行ちょい)、たとえば XenServer 上の DomU のバックアップを取るなら、サーバ上で xe

    ftnk
    ftnk 2009/11/23
  • Kazuho@Cybozu Labs: Apache で X-Reproxy-URL ヘッダを使えるようにするモジュール mod_reproxy を書いた

    ウェブアプリケーションにおいて、認証がかかっている画像や大きなファイルを配信する場合には、Perlbal 等でサポートされている X-Reproxy-URL ヘッダが有効なことが知られていて、その理由としては、 (メモリを大いする) アプリケーションサーバのプロセスを転送終了まで占有しない HTTP ベースの分散ファイルシステムとリバースプロキシが直接交信するので、ネットワーク負荷が低い といった点が挙げられます。「でも、Apache は X-Reproxy-URL ヘッダをサポートしてないんだよねー」という話が、先日の YAPC::Asia 2009 においても話題になっていました[要出典]。回避策としては、ワンタイムURLのような手法もあるのですが、セキュリティな懸念もあります。 なんとかしたいなと思っていたのですが、気が向いたので、Apache に X-Reproxy-URL ヘッ

  • Kazuho@Cybozu Labs: パフォーマンスとスケーラビリティのためのデータベースアーキテクチャ (BPStudy#25発表資料)

    先週金曜日、BPStudy#25で、「パフォーマンスとスケーラビリティのためのデータベースアーキテクチャ」という題目で話をさせていただきました。その際に使用した発表資料は以下のとおりです。 1. Happy Optimization 最初に、最適化の考え方として、上限値を予測し、それを元にリソース配分を考える、という手法を説明しました。

  • Kazuho@Cybozu Labs: YAPC::Asia 2009 で「スケールするウェブアプリケーションを20分で作る方法」について話します

    このところ、MySQLPerl 関連のエントリをいろいろ書いていますが、それは、スケールアウト可能で、かつ、管理が容易なウェブアプリケーションを、簡単に書けるようにしたい、という理由があるからです。 ただ、ブログエントリだとどうしても細切れになるので、一連のモジュールやプログラムを組み合わせて、どうやってスケールするウェブアプリケーションを作るのかという話を YAPC::Asia 2009 でさせていただくことにしました。 YAPC::Asia 2009 は9月10日(木)と11日(金)の2日間、東京工業大学大岡山キャンパスで開催されます。今日からチケット販売も始まったので、興味のある方はお越しいただければ、と思います。 YAPC::Asia 2009 スケールするウェブアプリケーションを20分で作る方法: YAPC::Asia 2009

  • Kazuho@Cybozu Labs: PostgreSQL のボトルネックを統計的に監視・解析する方法

    先日書いた「MySQL のボトルネックを統計的に監視・解析する方法」について、PostgreSQL でも pg_stat_activity テーブルを使って実行中のクエリ一覧を取得できると higepon さんに教えてもらったので、やってみました。 % ppdump > ppdump.txt のようにクエリをサンプリング (デフォルトで100秒間程度) して、 % ppfilter < ppdump.txt | ppreport のようにすると、平均負荷の高いクエリから順にソートされて表示されます。詳しい使い方や考え方については、mprofile のエントリをご参照ください。 pprofile のソースコードは、/platform/postgresql/pprofile – CodeRepos::Share – Tracに置いてあります。負荷が高い PostgreSQL 環境が手元にないの

  • Kazuho@Cybozu Labs: MySQL のボトルネックを統計的に監視・解析する方法

    MySQL のチューニング、と言った場合には、サーバーパラメータの調整や EXPLAIN コマンドを利用したクエリ実行計画の最適化が話題に上ることが多いです。しかし、発行する全ての SQL について、いちいち EXPLAIN コマンドを使って確認していては、いくら時間があってもたりません。チューニングを効率的に進めるには、まず、ボトルネックとなっている SQL クエリを特定し、次にその最適化を行うべきです。 ではどのようにして、ボトルネックを特定するのか。MySQL Conference & Expo 2009 のキーノートにおいて Mark Callaghan 氏は、Google では SHOW PROCESSLIST コマンドを使った統計的アプローチを使っていると述べていらっしゃいます (参照: MySQLConf 09: Mark Callaghan, "This is Not a

  • del.icio.usの次期バージョンはsymfonyフレームワークで実装されている | 秋元@サイボウズラボ・プログラマー・ブログ

    9月にクローズト公開されて現在もテスト中らしい、最大手ソーシャルブックマークdel.icio.usの次期新バージョンプレビューは、PHP5のフレームワークsymfony上で実装されているらしい。symfonyのブログで書かれていた。 Yahoo! にとっては、del.icio.usは買収したもので、別にYahoo! ブックマークというのがある。これはすでにsymfonyで作られていることが公開されており、Yahoo! 二つ目のsymfonyベースアプリケーションとなる。 Yahoo!のような大企業が、オープンソースフレームワークを採用して大規模運用してくれれば、そこからいろいろなフィードバックが来て良い改良がされそうなので、symfonyフレームワークには期待できるように思う。 というのを、今日献いただいたsymfonyの日語解説の表紙を見ながら思ったりした。これはまだ読んでないので

  • 秋元@サイボウズラボ・プログラマー・ブログ 色で書くプログラミング言語Piet

    Piet は、色の変化でインストラクションを表す、スタック言語だ。 プログラミング言語といえばまずこれだろう。言語作者人による、”Hello, World”。 コードの実行は左上から開始され、同じ色で塗られた領域のピクセル数が数値に、次の領域での色相と明度の変化がインストラクションになる。 また、次の実行方向を制御するための黒色と、何も行なわない(NOP)白色もある。 その他のサンプルプログラムはこちら。”Hello, World”をいろんな人が違うやり方でコーディング(ペインティング?)しているけど、中にはハノイの塔やフィボナッチ数列を求めるプログラムもある。よくやるなあ。 そして、この言語の発想の基となり、言語名の出自でもある、Piet Mondrianの作品っぽく見える”Hello, World”も。 この人は、Esoteric Programming Languages(秘伝的プ

    秋元@サイボウズラボ・プログラマー・ブログ 色で書くプログラミング言語Piet
  • 秋元@サイボウズラボ・プログラマー・ブログ 映画に出てくるプログラマー-ソースコードの誤解

    via del.icio.us/popular What code DOESN’T do in real life (that it does in the movies) 「(映画の中では起こるけど)現実には起こらないコード」というブログエントリ。面白かったので項目だけでも紹介。 コードはものすごい速度で画面を動き回ったりしない コードを黒地に緑文字で表示して編集してるやつなんてほとんどいない 改行もスペースも、インデントもないコードなんてありえない コードは三次元で編集したりしない コードは効果音と共にスクリーンに現れたりはしない コードは8歳児に数秒でクラックされたりしない 膨大なコード全体が一瞬で器用にゴミになったりはしない プログラマーは0と1だけでコードを書いたりしない(アルファベットや記号も使える) プログラマーはキーボードだけでなくマウスも使う コードはそんな簡単にクロスプ

  • IPv4アドレス空間での自分の位置をビジュアライズ

    via digg MAP of the Internetでは、IPv4のアドレス空間を2次元の地図として表現している。 “Find me on the map!”ボタンを押せば、自分のリモートアドレスを元に、自分の位置を表示もしてくれる。 この地図自体、今のIPアドレスがどのような地域・国や事業者に、どれぐらいの分量割り当てられているのかというのが感覚的につかめて、面白い。アメリカの大企業なんかで、一社で広大な領域を確保してるところが多いというのもわかる。 草地になっているところは未割り当てのアドレスということだけど、これって有効利用されてないということなのかな? この記事は移転前の古いURLで公開された時のものですブックマークが新旧で分散している場合があります。移転前は現在とは文体が違い「である」調です。(参考)記事の内容が古くて役に立たなくなっている、という場合にはコメントやツイッター

    IPv4アドレス空間での自分の位置をビジュアライズ
  • 格言2.0とギークの格言トップ10 | 秋元@サイボウズラボ・プログラマー・ブログ

    The Board of Wisdom(賢人会議)というサイト、カテゴリごとに「おもしろい引用(Quote)」をユーザが投稿し、さらに投票することでランキングを作る、という格言の集合知サイトのようだ。(2.0! 2.0!) このサイトでの「ギークの格言」ランキングトップ10は、今こんな感じ。 世界には二通りの人がいる。バイナリアンとそれ以外だ 最初に作ったものが失敗作なら、バージョン1.0と名づけよ マイクロソフト「あなたがたの疑問に答えるため、踊るペーパークリップを用意しました」 ポケモンがナード達を連れてきた。カードを交換したいだろうって? ちくしょうそうだよ。でもリザードンは渡さないよ 1f u c4n r34d th1s u r34lly n33d t0 g37 l41d (翻訳不能: 意味はまあ、「これが読めるようなやつはちゃんと経験しろ」) 僕はひきこもりじゃないよ。ちょっとば

  • 完璧な昼寝のためのmp3 | 秋元@サイボウズラボ・プログラマー・ブログ

    via Digg パワーナッピング (Power Napping, nap は「昼寝」)を説くブログ記事で、昼寝のお供用に作られたmp3が紹介されている。 改良を経てバージョン5となった、これらのお昼寝環境音楽は、前半が遠くの話し声やホワイトノイズなどの眠りを助ける音、一定時間の後はオンドリの鳴き声に始まり、少しずつ目が覚めていくように様々な曲や音が配置されているという。 長さも、昼寝したい時間に合わせて、5, 8, 12, 15, 18, 20, 23, 26分バージョンが用意されている。オススメは23分のバージョンらしい。 この記事は移転前の古いURLで公開された時のものですブックマークが新旧で分散している場合があります。移転前は現在とは文体が違い「である」調です。(参考)記事の内容が古くて役に立たなくなっている、という場合にはコメントやツイッターでご指摘いただければ幸いです。最新の状

  • 1