Vkontakteゲーム-1回のローンチのストーリー

みなさんこんにちは。 金曜日、ソーシャルネットワークvKontakte-TurboGonkiのレースを開始しました。 ここで再生できます: http : //vkontakte.ru/turboracesですが、次のようになります。



画像



ゲームはまだベータテストモードになっているため、トピックの作成者、ブラウザーを破棄するという相容れない欲求を嫌う場合があります。バグを見つけることは間違いありませんが、私たちを明るくしてくれます。



何に書かれていますか?




クライアント部分はActionScript、物理実装はBox2Dです。 レースプロセスを制御するサーバー側はQt、メニュー、ストア、その他の小さなものはPHP(CodeIgniter)、データベースはMySQLです。



どうやって始めたの




ゲームは長い間書かれました。 長い間わいせつです。 これらの用語を呼び出すことさえ恥ずかしいので、そうしません。 いくつかの開発者が変わりました。私の記憶では、プロジェクトは2回凍結され、リリース日は3回延期されました。 最終的に、彼らはリリースすることに決め、先週の木曜日に開始しました。 正確には、金曜日に、なぜなら 日中のアプリケーションはモデレートでハングしました。



ゆっくりと、ユーザーがゲームに参加し始め、レースを作成してプレイし始め、私たちがそこにいることに気付きました。 バグの数は予想よりも4倍多いことが判明し、まったく表示されなかったバグも除外されました-マーフィーの法則は有効です。 主なものは、それらにもかかわらずプレイできるということでした(すでに重要なものを修正し、ゲームを少し安定させました)。



これを見てから、週末(インストールされてから1日半以上)に少数のユーザーで実行し、ほとんどの問題を特定して月曜日に修正し、1週間で積極的にプロモーションに参加することにしました。



しかし、土曜日に、VKontakteで広告をテストすることにしました。 トラフィックは少しずつクロールし、実験によりアプリケーションのインストールコストが1.5ルーブルから0.4になりました。これは素晴らしいことで、午後11時になってトラフィックが川に注がれました。



それが接続されているもので-言うのは難しい、なぜなら 分析する時間はありませんでした。 悲しい経験を次世代に伝えます。Apacheがサーバーにインストールされているときは、ソーシャルネットワーク上のアプリケーションから始めないでください。 うーん、一般的に、 トラフィックの急激な流入は予想していませんでした。サーバーは通常のデフォルト設定であり、そこに店舗が回転していました。 はい、8 GBのRAM、80のSSD、およびある種の4コアプロセッサですが、これはすべて役に立ちませんでした。 Webサーバーがハングしました。 私たちは、Apacheが悲しげに窓の外を見て、怒り狂った淡い顔の群衆を見て、向きを変え、悲しげにフックにループを投げるのを想像しました。



少なくともApacheのプロキシとして、nginxを迅速に展開しました-助けになり、少しきれいになりました。 午前中、ワーカー2を配信せず、プロセス数を増やす必要があることに気付きましたが、デフォルトの構成も保存されました。 しばらくの間。



次の1時間で、交通はtight迫し、その後眠りました。 その結果、最初の1時間でどのように記憶したかはわかりませんが、午前5時に就寝したとき、明日雲に移動することを既に決めていたため、アプリケーションには7,000人のユーザーがいました。



10時、彼らはサーバーがダウンしたという電話で私を起こした。 カウンターでページを更新すると、すでに14,000人のユーザー(5時間で2人)がいて、彼らが密集した流れで進んでいるのを見て、少し驚きました。 ここでは簡単になったことがわかりました。nginx'aの設定を修正しただけで、サーバーは元気に稼働しました。 次の5時間で再び2倍になりました。午後3時の時点で、28,000人のユーザーがいました。 それはすでにさらに進んでいます。



現在のアーキテクチャはどのようなものか




日曜日に私たちはOversan-Skalaksiに滞在しました。 なぜあるのですか? はい、私は他のロシアの雲について何も知らないだけで、アメリカやヨーロッパではpingに戸惑いました。 ロードバランサーとその背後に2台のサーバーを配置すると、コントロールパネルでは次のようになります。



画像



ベースとゲームサーバーはまだクラウド内にありませんが、別のデータセンターのより強力な専用サーバー上にあります。



HAProxyはバランサーにインストールされ、バランサーはその背後のサーバー間で負荷を分散します。 設定はほぼデフォルトであり、ここにあります: http : //pastebin.com/xZ7Prc3u 、日曜日に初めて見たので、深く理解する時間はあまりありませんでした。誰かが私にもっと良い方法を教えてくれたら、喜んで聞きます



Webバックエンドにはnginx + php-cgiがあります。 Skalaxiパネルによるスケーリングは、私が理解していることであるため、どのように機能するかを言うのは難しいです)



これらの8キロメートルのテキストを読んで、「fu、VKontakte」と言わず、マイナス記号を付けなかった皆に感謝します:)



コメント、提案、推奨事項、ヒントを聞いてうれしいです。



最後に、コメントのリクエストでのゲームプレイのスクリーンショット:



画像







All Articles