
過去数か月間の
Impress ASの変更に関する簡単なレポートを提供しています。 まず、フレームワークを通過しませんでしたが
、アプリケーションサーバーの領域
に急いで行き、2つの方向にスケーリングを提供しました。 最初の方向にはサンドボックスの開発(相互および起動環境からのアプリケーションの保護)が必要で、2番目の方向にはクラスターからマルチサーバークラウドへの移行が含まれていました。 ここで用語を明確にする必要があります。ノード
クラスターでは、マスター/ワーカーモードでアプリケーションのマルチスレッド起動のメソッドを呼び出すのが一般的です。したがって、マルチサーバーインフラストラクチャ(各サーバーにクラスターがある)
クラウド (または
アプリケーションクラウド )を呼び出します。 このクラウドは、通常、大衆の理解と誤って関連付けられているため、オペレーティングシステムの仮想化とは接続されていません。 クラウドテクノロジーは、仮想化テクノロジーに基づいて編成する必要はありませんが、現在、大量消費向けに拡張する他の簡単な方法はありません。
クラウド仮想化は、アプリケーションアプリケーションの無限の仮想化を保証するものではなく 、大規模で負荷の高いシステムのすべての開発者は、数十万から数千万のユーザーに対して、サーバー全体にタスクを分散し、それらを1つに統合するが、集中化する特別なアプリケーションソリューションを作成する必要があることを知っています管理対象システム。 これがImpressで解決するために取り組んだ問題です。用語を守り、詳細に進むことができれば幸いです。
革新とバージョン
現在、0.0.71と0.1.2の2つの現在のバージョンがあり、それぞれインストールできます。
npm install impress@0.0.71
年末年始はすべて、Impressのサンドボックス化とリファクタリングの実装に冷笑的に費やされました。 カーネルの最大80%が書き換えられ、バージョン0.1.2は最小限の修正で0.0.71用に作成されたアプリケーションでテストされました。 機能的には、これらのバージョンでは、サンドボックス化とアプリケーション作成の機能を除き、すべてが同じです。 古いスタイルから新しいスタイルへのリファクタリングは非常に簡単で、アプリケーションサーバーAPIへの呼び出しを置き換えるだけです。 先日、私は、次のような小さな移植指示をリリースします Impressを使用する外部開発者はすでに十分な数になっていますが、NGに対してそうした贈り物をしたくありません。 指示があれば、彼らは数分で移植に対応できると思います。
したがって、両方のバージョンに存在する機能革新:
- ZeroMQ ( サーバー間相互作用)を介したプロセス間のブロードキャストメッセージの形式でのプロセス間通信の実装 IPC(同じサーバー内)。 これは、プロセスに接着しているユーザーが互いに対話できるようにするために必要です。
- WebSocketのサポートが追加され (長い間リクエストされていました)、 Server-Sent Eventsの実装が更新されました。 デモアプリケーションには、その使用例があります。 さらに、これらのプロトコルは同じポート(たとえば80)でアクセスでき、アプリケーションはページを送信しますが、単に異なるURLで、 CORSなしで実行できます(何らかの理由で、クロスドメインリクエストと他のポートはすでに別のドメインと見なされています) 。
- 多くの依存関係が削除され 、モジュールはインストールされて構成に追加された場合にのみ使用されます。 これはすべて、 geoip-liteライブラリのおかげです。突然、120 MBの一時ファイルと重いデータベースドライバーをすぐに残す必要がなくなりました。 私はすでにgeoip-liteのパッチを作者に送りました。npmではまだありませんが、誰にとっても重要です-githubを介してインストールしてください、ここですでに利用可能です 。 UPD :2014-01-13ちょうど新しいバージョンがnpmにヒットしました。
- テンプレート、静的、およびビジネスロジックハンドラーの最適化されたキャッシュ。ファイルシステムの最適化された追跡や、ディスク上のファイルを変更する際のキャッシュの更新が含まれます。 また、新しいバージョンでは、サンドボックス内のアプリケーションのスクリーニングを提供するために、キャッシュが完全に書き直されています。
ルアーにスライドしてプレゼンテーションを表示(クリック可能)

今、説得力のために、
プレゼンテーションからのクールなスライドを示します。 プレゼンテーション内のコード例はバージョン0.0.71にのみ関連しており、誤解を招くようなパトステキストは0.1.2にも関連しているため、アプリケーションサーバーに関する一般的なアイデアを得るために見てください。 プレゼンテーションの
英語版もあります。 Impressをよく理解するには、優れたスクリーンキャスト、さまざまな例、およびこれらの例を説明する記事が絶対に必要であり、準備中であり、まもなく利用可能になることを理解しています。 サポート、バージョンの開発とリリースの強度、検出されたバグを修正するアクティビティ、および改善の希望に関しては、
Githubの印象に追加できます。 質問を送信したり、
問題をロシア語または英語で投稿してください。
参照資料
Github:
https :
//github.com/tshemsedinov/impressnpm:
https :
//npmjs.org/package/impress