- クラウド展開に最適化されたスケーラブルなアプリケーションを作成する
- アプリケーション全体で単一の言語を使用することで開発を合理化する
- 組み込み Web サーバーを使用して展開を簡素化する
- MongoDBで大量のデータを柔軟に管理する
ゼロからのアプリケーション構築では、一貫した標準化ソフトウェア スタックを採用することは重要なことです。 一緒に動作するように設計された一連のツールでバックエンドを作成することにより、開発時間を短縮し、リソースを合理化します。
しかし、スタック フィールドは混雑してきています。 LAMP から Ruby on Rails まで、さまざまな選択肢があります。 各スタックには利点と欠点があり、さまざまなプロジェクトに対応します。
MEANとは?
比較的新しいスタックで、MEANはMongoDB、Express.js、AngularJS、およびNode.jsの略称です。 MEAN は、主にクラウド対応アプリケーションに使用されるエンドツーエンドの JavaScript スタックです。 MEAN スタックを使用する理由を理解し、それを採用する場合の例を特定し、個々のコンポーネントを深く掘り下げることにより、ソフトウェア開発における MEAN の価値を最大化することができます。
MEAN スタックを使用してアプリケーションを開発しクラウドに展開することがいかに簡単かを確認したい場合、IBM では MEAN スタックで最新のアプリケーションを作成する簡単なチュートリアルを提供しています。 MEAN スタック アプリケーションは柔軟でスケーラブル、かつ拡張可能であるため、クラウド ホスティングに最適な候補となります。 このスタックには独自の Web サーバーが含まれているため、簡単にデプロイでき、データベースは一時的な使用量の急増に対応するために必要に応じて拡張することが可能です。 MEAN アプリケーションは、クラウドのすべてのコスト削減とパフォーマンスの向上を利用するために最適化された状態で世界に登場します。 しかし、数年前からバックエンドとデータベース開発のためのみの選択肢となり、開発者はエンドツーエンドの JavaScript を使用してアプリケーションを作成することができるようになりました。 MEANのすべての部分で同じ言語が使われているため、開発チームを効率化することができます。 MEANは、アプリケーションの各部分を開発するために、異なる専門家を雇う必要性を排除します。 その代わり、JavaScript開発者のプールを1つ使って、必要なときに必要な場所で臨機応変に作業することができます。 JavaScriptを標準化することで、アプリケーション全体にわたってコードを再利用する機会も得られ、不必要な再発明を減らすことができます。
Use cases
MEAN スタックはすべてのアプリケーションで完璧ではありませんが、優れている用途はたくさんあります。 MEAN スタックは、そのスケーラビリティと同時使用ユーザーを管理する能力から、クラウド ネイティブ アプリケーションを開発するための強力な選択肢となります。 また、フロントエンドフレームワークのAngularJSは、すべての情報と機能を1つのページで提供するシングルページアプリケーション(SPA)の開発にも理想的です。 以下は、MEAN の使用例です:
- Calendars
- Expense tracking
- News aggregation site
- Mapping and location finding
Components
MongoDB
MongoDB はオープンソースの NoSQL データベースで、クラウド アプリケーション向けに設計されています。 MEAN スタックでは、MongoDB はアプリケーションのデータを保存します。 アプリケーションとデータベースの両方が JavaScript を使用するため、オブジェクトがアプリケーションからデータベースへ移動し、戻ってくる際に翻訳する必要はありません。 アプリケーションは、バックエンドとデータベースの間でオブジェクトをプッシュしたりプルしたりすることができます。
MongoDB は、ストレージとパフォーマンスの両方においてスケーラビリティがあることで知られています。 テーブル全体を再ロードすることなくデータベースにフィールドを追加でき、MongoDB は、データ アクセスに妥協することなく大量のデータを管理する能力でよく知られています。 わずか数回のクリックで、データベースで利用できるリソースを拡張でき、時折アクティビティが増加するアプリケーションに最適です。
MongoDB についてより深く知りたい場合は、「MongoDB: An Essential Guide」
Express
Express は Node.js 用の Web アプリケーション フレームワークです。 MEAN スタックのバックエンドを形成する Express は、フロントエンドとデータベース間のすべてのインタラクションを処理し、エンドユーザーへのデータのスムーズな転送を保証します。 Node.js と共に使用するように設計されているので、スタック全体で JavaScript の一貫した使用を継続します。
Express は最小主義で、アプリケーションを散らかさずに効率的にプロセスを処理するように設計されています。 しかし、ミニマリストと機能なしを混同しないでください。 Express はまた、CommonJS モジュール標準を使用して、共有名前空間内の変数の不注意な上書きを防ぐので、自分自身を保護することができます。 自分が以前に作成した変数を誤って再定義することはできません。 JavaScript のクロージャのこの強制は、時間とコストのかかるエラーを防止するのに役立ちます。 これは事実上、フロントエンド JavaScript 開発のデフォルトとなっています。 JavaScript で Web アプリケーションを開発している場合、AngularJS を使用しています。
MEAN スタックには、開発者がユーザー側のアプリケーションを構築するのを支援するために AngularJS が含まれています。 バックエンド、フロントエンド、およびデータベースはすべて JavaScript で構築されているため、アプリケーションのすべての部分間で情報の流れがスムーズに行われます。 デスクトップとモバイル用に同時に開発する能力、よく調整されたパフォーマンス、および使いやすいテンプレートは、クラウド ネイティブ アプリケーションを構築するための理想的なフロントエンドです。
Node.js
Node.js は、非同期イベントを使用して複数の接続を同時に処理するオープンソースの JavaScript フレームワークです。 要求に応じて楽に要求を拡張できるため、クラウド ベースのアプリケーションに理想的なフレームワークです。 ほとんどの有名な Web サイトの背後にある Node.js を見つけることができます。
Node.js は MEAN スタックのバックボーンです。 Express は Node.js 上で動作するように設計されており、AngularJS は Node.js にシームレスに接続して、高速なデータ提供を実現します。 Node.js には統合された Web サーバーが付属しており、MongoDB データベースとアプリケーションを簡単にクラウドにデプロイすることができます。 クラウド アプリケーションは、使用量の急増にすばやく対応できる場合に最適です。 事実上無制限の処理能力が、ユーザーがタイムアウトした後にしか利用できないのであれば、何の意味があるでしょうか。 必要に応じてリソースを拡張することで、より多くのユーザーにサービスを提供することができます。また、フレームワークのシングルスレッド・アーキテクチャにより、アプリケーションは多数の接続にわたってスムーズなユーザー体験を効果的に提供することができます。 Node.js は 100 万もの同時接続をサポートできます。
Node.js は、リソース集約型の要求とは対照的に、多くの低リソース要求で最もうまく機能することを覚えておいてください。 単一スレッドはプロセスのデッドロックから保護しますが、大規模なプロセスがすべてのクライアントのためにシステムをフリーズさせることに対しては免疫がありません。 その柔軟性、一貫した言語、およびスケーラビリティが評価され、MEAN スタックはクラウド向けのあらゆる Web 開発にとって優れた選択肢です。
MEAN スタックを使用してアプリケーションを開発しクラウドに展開することがいかに簡単かを確認したい場合、IBM では MEAN スタックで最新のアプリケーションを作成する簡単なチュートリアルを提供しています。