Elasticweb-最も手頃な価格の共有ホスティング





こんにちは、Habr! おそらく、私は私の不在と私のダイジェストの出版のそのような長い休憩のためにすぐに謝罪します。 人生は劇的に変わりましたが、私はすべてのテープを熱心に読み直し、Web開発者にとって興味深く有用なものの公開集会をまもなく続けます。



そして今、私たちの創造について同僚と話したいです。 Elasticwebは最も手頃な価格の共有ホスティングです。 おそらく野心的すぎるように思えたが、数十人のホスティング事業者の関税計画に精通した後、私たちはそう考えることを余儀なくされた。 Elasticwebには最小または最大コストはありません。共有ホスティングサービスにクラウドアプローチを採用しており、ドメイン、サブドメイン、またはデータベースの数によって制限されることはありません。 クライアントは、使用済みのサーバーハードウェアリソースに対してのみ支払います。





関税







1日あたり合計1000人の参加者がいるn番目のサイトの月次メンテナンスには、1か月あたり30ルーブル以下の費用がかかります。 私たちの計算機は、プロジェクトを維持するコストをナビゲートするのに役立ちます。





ホスティング



Opcacheを使用したPHPバージョン5.6。 デフォルトでは、各サーバーにGit、Composer、Drush、wpcli、ウイルス対策、ファイアウォールがインストールされています。 そして、最も注目すべきは、NginxがWebサーバーとして使用されることです。 もちろん、これには長所と短所の両方がありますが、トピック「Apache vs Nginx」に別のホリバーを作成しないために、この選択の要因に焦点を合わせません。 明らかな理由により、.htaccessファイルは機能しないため、最も一般的なCMSおよびフレームワークの構成の選択を記述および自動化しました:Wordpress 4、Drupal 7-8、Yii、Joomla 2-3、Octevencms、OpenCart 1.5、ZenCart 1.5、CMS Made Simple 、KodiCMS、MaxSite CMS、MODx Revolution、Zend Framework、Symfony、Laravel、Codeigniter、Kohana、phpBB3、MediaWiki、Asgard CMS。 また、インタラクティブなヒントと自動補完機能を備えた本格的なNginx構成エディターの作成にも取り組んでいます。 現時点では、既存のプロジェクトをElasticwebに移行する際に、すべての人を完全に無料で支援する準備ができています。



統計サーバー



すべてのサーバーはDebian上で実行されます。 統計デーモンは、リソースに必要な頻度で、各ユーザープロセスをポーリングし、統計サーバーに送信されるレポートを生成します。 このようなデーモンはすべてのサーバーにあります。 その後、受信したデータはサーバーとアカウントでグループ化され、コントロールパネルにグラフ形式で表示されます。 遅延がないことを確認するために、別のスレッドでスケジュールされたエクスポートを実装しました。



システムのすべてのプロセスを監視します。これは、Webサーバーのアクティビティ、コマンドラインのアクティビティ、インタープリターの動作のいずれであっても同じです。 統計システムの教義-サーバーとの相互作用を考慮する必要があります(CPU%、RAMメモリ使用量、IO操作、ディスク使用量、Web帯域幅、MySQL帯域幅)。 つまり、開いているSSHセッションも考慮されます。



デーモンは、デーモンを使用してPythonで記述され、psutil、pwd、os、time、requests、json、datetime、MySQLdb、threading、re、プラットフォームライブラリ、およびサードパーティのnginx-module-vtsモジュールがトラフィックの分析に使用されます。



制御盤



CPanelとISPmanagerの代わりに、独自の自転車を発明することが決定されました。 第一に、既存の製品を「弾性」に適合させることは、非常に膨大な作業であり、多くの松葉杖が必要でした。 第二に、まだ多くのアイデアがあり、独自のプラットフォームでそれらを実装するのがはるかに簡単です。



サーバーマネージャーの設計と開発における主な目標は、フォールトトレランスを確保することでした。 優先順位と論理的なタスクシーケンスを備えたキューイングシステムを実装しました。 すべてのコマンドは、セキュリティキーを調整した後にのみ実行され、コントロールパネルサーバーとの対話のためだけにシャープ化されます。 操作の実行に失敗した場合、管理者は問題に関する情報メッセージを受け取ります。



JSON形式でコントロールパネルから送信されるコマンドをリッスンするために、Pythonでデーモンを作成しました。 パネル自体はPHPで記述されています。 初期のアーキテクチャと最小限の基本機能セットを取得することが重要だったため、SymfonyやZendのような大規模なフレームワークを放棄し、Codeigniter 3 + HMVCを基礎として(モジュールを作成するために)使用しました。



当初、プロジェクトはロシア語と英語で表示されることになっていた。 言語を考慮できるように、デフォルトのCodeIgniter関数を書き直してURIを処理しました。 ローカリゼーション自体について言えば、翻訳をファイルに保存し、キーの形でそれらにアクセスする方法が好きではありませんでした。 したがって、コードの基本言語として英語を使用し、それを関数に駆動します。関数はデータベースに接続し、サイトで選択された言語を考慮して、この行の目的の翻訳を探します。



コントロールパネルには多くのフォームが含まれており、そのコードと処理はコントローラーのスペースを取りすぎています。 さらに、一部のフォームは数回表示する必要があります。 したがって、CodeIgnitorのFormbuilderを作成し、 GitHubに投稿しました。このツールは誰かに役立つと信じています。 一般に、私たちのチームはオープンソースの動きについて非常に利他的であり、同様のプラクティスを維持する予定です。



支払システム



請求書を作成する際、請求書/請求書および毎月の支払いから離れました。 モバイル加入者との類推により、Elasticwebの顧客は個人のバランスを取り、そこからサービスの代金を支払います。 残高は7日間マイナスになる可能性があり、その後は1か月後にサイトがブロックされて削除されます。 将来的には、ユーザーに対する信用の信用システムを開発する予定です。 そして今、私たちはパートナーのための紹介プログラムを持っています 。その条件はここで見つけることができます



神格化



Elasticwebについて最初に考えたのは、ハードウェア、サーバー、クラウドテクノロジー、およびホスティングに関する通常の会話で偶然に思いついたものです。 開発は、主要な仕事から自由時間でほぼ3か月続きました。 もう1か月は製品のテストに費やしましたが、今では私たちにとって最も重要で重要なテストの1つ、つまり住民の意見を聞く時が来ました。







ご清聴ありがとうございました。 批判、質問、提案をお待ちしています。



All Articles