2016/1/29に開催されたDeNATechCon2016の資料です。 会場C-1 https://techcon.dena.com
memcachedはキャッシュなので、特定のデータが常にサーバに存在しないことが前提でシステムに導入されます。今回はmemcachedのデータ削除メカニズム、そしてmemcachedの最新動向であるバイナリプロトコルと外部エンジンサポートをご紹介いたします。 memcachedはデータ削除もリソースを有効活用する memcachedから実際にデータは消えない 前回の記事で紹介させていただきましたが、memcachedは確保したメモリを解放しません。レコードはtimeoutが過ぎたらクライエントから見えなくなる(invisible・透明になる)だけで、その領域は再利用される仕組みです。 Lazy Expiration memcachedは内部的にレコードがexpireしたかの監視を行いません。替わりにgetする際にレコードのtimestampを見ることで、そのレコードがexpireしたかをチ
Plack──PSGIユーティリティ PSGIのおかげで、フレームワークはCGIやFastCGI、mod_perlといった環境の差異を吸収するためのコードを書く必要はなくなり、PSGIのインタフェースだけを実行すればよくなりました。実際に多くのフレームワークがすでにPSGIをサポートしていますが、さて、そうしたアプリケーションをどうやって動かせばよいのでしょうか。 Apacheなど既存のWebサーバでPSGIアプリケーションを動かすには、CGI、FastCGI、mod_perlなどのインタフェースをPSGIに変換する必要があります。また、PSGIをネイティブで実行できるPerlベースのHTTPサーバもほしいところです。 Plackはそうした要件を満たすためのユーティリティで、リファレンス実装としてのPSGIサーバやそれらへのアダプタ、周辺ライブラリや後述するミドルウェアが含まれています。
TTの本体を差し替える 前回はウェブ業界で標準的に使われているTemplate Toolkitをより安全に使うためのカスタマイズ方法をいくつか紹介しました。しばしば批判の対象となってきたエスケープの問題については、TTでも適切な拡張を施せば後発のモジュールと遜色ないか、それ以上に便利に使えることは確認できたかと思います。 ただし、エスケープの仕方ひとつとってもさまざまなやり方があったように、TTは、柔軟である代償として速度面ではかなりの不利を抱えています。 もっとも、不利といってもそれはいまの、しかもかなり規模の大きな現場の視点で見たときの話で、数年前、おもなライバルがHTML::Mason(と、機能面で大きな差があるHTML::Template)だった時代にはTTも十分に高速といえましたし[1]、中小規模のサイトではいまでもTTで十分なレスポンスは得られます。 また、かれこれ10年近く
本連載では第一線のPerlハッカーが回替わりで執筆していきます。今回は藤吾郎さんで、テーマはXslateです。 はじめに PerlとWebアプリケーションとの相性の良さは周知のとおりです。そして、Web開発にはテンプレートエンジンが欠かせません。テンプレートエンジンは、プレゼンテーションとロジックを分離し、デザイナとプログラマの分業を可能にし、MVC(Model-View-Controller)のV(View)を担う重要な要素です。 今回は、そんなテンプレートエンジンンの一つであり、筆者が開発しているXslateを紹介します。Xslateは2010年4月に開発を始めた新しいモジュールですが、速度・安定性・機能ともに高い水準になってきました。また、牧大輔氏や松野徳大氏をはじめとしたShibuya.pmの面々に多くのアドバイスをいただき、既存のテンプレートエンジンを置き換えられるくらい実用的に
本連載では第一線のPerlハッカーが回替わりで執筆していきます。今回は普段Webアプリケーションの開発を行っているtokuhiromさんで、テーマはWebアプリケーションフレームワークAmon2です。 Amon2とは? こんにちは。tokuhiromです。本稿では、筆者が中心となって開発を進めているAmon2というWebアプリケーションフレームワークについて説明します。 Amon2は、次のような特徴を持つWebアプリケーションフレームワークです。 PSGI/Plackベース Amon2はHTTP::Engine/PSGI/Plackの開発/制定に初期のころから関わっている筆者が作成したWebアプリケーションフレームワークです。そのため、Plackの部品をできる限り利用することにより、少ないコードベースでWebアプリケーションフレームワークを実現しています。これにより学習コストが低くなってい
はじめに iモード/EZweb/Yahoo!ケータイなどで利用されるケータイブラウザは、極端な言い方をするとPCブラウザやフルブラウザとは「まったくの別物」です。今回はまず、ケータイブラウザ向けWebアプリケーションを開発する際に考慮すべき技術要素の説明を行います。次回以降は、そういった技術要素を共通的に処理できるフレームワークとして、筆者たちの所属する株式会社ディー・エヌ・エー(DeNA)がオープンソースソフトウェアとして2008年5月に公開したMobaSiF(Moba Simple Framework)を解説していきます。 本特集は、WEB+DB PRESS Vol.45の特集1「[イマドキ]ケータイ開発実践入門」の第2章、第3章を再構成したものです。なお、紙面の都合上で省略した説明も補っています。 各キャリア端末の世代分類 NTTドコモのiモードが開始されたのは1999年2月で、すで
本連載では第一線のPerlハッカーが回替わりで執筆していきます。今回はゆーすけべーこと和田裕介さんで、テーマはWeb APIです。 はじめに 本連載「Perl Hackers Hub」では、ハッカー向けの話題以外にも、ハッカーによる初歩的なテーマも扱っていきたいと思います。今回のテーマはWeb APIで、Twitterを題材に解説していきます。Web APIはPerlでアプリケーションを作るうえで知っておきたい知識の一つですので、基本と共に実践的なモジュールの使い方まで解説します。また、特にPerlに限らない内容も登場しますので、Perlを触ったことのない方でもWeb APIを触るコツをわかってもらえれば幸いです。 巨人の肩の上に立つ 「巨人の肩の上に立つ」。この言葉は、かのアイザック・ニュートンが手紙の中に書いた一文と言われていて、最近ではGoogleの論文検索のページにも引用されて
前回に続き、本レポートでは、(株)はてなのはてなサマーインターン2009の第一週に行われた、エンジニア向け講義の様子を中心にお届けする。 第一週:2日め~5日め、講義と演習 第一週の講義では初日のウォーミングアップを終え、2日め~5日め(8月4日~8月7日の4日間)は、はてなのWebサービスの基本形を学ぶ。はてなで実際に使われているフレームワーク、内製ツールなどを使いながら、本インターンの後半2週間で行われる新機能の実装に必須の開発ノウハウを習得するのが目的で、はてな流の作法を含め、はてなで開発を行うためには欠かせない基本となる。 毎日午前中から、以下のテーマごとに2時間程度の講義が行われた。Webアプリケーションの基本的な考え方、作り方を、第一線のエンジニアである講師陣から直接学べる機会はなかなかない。参加者の学生にとって、はてなサマーインターンならではのうれしい経験ではないだろうか。
大きな効果を上げるために チューニンガソン#1~#3の改善率を見ると、アプリケーションや全体のアーキテクチャに手を入れないで改善できるのは最大でも10倍以下です。もちろん数倍速度が違えばサーバ台数を大きく減らせるので有意義なのは間違いないのですが、ISUCONやチューニンガソン#4のような飛躍的な高速化は望めないことがわかります。 つまりチューニングでは、単にパラメータ設定を変更するのみではなく、ボトルネックになっているコードやクエリ、アーキテクチャに的確に手を入れていくことで大きな効果を上げることができるのです。 ボトルネックの発見と解消が大事 システム全体の処理時間についてパレートの法則(経験則)を適用すると、「全体の処理時間の80%は20%の部分で発生している」ということになります。実際にシステム全体で一番ボトルネックになっている部分を解消しないことには、ほかの部分に手を入れても大
毎日欠かさずチェックしているウェブページがありますか?ウェブ上のデータを二次利用したくありませんか?ウェブサービスを駆使してみたくないですか?そう思ったことがあるのなら、この本を読むべきです。本書は、ウェブを横断して情報を自動収集するプログラム、スパイダを自由自在に操り、目的の情報を取り出す方法を詳しく解説しています。また、各Hackを積極的に日本語化し、訳書版独自のHackや日本語処理の注意点(付録)を収録するなど、至れり尽くせりの内容です。スパイダ通のテクニックが満載! 関連ファイル サンプルコード 正誤表 ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の年月は、正誤表を作成し、増刷書籍を印刷した月です。お手持ちの書籍では、すでに修正が施されている場合がありますので、書籍最終ページの奥付でお手持ちの書籍の刷版、刷り年月日をご確認の
今回の対談は、9 月10.11 日に開催されたYAPC::Asia 2009会場となった東京工業大学大岡山キャンパスにて実施。ゲストは、「Twib」「YourAVHost」(注1) などのサイトでお馴染みの、ゆーすけべーこと和田裕介さんです。袋綴(と)じこそ実施には至りませんでしたが、一部、いまだかつてないエロ度の対談になりました。 (撮影:武田康宏) Web開発に携わったきっかけ 弾:今回はWEB+DB PRESSで初めての袋綴じということで…(笑)。 ゆ:袋綴じって(笑)。 弾:さっそくですが、Web開発に携わったきっかけってなんですか? ゆ:僕は大学院まで行ってるんですけど[2]、そのときの研究は、コンピュータをいじることではあったんですが、インタフェースとかアート寄りで、コンピュータは専門じゃなかったんです。で、卒業と同時に父親と会社をやり始めて[3]。Web
モバイルファクトリーの技術者の松野です。 今回はWassr(ワッサー)の技術的な側面についてのお話をさせていただきます。 フレームワーク Wassr開始以来、「WassrってRailsでできてるんですか?」とよく聞かれるのですが、WassrはRailsではなくSledgeというフレームワークでできています。Sledgeはlivedoorが公開しているフレームワークで、弊社では創業以来一貫してSledgeを使いつづけています。Sledgeの魅力はその柔軟性にあり、公開されてから数年たった今の現状でも十分実用に耐えるフレームワークです。 サーバ構成 Wassrは2007年6月20日現在、16台構成で動いています。詳細は図1を参照してください。使用しているソフトウェアはすべてオープンソースです。これは、何か問題が起きたときや、そのソフトウェアについていない機能を追加したいときなどに、自分で対応
本連載では第一線のPerlハッカーが回替わりで執筆していきます。今回のハッカーはDeNAの嶋田裕二さんで、テーマは「高速なWeb APIの実装とテスト」です。 Web APIの基礎知識 はじめまして、DeNAでMobageオープンプラットフォームのWeb API(以降Mobage API)を実装しているxaicronです。Mobageオープンプラットフォームは、Mobageの機能をWeb APIを通して外部の開発者に公開することにより、ソーシャルゲームをユーザに提供するサービスです。 簡単に説明するとWeb APIとは、HTTPを利用してネットワーク越しに処理を行い、結果を返すしくみです。最近ではJSON(JavaScript Object Notation)というフォーマットを利用してデータのやりとりをすることが多くなっており、Mobage APIも基本的にはJSONを受け取って処理を行
本連載では、第一線のPerlハッカーが回替わりで執筆していきます。記念すべき第1回は、WEB+DB PRESS本誌ではVol.2から執筆しており、長らく連載も担当していた宮川達彦さんです。 はじめに PerlでWeb開発をするためのフレームワークは百花繚乱、人気を集めています。本稿では、これらのフレームワークが共通して利用するためのインタフェース仕様であるPSGIと、そのエンジンとしての実装であるPlackを紹介します。 PSGIに至る道 PerlとWebアプリケーション開発の親和性 Perlは「インターネットのグルー(糊:のり)言語」とも言われ、CGIによる開発がメインだった1990年代から、Webアプリケーション開発に最も関わりのあるプログラミング言語の一つと言ってよいでしょう。2000年代に入っても、Ruby on RailsやPHPなどの他言語からの影響も取り入れながら、Web開発
株式会社ミクシィ 開発部 システム運用グループの長野です。普段はミクシィのアプリケーション運用を担当しております。今回から数回にわたり、最近Webアプリケーションのスケーラビリティの分野で話題になっているmemcachedについて、弊社開発部 研究開発グループの前坂とともに、使い方や内部構造、運用について解説させて頂きます。 memcachedとは memcachedは、LiveJournalを運営していたDanga Interactive社で、Brad Fitzpatrick氏が中心となって開発されたソフトウェアです。現在ではmixiやはてな、Facebook、Vox、LiveJournalなど、さまざまなサービスでWebアプリケーションのスケーラビリティを向上させる重要な要素になっています。 多くのWebアプリケーションは、RDBMSにデータを格納し、アプリケーションサーバでそのデータ
livedoor Blogなどのサービスで実際に大量の画像データ管理・保存に使用され、「高価な専用ストレージを使用することなく安全、高速に大量のデータを保存・参照することが可能になります。またSTFは既存のオープンソース技術で作られているため専用ストレージに比べ運用に際して新たなノウハウを学習する必要がありませんので、運用にかかるコストが低くなります」というなかなかよさそうなストレージシステム「STF」が公開されました。ライセンスは「Artistic License2.0」です。 livedoor ラボ「EDGE」 開発日誌 : 分散オブジェクトストレージシステム「STF」公開のお知らせ - livedoor Blog(ブログ) http://blog.livedoor.jp/edge_labs/archives/1609981.html 開発までの経緯は以下のようになっています。 以前
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く