1つの高負荷プロジェクトの歴史

負荷の高い多機能プロジェクトを一緒に書く方法は? お金と時間がないのに、開く必要がある場合はどうなりますか? カットの下で、個人的な経験からのいくつかの興味深い情報。







インターネットサイトを維持しながら生活を楽にするプロジェクトを開発するというアイデアは、ミンスクの小さな会社から生まれました。 私たちのチームは小さいですが、野心的であるため、このような大規模なプロジェクトを一緒に開発することが決定されました。



ウェブマスターの時代は困難でいため、実装のために多くの機能が発表されました。



一般に、 「Dominder」 (英語ドメイン+リマインダーから)を書く必要がありました。

有用で興味深く、有望なプロジェクトですが、問題は十分な時間とリソースではありません。 2人の開発者がいます(2人目は開発開始から3か月後にのみ接続します)。



丘の上にクールな輸入デザインを注文しました。 彼らはRuby on Railsで書くことに決め、PostgreSQLがメインデータベースとして機能しました。



彼らは妥協と技術的解決策を模索し始めました。そのおかげで、現在の重要な欠点を備えた実装を実現できます。



解決回数


彼ら 、フロントエンド実装の品質に費やす時間を、私たちが望むよりも少なくすることに決めました。 私たちはそれを陰険に終わらせます-主なことは、何も顧客を悩ませないということです。



ソリューション番号2


なぜなら 時間がない場合は、パラメータに基づいて1つまたは別の実装方法が選択されます。



時々、歯を食いしばって、コードが高速であるという理由だけで、1つまたは別のコードを書かなければなりません。 曲がった、いが、効果的で柔軟。



決定番号3


開発と並行して、製品が宣伝されました。 これはどのように起こりましたか?

2つの「計画の流れ」が構築されています:開発とPR。 それらは、プロジェクトの現在のニーズと現在の実装の可能性に基づいて均等に満たされる必要があります。 たとえば、プロジェクトの機能部分が準備できている場合、すぐにテストされ、ロールインされ、普及しました。 または、現在のユーザー数が予測よりも少ない場合、最初の美しいつまらないものが顧客向けに開発され(デモアカウントなど)、現在のアルゴリズムの最適化はすでに二次的でした。 そしてその逆に、顧客が大量に来始めた場合、彼らはすべてを落とし、ひどくコーディングし始めるでしょう。 それは一種のスイングでしたが、私の意見では、別の方法で、決してありませんでした。



ソリューション番号4


すべてのドメインのWhois情報は、検索エンジンボットを常に容赦なくインデックスに登録する公開ページから入手できます。 ページはキャッシュされ、現在のクライアントに関係のないドメインは別のサーバーに移動されました(いわゆる垂直シャーディング)。



ソリューション番号5


ping履歴は無期限に保存する必要があるため、すべてのレコードはグラフ表示アルゴリズムに従って「アーカイブ」に押し込まれます。



決定番号6


独自の専用プロキシサーバーを使用して、レジストラからwhoisを取得します。 それらのいくつかは、非常に頻繁な呼び出しのため、最初は単にIPを禁止しました。 その結果、1日に50万のドメインの情報を取得することができました。 制限ではありませんが、修正する時間はありませんでした。



決定番号7


必要なものはすべて、NoSqlに容赦なく突き出すための高速で頻繁なアクセスです。



プロジェクトの開始後、ユーザーを引き付けるという疑問が生じました。

西側のサイトの同じ監視は長い間人気があり、何百万人もそれを使用しています。 しかし、ソビエトの男性に、月に数ドル払うほうが簡単で、収益性が高く、より便利であると説明すると、サイトで何かが起こったことがすぐにわかるようになり、かなり難しいタスクになりました。 多くの人は、監視サイト(および他のサービス)が保険のようなものであることを理解していませんでした。 まあ、何も起こらなかったら。 そして、どうすれば?







テストのために、140のベラルーシのサイトを追加しました。 その結果、サイトの約40%が少なくとも週に1回(5分から数時間の間)アクセスできなくなることが判明しました。 そして、いくつかのサイトはただ動揺し、明らかに顧客を失います。



もちろん、ロシアにはYandex.Metricaのような手ごわい競争相手がいます(そして、彼らは私たちの違いをしばしば尋ねます)。 ただし、Metricはすぐに通知を送信せず(数分遅れることもあります)、さまざまな国のサイトの可用性を確認する方法がありません。場合によっては監視を保証しないため、サイトに追加のコードをインストールする必要があります。



プロジェクトの開始後、リソースが限られていたため、電子メールマーケティング、アフィリエイトプログラム、ホスティング会社やWebスタジオなどのパートナーなど、あらゆる面で独力で行動し始めました。



その結果、すべての調整とジャンプの後、新しく登録した各ユーザーから幼稚な喜びを経験しながら、オープンして最初の利益を受け取り始めました。



All Articles