序章
Inspiring to a Cloud は、開発、プロバイダーの継続性、およびセキュリティを期待する一方で、運用の専門知識を向上させることを期待している企業にとって、無視できない取り決めに変わりました。
ここにリストされている、私たちはあなたがしなければならないことを作る柔軟な取り決めをカバーしています. NodeJS イニシアチブや企業を最小限の労力でクラウドに移行できることを想像できる。 この真実により、クラウドで展開可能な正直でスケーラブルなモジュール/会社に分割されたため、単一コードのモノリシックアプリから開始しました。
The 英語 (En) とフランス語 (Fr) の両方の YouTube チャンネル に実際にアクセスできます。 ここ.
Numerica Ideas
NumericaIdeas は、地球上のあるレベルで多様な専門的機会を生み出すことができる支援的な技術コミュニティの発明に努めています。さらに、それは、夢の仕事を救うためのコミュニティ、または体験を開始するための適切なスペースになります (サンドボックスのようですが正確です)プロよりもニュートラルの方が早い…
YouTube
NodeJSのシンプルさ
安全に移動するための地域の場所へのアプローチクラウドは、プロジェクトまたは会社の要求に一致する、明確に定義された思慮深い信念の一部である必要があります。 あなたは(クマの優先リストの)修正を行っており、関係する3回目の機会です。 さまざまな戦略を実行したり、さまざまな戦略を実行したり、目標を達成したりできると同時に、想像できる最小限の努力で他の人に飛び立つように門を開くことができます。 Rehosting aka choose-and に興味を持ってみましょう-shift および 再プラットフォーム化 aka チョイス・ティンカー・アンド・シフト, これらの詳細については、この 記事 で説明されています。 by Stephen Orban で最初に見たAWS クラウド エンデバー プランのブログ 最初は有名で、一見最高の状態から始まりました選択してシフトするアプローチでは、モノリスアプリを EC2 に API は Nginx 経由で提供されます サーバー。 次に、クルーはいくつかの再編成、マスタリング Clouds Ideas を開始しました。 、有名なアプリをさらにステートレスにすることで、非常に特定のタスク/機能を生み出す正直なモジュールを保持するためにアプリを壊し始めました。 そうすることで、NodeJS マイクロサービス テンプレート ができあがりました。クラウドへの移行から戻したい場合は、いつでもオンプレミス展開を計画することを忘れないでください.
サンプル NodeJS 構造
イラスト関数には正しくありませんが、この種の関数は歴史的であり、多くの企業が製造業の NodeJS 企業をクラウドに移行する前に、クラウドに関する専門知識を高めてさらなる改善を図ってください。
ハイレベル構造
AWS がこの状況で選択されましたが、サーブの前提は他の多くのクラウド企業やオンプレミス インフラストラクチャでさえ、これが NodeJS の複数の理由による移行アプローチであると考えている理由です。 アプリはこちら高レベルのアーキテクチャ設計はどのように見えるか:
このアーキテクチャでは、多くの企業が NodeJSアプリは Lambda 関数 または認証済み としてデプロイされます。 server Apps.コードを少し修正して、アプリを開始するためのさまざまなスターター レコードデータの実行に関連付けられている既存のサーバーへの Lambda 展開を強化することができます lambda.js および server.js。 全ソースコードは GitHub にあります。 .構成いいえ各プロバイダーが展開される方法、多かれ少なかれカスタムメイドのプロバイダーの検出/構成は、実行時に企業についてより多くを知るために公開されています。 展開する際、プロバイダーはキャッシュ (ElasticCache または Personalized Redis) 内の支払いによって展開されたモードを指定します。
非常に迅速に、構成を一元化したいという要望が生じます
Knife
は高いオプションでしたが、私たちはせいぜい簡単な個人的な (すぐに暗号化するために) を使うことを選択しました AWS S3 バケットは簡単にするためのものですが、これは中間的な決定です。
サービス通信
ここに示されているように、企業の会話は、2 つの有名なプロトコルによって処理されます。 典型的で些細な Relaxation API プロットと、非同期通知チャネルの拡張 (Redis/SNS pub および sub) . このプロジェクトは、他の展開された企業/モジュールまたは 3 番目のイベントとの関係を考慮して、特定のチャネルを聞くように構築されています。
Lambda ニュートラル (再プラットフォーム化), AWS SNS は、非同期通知を他に送信する履歴があります。展開企業と予定イベント (ほとんどの場合 事前に構築された Docker イメージを含む AWS Batch は、cron ジョブ ランナーです。
逆にサーバー(リウェブホスティング)ではモード、 Redis Pub/Sub は会社の通知の明確な部分にあり、キット はnode-cron
は、ひどい規模で cron ジョブを処理します.
キャッシュ
Redis は企業のキャッシング サーバーとしての歴史があり、展開戦略のトピックではありません。単一ノード ElastiCache から始めました 気づけばもっとクラスターが欲しくなってきました
この特定のセットアップでは、最初にサーバー コードと同じマシンからデータベースを移動したため、アプリはより正直でステートレスになります。 VPC 内の MongoDB Atlas プロバイダー (実際には便利) で、またはカスタムメイドのデータベースを AWS EC2の場合、オンプレミス配置ベアの考慮事項を解決するハイブリッド アーキテクチャの発明に力を入れているため、おそらくさらに機能する可能性がありますが、それには他の維持/管理コストが伴います.
ファイルストレージ
サーバー整理のパスに安心 App軽量でステートレスで潤沢、 AWS S3 は会話/ビデオ ストレージの歴史をたどっていますが、今すぐ統合するのではなく、オンプレミスまたは実行可能のいずれかで動作するようにリージョン内に配置されたすべてのピースを使用して移行のために構築された他の厄介なプロバイダー必要に応じていつでもストレージプロバイダーを切り替えることができます.
メール
予備的なコードを再利用可能なモジュールに分割することは、以前は望ましい結果を生み出すために行った主な選択の 1 つでした。その結果、電子メールを処理する別のプロバイダーが必要になりました。実装貴重品として任意の会社の費用でお送りします。
AWS SES は、移行の理由で過去のものです。安全性
分散型アーキテクチャの分散型セキュリティメカニズムを実行することは価値があります。パーツ間で完璧に機能するようにします。 JWT は以前は新鮮だったので保存していましたが、そのレベルに達した後、すべてのパーツがクラウドにデプロイされました。 分離されたコミュニティ (AWS VPC) を使用してこれらをデプロイし、他のリージョンに配置することなく、CI/CD パイプラインに貴重な変更を加えました
セキュリティ最も簡単実践 一歩一歩.モニタリング
Lambda をデプロイするたびに、いくつかのデフォルトのメトリクスが CloudWatch に保存され、プロットを知ることができますあなたの関数スキームは時間の経過とともに構成され、呼び出し、期間、エラーカウント、スロットル、同時実行などで構成され、今では面倒ではありません.
しかし、他のすべての貴重な説明は、プログラムによる柔軟性です役職SDK を介してカスタムメイドのメトリクス を実行時に AWS CloudWatch に送信し、何を歌いたいかを計算するか、
組み込みメトリック レイアウト 仕様。技術的な懸念事項 )project は、従来の NodeJS プロバイダーとして開始され、クラウドへの移行を容易にするための機能が追加されていましたが、README ファイル: src
フォルダー、後でバニラ JavaScript にコンパイルされます ( に) bin フォルダ) をデプロイ前に 近隣での運用またはカスタムメイドのサーバー内では、従来のように
npm begin.
クラウディアJS、展開手順の中心にあるツールにより、一意の Lambda のスキームを簡単に作成できます) 環境ごとに 1 つの明確なアプリケーション/プロバイダーの展開: npm saunter deploy:dev また npm saunter deploy:prod
、それより前に、npm saunter compose .- 各展開全体で、アプリのコピーが に保存されます。 ni-deployments バケットは “expend-s3-bucket” パラメーター、これはおそらくコンプライアンスやその他の検証機能の履歴である可能性があります.
- としてデプロイされた場合ラムダニュートラル、一部 ヒーター は、私たちの機能に熱く取り組むために地域に配置する必要があります。スクリプト を実行して、そのようにします。 npm saunter job:heat:env
(do env は dev またはprod (このコンテキストでは)) heat を更新します。 json ファイルに多様な明確なヒーアを持たせるターズ(5で覆われていると感じました)。 しかし、他のすべての応答は、のサーブを収集することですProvisioned Concurrency は、より雰囲気が合っているように見えますが、高い。
- 先行レベルと同じで、中立者が特定のものを購読できるようにします )SNS の主題は、policy.json ファイルの場合、変数 と一致します。 不定期
Redis aloof による履歴pub/sub サンプルの場合、実行中 npm saunter sns:env. 展開段階で、アンビエンス変数は Explain から取得されます )bucket スクリプト経由でアクセス可能 npm saunter gain-vars:env および に保存) env.json その後、ニュートラルを展開するために歴史的に進んでいます。 関節
npm saunter space-vars:env
は逆の処理を行い、env.json を受け取り、構成バケットにプッシュします。 kit.jsonファイルで代替できるものとします。Roar-gateway は歴史的ネイティブな方法で API ゲートウェイ として機能し、いくつかの企業に対して、製造業の展開は高難度です。の AWS API ゲートウェイ 。 つまり、開発者は、要求された テンプレート を作成し、ゲートウェイ
README ファイル: src
フォルダー、後でバニラ JavaScript にコンパイルされます ( に) bin フォルダ) をデプロイ前に 近隣での運用またはカスタムメイドのサーバー内では、従来のように
npm begin.
クラウディアJS、展開手順の中心にあるツールにより、一意の Lambda のスキームを簡単に作成できます) 環境ごとに 1 つの明確なアプリケーション/プロバイダーの展開: npm saunter deploy:dev また npm saunter deploy:prod
、それより前に、npm saunter compose .- 各展開全体で、アプリのコピーが に保存されます。 ni-deployments バケットは “expend-s3-bucket” パラメーター、これはおそらくコンプライアンスやその他の検証機能の履歴である可能性があります.
- としてデプロイされた場合ラムダニュートラル、一部 ヒーター は、私たちの機能に熱く取り組むために地域に配置する必要があります。スクリプト を実行して、そのようにします。 npm saunter job:heat:env
(do env は dev またはprod (このコンテキストでは)) heat を更新します。 json ファイルに多様な明確なヒーアを持たせるターズ(5で覆われていると感じました)。 しかし、他のすべての応答は、のサーブを収集することですProvisioned Concurrency は、より雰囲気が合っているように見えますが、高い。
- 先行レベルと同じで、中立者が特定のものを購読できるようにします )SNS の主題は、policy.json ファイルの場合、変数 と一致します。 不定期
Redis aloof による履歴pub/sub サンプルの場合、実行中 npm saunter sns:env. 展開段階で、アンビエンス変数は Explain から取得されます )bucket スクリプト経由でアクセス可能 npm saunter gain-vars:env および に保存) env.json その後、ニュートラルを展開するために歴史的に進んでいます。 関節
npm saunter space-vars:env
は逆の処理を行い、env.json を受け取り、構成バケットにプッシュします。 kit.jsonファイルで代替できるものとします。Roar-gateway は歴史的ネイティブな方法で API ゲートウェイ として機能し、いくつかの企業に対して、製造業の展開は高難度です。の AWS API ゲートウェイ 。 つまり、開発者は、要求された テンプレート を作成し、ゲートウェイ
を置き換えます構成 API エンドポイントのリダイレクトが期待どおりに機能するようにします CI/CD パイプラインは の拡張を利用します) Gitlab CI、および対応する 設定ファイルはインスピレーションフォルダにあります.
サーバーの配置に従って ASG, Redis pub/sub の重複がないように常に明確にする必要があります。
より技術的な部分を隠すために、CI/CD パイプライン は、次の記事で設計、構築、および文書化されていました:
ClaudiaJS を使用した GitLab CI/CD の拡張である NodeJS と Python Lambda 関数を急いで発明、チェック、デプロイします。 Chalice、またはサーバーレス フレームワーク。
また、強く推奨します
AWS Capability Builder は、AWS クラウドのスキルを強化するために公開するための便利なリソースです。
——————
私たちは、プロのコミュニティを発明して、無料の知識共有コミュニティをさらに発展させるためのプラグインを正しく開始しました.クラウド コンピューティング、機械のファッション、機械のアーキテクチャを保護しながら、ドアを節約することで、より多くの機会が生まれます。
これはあなたに連絡していますか? YESの場合は、お気軽に コミュニティとの接触を保護し、独立して組織されたイベントの一部となるために、Discord Server に参加してください。
——————
クラウドに興味がある方はこちら 動画は、6番目に多いです 重要なアイデア 知っておきたいこと:
結論
ここにリストアップし、ハイライトしました地域の選択肢は、背の高いNodeJSアプリを多様に移住させますちっぽけな部分は段階的に AWS パブリック クラウドに移行されましたが、クラウド移行のトピックに関して「1 つの選択肢がすべてのニーズに適合する」というものは存在しない可能性があると想像してみましょう。あなたは正しい筋書きを動かすことに献身的な信念を持っています. GitHub
この記事を読んでくれてありがとう。たまたま好きだった。 で私たちを見つけてくださいFb , ツイッター、 と LinkedIn より言語化された資料については.
Numerica Ideas に登録する
受信トレイに正しく配信される最新の投稿を本質的に組み立てます
電子メール
マンモス!
受信トレイを確認し、ハイパーリンクをクリックしてサブスクリプションを確認します.
安全なメールアドレスを入力してください
!