クレイの「つくる」

つくるといえば歯車

「つくる」では具体的なシステムの構築について、ご紹介します。

クレイはスタッフ全員がエンジニアであり、それぞれ得意分野があります。そして「みんなで考え、作る」という価値観から、お互いが協力することでインフラ構築からプログラム、運用まで高いレベルで行えるようにしています。

  1. 障害に強いインフラ構築
  2. 外部公開できるバックエンドの構築
  3. 様々なクライアント
  4. 安定した運用

それでは具体的な事例を元にご紹介していきます。

1障害に強いインフラ構築

「障害に強いインフラ構築」とは、どんなものでしょう?

障害には高負荷になった時に止まってしまうことや、ディスク障害でサーバが止まってしまうことなどがあります。そういった障害が発生した時も安定して動作したり、別のサーバに簡単に切り替えができることが障害に強いと考えられます。

もちろん高価な機器を利用して、「障害に強いインフラ」を構築することもできますが、サービス開始時は安価に始め、利用料に応じてインフラ規模を大きくしていく方法を弊社としては提案しています。
例としてmeromero parkではAmazon EC2を利用したサーバ構成(画像)にしており、次のように工夫しています。

Elastic Load Balancingを使って、負荷に応じて自動的にWEBサーバの台数を増減させるキャッシュはmemcached、更新頻度が高く一時的なデータはTokyo Tyrantに格納することでDBの負荷を下げる更新はMasterDBへ、読込はSlaveDBへ問い合わせを行い、SlaveDBは負荷に応じて増やす静的なファイルはAmazon S3へ配置他にも様々な工夫をしています。

サーバー構成図

サーバー構成図

他にも様々な工夫をしています。
詳しくはこちらの書籍に書いてありますので、ぜひ参考にしてください。

ソーシャルアプリ入門
SNSプラットフォームビジネスの企画・開発・運営ガイド

出版社
株式会社 翔泳社
発売日
2010年5月29日
価格
1,985円
著者

ソーシャルアプリ入門

2外部公開できるバックエンドの構築

クレイの得意分野として、WEBサービスAPIの設計と構築があります。WEBサービスAPIとは外部から利用できるようなインターフェースのことで、APIを公開することで、システム同士が相互に接続できたり、多様なクライアントから接続できたりできます。

WEBサービスAPIといっても、いろいろな方法がありますが弊社が最も得意としているのはREST APIと呼ばれるものです。例えば、twitterはREST APIを公開することで、ブラウザやFlash、iPhone、Androidなど様々なクライアントが世界中の開発者によって作られています。

弊社で開発した「メール配信システム」は従来Javaで構築されたユーザデータやメールアドレスの投稿システムはそのままに、APIを利用してメール配信部分のみを入れ替えています。

またドコモ様から依頼された「API設計ガイドライン」では、REST API設計を行うためのガイドラインを作成しています。様々なベンダーがこのガイドラインを利用してAPIを設計することで、サービスが異なっても統一したインターフェースを持つようにすることができました。

私達はシステム同士を繋げたり、いろんなクライアントから接続できるようにしたりすることに大きな可能性を感じています。

メール配信システム

メール配信システム

API設計ガイドライン

API設計ガイドライン

3様々なクライアント

クレイが注力するターゲットはブラウザだけではありません。そのシステムに合ったクライアントを提供できるように、ブラウザ以外のフロントエンドの技術にも注力しています。
特に次のクライアントに力を入れています。

  • HTML5
  • iPhone, iPad
  • Android

また外部公開できるバックエンドがあるからこそ、様々なクライアントへの対応を容易にしています。

Wall Calendar

Google Calendar のスケジュールを壁紙にできます。

Good Choice

Amazonを利用した商品レビューブラウザ

iPhoneアプリ

Webアプリケーション「YoG」

パソコンをお使いの方ならおなじみの、マウスカーソルを重ねると現れるツールチップの機能をWebサイトに追加します。何かの用語など解説を必要とする単語も、注釈の様にスクロールしたり大きく視線をそらすことなく言葉の解説を追加することができます。

Webアプリケーション「YoG」

4安定した運用

「障害に強いインフラ構築」と併せて、安定した運用を行うことが大事です。
障害に強いインフラが出来ても、手間がかかるシステムでは安定した運用はできません。またサーバの状況を簡単に把握するためのツールも必要となります。

具体的にはサーバを安定して運用するためのツールを独自にパッケージ化して提供しています。

  • 監視
  • 死活監視
  • リソース監視
  • セキュリティ対策
  • ファイル改竄検出
  • rootkitなどのツールを検出

例えば、死活監視を行うことで、サービスが正常に動作しているかを確認し、リソース監視を行うことで負荷状況やサーバ状況を正確に把握できるようにします。

死活監視

死活監視のスクリーンショット

リソース監視

リソース監視のスクリーンショット

最後に

長くなってしまいましたが、クレイの「つくる」はいかがでしたでしょうか。
まだ発展途上ではあり、「つくる」も日々進化し、変わっていくと思います。

「つくる」では実際の開発についてご紹介しました。
「クレイのかんがえる」では、「つくる」ためにどう考えるかをご紹介しています。
ぜひそちらもご覧ください。

  1. メモからはじめる情報共有 DocBase 無料トライアルを開始
  2. DocBase 資料をダウンロード

we use!!Ruby on RailsAmazon Web Services

このページの先頭へ