著者について: 知乎の有名人「王氏(仮名)」は、中国科学院計算技術研究所のコンピューターサイエンスの博士号を取得しています。主に転移学習と機械学習におけるアルゴリズムとアプリケーションに関する研究を行っています。卒業後はマイクロソフトリサーチアジアに研究員として入社。 「Node 開発者が直面する可能性が高い混乱のトップ 3 は、非同期プログラミング、イベント駆動、デバッグです。同時に、ドキュメントは最も期待されるリソースであり、新規参入者はビデオ チュートリアルと無料のオンライン コースを最も要求しています。」この「2020 Node.js 開発者調査レポート」に記載されている情報は、まさに今日の多くの開発者が抱いている疑問そのものです。 Node.js を学び、上達させるにはどうすればよいでしょうか?記述したコードをスムーズかつバグのないものにするにはどうすればよいでしょうか?使いやすく、可用性の高いプラットフォームを見つけるにはどうすればよいでしょうか?今日は私のささやかな意見を述べたいと思います。役に立ったと思ったら、ぜひトリプルいいねをお願いします(「次回」とは言わないでください)。 誰もが JavaScript に精通していると思いますが、特にフロントエンドエンジニアにとっては必須のスキルです。従来の意味での JavaScript は、ブラウザ上で実行されるスクリプト言語です。 Node.js はサーバー上で実行されるフレームワークであり、その基盤となるレイヤーでは V8 エンジンが使用されます。 Apache + PHP と Java Servlet を使用して動的な Web ページを開発できることはわかっています。 Node.js の役割はそれらと似ていますが、JavaScript を使用して開発されます。バイナリ データ操作、ファイル システム I/O、データベース アクセス、ネットワーク アクセスなど、基盤となるサーバー機能環境を提供します。その機能により、多くの成熟したサーバー言語の中でも際立っています。 同じく有名になったもう一つの企業はHuawei Cloudです。近年、Huawei Cloud は市場において侮れない勢力となっています。特に少し前、Huawei Cloud Kunpeng Ecosystem が圧倒的な宣伝効果とともに登場し、それに対するコメントも多様でした。では、Huawei Cloud Kunpeng Elastic Cloud Server のパフォーマンスはどうでしょうか?この記事では、Huawei Cloud Kunpeng Elastic Cloud Server の CentOS システムでの Node.js プロジェクトのインストール、展開、テスト、および高可用性の探索について説明します。 さっそく始めましょう。 Node.js デプロイメント環境の構成の完全なプロセス まず、次のコマンド「LANG=en_us.UTF-8 ssh root@EIP」を入力して、Huawei Cloudにログインします。コマンド内の EIP を Huawei Cloud Server ECS のパブリック IP に置き換える必要があります。 通常、パブリック IP アドレスはローカル サーバーで直接取得できます。では、Huawei Cloud Kunpeng Elastic Cloud Server でパブリック IP アドレスを取得するにはどうすればよいでしょうか?クラウド サーバーでは、「コンソール」->「サービス リスト」->「コンピューティング」->「Elastic Cloud Server ECS」をクリックしてサーバー リストに入ると、Elastic パブリック IP アドレスを表示およびコピーできます。 ログインの際、パスワードを入力しても端末にパスワードが表示されませんので、パスワードが正しいことを確認してください。 ログイン成功後に表示されるインターフェースは以下のとおりです。 次に、node.jsインストールパッケージをダウンロードし、ダウンロードコマンドを実行します。 ファイルを解凍する node と npm のソフト リンクを作成します。ソフトリンクが確立されると、node と npm のバージョンを直接表示できるようになります。次の画像が表示されれば、インストールは成功です。 使用コードは次のとおりです: ln -s /root/node-v10.16.0-linux-arm64/bin/node /usr/local/bin/node ルートディレクトリの /root/node-v10.16.0-linux-arm64/bin/npm /usr/local/bin/npm 実際、ここでは Node.js サーバー環境がデプロイされており、プロジェクト コードを直接実行できます。ただし、サーバー上で複数のプロジェクトを実行している場合、グローバル node.js バージョンのみをインストールすると、アップグレード時に多くの問題が発生する可能性があります。したがって、nvm バージョン マネージャーを使用して、複数のバージョンの node.js をインストールする必要があります。これは必須の手順ではありませんが、試してみる価値はあります。 まず、NVMバージョンマネージャーをダウンロードし、ターミナルで次のコマンドを入力します。 git clone https://codehub.devcloud.cn-north-4.huaweicloud.com/Demo01087/nvm.git ~/.nvm && cd ~/.nvm 次に、NVMバージョンマネージャーをアクティブにして、これをプロファイルファイルに追加します。 echo ". ~/.nvm/nvm.sh" >> /etc/profile NVM を変更した後、異なるバージョンのノードをインストールできます。たとえば、次の図は12.3.0ノードパッケージをインストールします ノードがインストールされたら、サーバー上でスクリプトを実行できます。プロセスを簡素化するために、単純なスクリプトを実行し、ノードを使用してサーバーを起動し、ポート 3000 にデプロイすることを選択しました。 サーバーの起動後、外部ネットワークからアクセスする場合は、コンソールでセキュリティ グループ ルールを構成する必要があります。 ここまでで、node.jsのデプロイ環境構築テストは終了です。完成品をお見せしましょう。 今回はちょっと変わっていて、「Hello World」はありません フロントエンド言語から運用・保守の実践まで この実践では、大坤鵬が私にもたらした直感的な知覚について簡単にコメントすることができます。まず第一に、新規ユーザーにとって非常にフレンドリーです。 Node.js のデプロイメント環境構成を例にとると、クラウド ラボの Kunpeng 実験は、関連する実験と ABC レベルのガイダンス チュートリアルで構成されています。ユーザーはガイダンスに従って段階的に環境設定を実装することができ、初心者のプログラマーでも簡単に始めることができます。ワンクリックコードコピー機能は、Linux コマンドに慣れていない開発者にとっても便利です。 競争が加速するにつれて、フロントエンド プログラマーとバックエンド プログラマーの両方が、運用と保守の展開に関する知識を理解する必要があります。 Kunpeng Academy は、誰もが学習できるプラットフォームを提供します。ここでは、初心者開発者や Kunpeng 開発者向けの関連コースを簡単に入手できます。さまざまなコースを修了すると、さまざまなマイクロ認定や専門認定を通じて学習成果をテストできます。公的認証により優先的な就職推薦も受けられます。ここでの実用性は太字の赤で強調する必要があります。 企業にとって、クラウドにウェブサイトを展開することで、運用と保守の負担を大幅に軽減し、Huawei Cloud の基本的なエコシステムとプラットフォーム機能を最大限に活用し、ウェブサイト展開の複雑さを軽減し、プログラマーの手を解放し、コードを変更することなく誰もが幸せな生活を楽しむことができます。プログラマーとプロダクトマネージャー間の争いの頻度を減らす。 ウェブサイトのユーザー数が増えると、システム サービスが簡単にクラッシュする可能性があります。たとえば、Weibo での突然のホット検索や Taobao のダブルイレブンなどの重要なノードは、サーバーの能力が試される時期です。多くの大企業は独自の弾性負荷分散システムを開発していますが、2 台のマシンを管理する複雑さは、1 台のマシンを管理する場合の 2 倍であるだけでなく、8 倍または 10 倍になることもあります。これには、ファイアウォール、DDoS 攻撃対策、アラームの監視、ログ記録、データ同期などの一連の問題を考慮する必要があり、これは実際には非常に複雑な問題です。したがって、クラウド サービス プロバイダーが提供する弾性負荷分散システムをより多くの企業サイトが使用する方が、より簡単で便利、そしてコスト効率も高くなります。 ELBとASサービスに基づく高可用性の分析 ウェブサイトのユーザー数が増えると、システム サービスが簡単にクラッシュする可能性があります。たとえば、Weibo や Taobao の Double Eleven などの重要なノードでのホットなイベントは、サーバーの機能をテストするタイミングです。多くの大企業は独自の弾性負荷分散システムを開発していますが、2 台のマシンを管理する複雑さは、1 台のマシンを管理する場合の 2 倍であるだけでなく、8 倍または 10 倍になることもあります。これには、ファイアウォール、DDoS 攻撃対策、アラームの監視、ログ記録、データ同期などの一連の問題を考慮する必要があり、これは実際には非常に複雑な問題です。したがって、クラウド サービス プロバイダーが提供する弾性負荷分散システムをより多くの企業サイトが使用する方が、より簡単で便利、そしてコスト効率も高くなります。 まず、高可用性とは何かを理解しましょう。高可用性はシステムの特性または指標であり、通常は、一定のパフォーマンス レベルを提供し、平均的な通常の期間よりも長いサービス実行時間を指します。逆に、システム サービスが利用できない時間がなくなります。システムが高可用性を満たしているかどうかの基準は、1 台以上のサーバーがダウンしても、システム全体とサービスが正常に利用可能であるかどうかです。 たとえば、有名な Web サイトの中には、4 9 以上の可用性を保証しているところもあります。これは、可用性が 99.99% 以上であることを意味します。この 0.01% が、いわゆる故障時間の割合です。たとえば、一部の金融サイトや電子商取引サイトでは、これらの指標に対して厳しい要件が設けられています。 エラスティック スケーリング サービスにより、フラッシュ セールや急ぎの購入など、トラフィックが急増した場合にサーバーを動的に拡張できるため、顧客に優れたエクスペリエンスを提供できます。例えば、順序付けサービスの場合、トラフィックが波のように押し寄せると、ELB はアルゴリズムに基づいてサーバー リソースを動的に割り当て、AS サービスと組み合わせてサーバー リソースを動的に拡張します。 負荷分散は、分散システム アーキテクチャの設計で考慮する必要がある要素の 1 つです。負荷分散は一般に、分散システムにおける大規模トラフィック、高同時実行性、高可用性の問題を解決するために使用されます。 では、Huawei Cloud Kunpeng Elastic Cloud Server で高可用性を維持するにはどうすればよいでしょうか?一般的なプロセスを次の図に示します。 1. 交通スケジュール。 ELB はリスナーを通じて接続要求をチェックし、スケジューリング アルゴリズムによって定義された転送戦略に従って要求トラフィックをバックエンド サーバーに分散し、トラフィック コマンダーの役割を果たしますが、よりインテリジェントです。 2. 健康チェック。バックエンド サーバーのサービスの可用性を判断し、リクエストが正常な ECS に送信されることを確認します。サービスに問題が見つかった場合は、速やかに削除いたします。 3. セッションの永続性。ユーザー アクセスの継続性を確保するために、一定期間内に同じユーザーからのリクエストを同じバックエンド サーバーに転送します。 4. 弾力的なスケーリング。訪問回数に応じて自動的に拡張できるため、柔軟で利用可能なサービスを確保できます。たとえば、上の図に示すように、スケーリングはタイミング/定期的なポリシーによってトリガーされます。 CPU/メモリ/着信トラフィックなどの監視指標が警告しきい値に達すると、スケーリングもトリガーされます。 業界の利点を活かして開発への道を進む 開発業界の典型的な特徴は、生きている限り学び続けることです。 5 年前の JavaScript は現在のものとは大きく異なります。 Node.js の使用状況レポートを調べたところ、Node.js の使用が大幅に増加しており、5 年前のブラウザ環境は現在の Node 環境とはまったく異なることがわかりました。クラウド時代では、言語が増えることで可能性が広がり、開発がより便利になりました。このテストのように、JavaScript、Python、Java などのインタープリタ型言語に基づいて開発されたアプリケーションは、CPU アーキテクチャとはまったく関係がありません。したがって、このようなアプリケーションを Huawei Cloud Kunpeng Elastic Cloud Server に移植した後は、変更したり再コンパイルしたりする必要はありません。アプリケーションは x86 と同じ方法で展開および実行できます。開発者への支援は明らかです。 言語のアップグレードにより、利便性が向上し、いくつかの新しいトレンドも生まれました。主業務をクラウド化する企業が増えており、フロントエンドエンジニアがバックエンドやフルスタックの業務に関心を持ち、関わるケースが増えています。開発のニーズがアップグレードされると、さまざまな開発者コミュニティもそれに応じてアップグレードされます。 Huawei Cloud Kunpeng コミュニティはそのようなプラットフォームです。同社が提供できる技術的能力は、企業のビジネスニーズを解決するだけでなく、開発者に迅速に力を与え、急速な成長を達成することもできます。開発者は、自分の学習能力に合った関連開発コースを簡単に見つけ、これらのより効率的な製品の使い方を学び、価値を高め、ネット上で噂されている「35歳で首を絞められる」という恥ずかしい状況を避けることができます。 さらに印象的なのは、フロントエンド エンジニアがクラウド コンピューティングの波の最大の受益者からは程遠いということです。クラウド サーバーが提供する ELB、AS などの機能を適切に使用することで、運用保守エンジニアは煩雑な作業から解放され、システムの最適化に集中できるようになります。現在、Huawei Cloud をはじめ、多くのクラウド サービスが、多数の基本機能や運用・保守ツールを提供しています。これらの機能により、機械的なプログラミング作業から脱却し、継続的な調査でより効率的で実用的なツールを発見し、新しい技術環境に基づいて適応性を向上させ、車輪の再発明を頻繁に行う必要がなくなり、ソフトウェア業界の利点を活用して開発への真の高速化を実現できます。 こちらは、Kunpeng 開発者コース シリーズのポータルです。知識は無料です。投稿や交流に参加することで賞品を獲得できます。コメントやご提案をお待ちしております: http://suo.im/5t3Vgt |
<<: オラクルとダイナセーフが協力し、中国のスマート製造業向けのスマートソリューションを模索
>>: バックエンドプログラマーに必須: 分散トランザクションの基礎
6月16日、サードパーティの独立系クラウドコンピューティングおよびデータサービスプロバイダーであるQ...
[[441390]]調査会社ガートナーによると、世界のローコード開発市場規模は2021年に138億米...
1.2 フレームワークとは何かフレームワークは、特定の問題領域内でアプリケーションの一部を実装する再...
以前、スライシングサーバーを紹介しました。最も強力なのは、8つのGTX1080Tiです。今回は、4つ...
ウェブサイトの最適化プロセスにおけるインクルージョンは、初心者にとってもベテランにとっても常に非常に...
春節後、共同購入業界は急速に再編され、数百の共同購入企業が地元のサービスを放棄している。中小規模の共...
2018年10月20日、李佳琦が一晩で販売した商品の量は、上海セントラルプラザの年間小売総売上高に相...
かつて、水と電気は人類史上2つの産業革命を推進し、すべての人々の生活の基本的なインフラとなりました。...
グローバル化と情報化の発展に伴い、外国語の使用はますます広まっています。結果として、外国語の過剰使用...
[[436050]] JVMとはJVM は、ユーザー モードで実行され、アプリケーションを通じてクロ...
[51CTO.comからのオリジナル記事] クラウドコンピューティング技術の徹底的な発展と、モノのイ...
5G の高速性と低遅延性をエッジ コンピューティングの処理能力と組み合わせることで、IoT とモバイ...
「長年にわたり、出会い系サイトは歴史上最も偉大な仲人よりも多くのカップルを結びつけてきました。このプ...
もうすぐ夏休みがやってきます。多くの学生がこの時期に初めてのウェブサイトを作成します。この記事では、...
最近、ロンドンオリンピックがインターネット上で新たな話題となっている。主要な検索エンジンがオリンピッ...