2016-06-25 3 views
-1

私は、私の会社が提供しようとしている新しいソリューションのためにクラウド展開されたウェブサイトを設計中です。私はいくつかの質問に答えようとしていて、ローマにいるときは運がなかった。マイクロアプリケーションを備えた完全にスケーラブルなウェブサイト

まず、私はウェブサイトを特定のフレームワークに固執させたくありません。私はウェブサイトを完全に将来証明する方法がないことを知っていますが、私はむしろすべての卵を1つのバスケットに入れることはしません。

第2に、フロントエンドとバックエンドの間を完全に分離したいと考えています。私はこれをやろうとしている理由のリストを持っているが、必ずしも彼らが何であるかの会話に入りたいとは思わない。ほとんどの場合、サーバー側のレンダリングは問題になりません。

だから私はどこにいますか?

私の最初の考えでは、どのAPI呼び出しでもアクセスできるREST APIを用意しています(これは将来GraphQLに変わる可能性があります)。

私が主張しているデザインの決定は、フロントエンド用です。このウェブサイトは、テナントがログインしてスクリーンを見ることができるダッシュボードタイプのシステムになります。

私は、一種のシェルを持っていると思っていましたが、それはindex.htmlに繋がっています。これは独自のルーティングを持ち、シェルロジックとは完全に別のマイクロアプリケーションをレンダリングします。私はパスが「/」

され、index.htmlのをロードする場合

だから、たとえば、それが責任だいくつかのルートがあり、 「/ドス」 「/アカウント」を言うことができます

の場合私は/ todosルートにアクセスし、シェルアプリケーションはそのマイクロアプリケーションをレンダリングします。このアプリケーションは、ウィンドウからロードされる可能性のあるデータを除いて、シェルとは完全に分離されています。このアプリケーションがシェルアプリケーション経由でレンダリングされると、

私のtodosルートは、例えば、独立したreduxアプリケーションになる可能性があります。

これは共通のアーキテクチャですか?これの例はありますか?これについてもっと良い方法がありますか?

ありがとうございました!

答えて

1

あなたの井戸のように聞こえますが、本当にこの獣を工学的に操作しすぎています。

あなたはすべて個別に取り組んで多くのdevのチームと巨大なビルドのようなアーキテクチャを取ることができます。小さなアジャイルチーム、上記の各「アプリ」

マイクロサービスアーキテクチャが真剣に素晴らしいです間のコンテキスト切り替えで定型と脳の痛みで非常に多くのオーバーヘッドを作成します。あまりにも小さく分割しないでください。ユースケースをよく読んで、それに応じてサービスを中断してください。

たとえば、私たちは3人のチームです。我々は、かなり大っぽいアプリがに考案した:

  1. PHPのAPI
  2. バックエンドの管理インターフェイス(Reduxの)
  3. フロントエンドのWebサイト(HTML、反応し、PHP)
  4. 検索サービス(弾性検索)
  5. キャッシュ(Re​​disの)
  6. データストア(mysqlの)

すべて複数で実行されている上で行います複数のホストにまたがるckerコンテナバックエンドをプルダウンします。フロントエンドのウェブサイトはまだ起動しています!

+0

あなたの洞察力を賞賛してください。私は自分自身より先に進んでいたと思うが、将来は同じアプリケーションではないかもしれないマイクロアプリでフェザリングを考えている。 – BJacobs

+0

将来的にそれを証明すれば、未来は決して到着しません;-) – AndrewMcLagan

関連する問題