ソーシャルアプリ入門
SNSプラットフォームビジネスの企画・開発・運営ガイド
- 出版社
- 株式会社 翔泳社
- 発売日
- 2010年5月29日
- 価格
- 1,985円
「つくる」では具体的なシステムの構築について、ご紹介します。
クレイはスタッフ全員がエンジニアであり、それぞれ得意分野があります。そして「みんなで考え、作る」という価値観から、お互いが協力することでインフラ構築からプログラム、運用まで高いレベルで行えるようにしています。
それでは具体的な事例を元にご紹介していきます。
「障害に強いインフラ構築」とは、どんなものでしょう?
障害には高負荷になった時に止まってしまうことや、ディスク障害でサーバが止まってしまうことなどがあります。そういった障害が発生した時も安定して動作したり、別のサーバに簡単に切り替えができることが障害に強いと考えられます。
もちろん高価な機器を利用して、「障害に強いインフラ」を構築することもできますが、サービス開始時は安価に始め、利用料に応じてインフラ規模を大きくしていく方法を弊社としては提案しています。
例としてmeromero parkではAmazon EC2を利用したサーバ構成(画像)にしており、次のように工夫しています。
Elastic Load Balancingを使って、負荷に応じて自動的にWEBサーバの台数を増減させるキャッシュはmemcached、更新頻度が高く一時的なデータはTokyo Tyrantに格納することでDBの負荷を下げる更新はMasterDBへ、読込はSlaveDBへ問い合わせを行い、SlaveDBは負荷に応じて増やす静的なファイルはAmazon S3へ配置他にも様々な工夫をしています。
他にも様々な工夫をしています。
詳しくはこちらの書籍に書いてありますので、ぜひ参考にしてください。
クレイの得意分野として、WEBサービスAPIの設計と構築があります。WEBサービスAPIとは外部から利用できるようなインターフェースのことで、APIを公開することで、システム同士が相互に接続できたり、多様なクライアントから接続できたりできます。
WEBサービスAPIといっても、いろいろな方法がありますが弊社が最も得意としているのはREST APIと呼ばれるものです。例えば、twitterはREST APIを公開することで、ブラウザやFlash、iPhone、Androidなど様々なクライアントが世界中の開発者によって作られています。
弊社で開発した「メール配信システム」は従来Javaで構築されたユーザデータやメールアドレスの投稿システムはそのままに、APIを利用してメール配信部分のみを入れ替えています。
またドコモ様から依頼された「API設計ガイドライン」では、REST API設計を行うためのガイドラインを作成しています。様々なベンダーがこのガイドラインを利用してAPIを設計することで、サービスが異なっても統一したインターフェースを持つようにすることができました。
私達はシステム同士を繋げたり、いろんなクライアントから接続できるようにしたりすることに大きな可能性を感じています。
クレイが注力するターゲットはブラウザだけではありません。そのシステムに合ったクライアントを提供できるように、ブラウザ以外のフロントエンドの技術にも注力しています。
特に次のクライアントに力を入れています。
また外部公開できるバックエンドがあるからこそ、様々なクライアントへの対応を容易にしています。
パソコンをお使いの方ならおなじみの、マウスカーソルを重ねると現れるツールチップの機能をWebサイトに追加します。何かの用語など解説を必要とする単語も、注釈の様にスクロールしたり大きく視線をそらすことなく言葉の解説を追加することができます。
「障害に強いインフラ構築」と併せて、安定した運用を行うことが大事です。
障害に強いインフラが出来ても、手間がかかるシステムでは安定した運用はできません。またサーバの状況を簡単に把握するためのツールも必要となります。
具体的にはサーバを安定して運用するためのツールを独自にパッケージ化して提供しています。
例えば、死活監視を行うことで、サービスが正常に動作しているかを確認し、リソース監視を行うことで負荷状況やサーバ状況を正確に把握できるようにします。
長くなってしまいましたが、クレイの「つくる」はいかがでしたでしょうか。
まだ発展途上ではあり、「つくる」も日々進化し、変わっていくと思います。
「つくる」では実際の開発についてご紹介しました。
「クレイのかんがえる」では、「つくる」ためにどう考えるかをご紹介しています。
ぜひそちらもご覧ください。