「はてなサマーインターン2009」レポート

#3 大規模データ処理へようこそ! ……インターン第二週

この記事を読むのに必要な時間:およそ 2 分

8日めの講義メモ

8日めの講義は,id:r_kurain氏による「はてなのデータで検索エンジンを作る」⁠アプリケーションエンジニアの立場から,大規模データを扱う実装の一例である「検索エンジン」を作ることを目標として,解説が行われた。

写真4 id:r_kurain氏による「はてなのデータで検索エンジンを作る」

写真4 id:r_kurain氏による「はてなのデータで検索エンジンを作る」

午前2時間の講義と午後半日程度の実習と時間が限られることもあり,この日は以下のような一連の処理のうち,

  • クロール
  • 格納
  • Indexing
  • 検索
  • スコアリング
  • 結果表示

「Index」⁠検索」に焦点が当てられ,基礎知識が説明されていった。講義の序盤では講師のid:r_kurain氏から「形態素解析器を少しでも使ったことがありますか」⁠N-gramって何かわかりますか」という質問が投げられたところ,それぞれ参加者の半数以上が挙手。8日めの課題は,はてなブックマークの全文検索機能の作成,しかも速度と精度も勝負する,という難題かと思えたが,検索は比較的得意分野とする参加者が多かったようだ。

9日めの講義メモ

講義期間の最終日,9日めの講義はid:stanaka氏による「はてなのインフラストラクチャ」⁠同氏から提示された,この日の目標は「はてなのバックエンドがどのように動いているかを学び,コミットするコードが動く環境をイメージできるようにする」こと。

講義初日のオリエンテーションでの「はてなの大規模Webサービスの概要」を踏まえつつ,低レイヤからアッパーレイヤへと,より低くより高く解説範囲を拡充し,インフラとサービスの関係について解説が進んだ。キーワードは以下のとおり。

  • Webサービス
  • はてなインフラ2009
  • スケーラビリティ
  • 冗長化
  • 効率向上
  • ネットワーク

写真5 id:stanaka氏による「はてなのインフラストラクチャ」

写真5 id:stanaka氏による「はてなのインフラストラクチャ」

現在はてなでは,サービスのディレクション,アプリケーション,インフラまでを,自前で開発/管理している。そんなはてなでのインターンを経験するというのは一つの機会なので,システムの全体像を把握した上でアプリケーション開発に取り組めるという醍醐味を知って,経験を持ち帰ってほしいと述べられた。

第二週のおわりに:後半の新機能開発に向けて

第二週の講師からは講義の途中,後半の新機能開発を視野に入れ,どう後半にあたってほしいかなどについてそれぞれの立場から言及されていた。

id:motemen氏の「新機能の開発では,⁠参加者それぞれの)学校の専門を積極的に活かしてほしい」⁠id:r_kurain氏の「⁠本番サービスを視野に入れた)新機能をフルスクラッチから作れるのは貴重な体験」という二人のエンジニアの言葉は,インターン参加者にとって身近な目標が設定しやすくなるようなメッセージとなったのではないだろうか。

今回のはてなサマーインターンで全体進行ディレクションを担当したid:stanaka氏からは「大規模な環境での開発技法からインフラまで,今回の講義で学んだ技術を総合的に投入して後半に挑んでもらいたい」と,そして,同社CTO(最高技術責任者)のid:naoya氏からは「大規模な環境ではすべきことも,できることも違ってくる。容易ではないけれど,ぜひ開発の感覚を掴み取った上でコードをコミットしてほしい」とそれぞれ述べられ,講義過程を経たインターン参加者による後半の開発へ,大きな期待が込められていた。


以上,3回にわたって,はてなサマーインターン期間のうち,前半2週間のエンジニア向け講義の模様をお届けした。その後,前半2週間に続いて実施された後半2週間の開発を無事完了し,全1ヵ月に及んだはてなサマーインターン2009は,8月末についに最終日を迎えたとのこと。

学校とは違う開発現場を見てみたい,飛び込んでみたいと,インターン参加の動機をそれぞれ語ってくれたインターンの参加者たち。彼らの所期の目標は,十分に達成できたようだ。インターン参加者の活躍,そしてはてなのサービスの今後にも,ますます注目していきたい※1)⁠

※1
(株)はてなの機能変更・お知らせのページ,採用・インターン関連のページはこちら。
⁠URL】http://www.hatena.ne.jp/info/
⁠URL】http://www.hatena.ne.jp/company/staff/intern
はてな
URLhttp://www.hatena.ne.jp/