クラウドネイティブ: ソフトウェア配信の未来

クラウドネイティブ: ソフトウェア配信の未来

こんにちは、皆さん。私はルガです。今日は、クラウド ネイティブ エコシステムの本質の 1 つである効率的な配信、つまり「クラウド ネイティブ エコシステムのコンセプトに基づいたアプリケーション ソフトウェアの効率的な配信」についてお話します。

建国記念日を前に、Jakarta EE 中国コミュニティ組織の創始者である Liu Zhijie 氏から JakartaOne ライブストリーム イベントへの招待を受け、シンプルながらも充実した技術共有を行うことができ、大変光栄に思いました。 JakartaOne Livestream は、開発者と技術リーダーを対象とした Jakarta EE ワーキング グループのオンライン ミーティングで、エンタープライズ レベルの Java アプリケーション向けのクラウド ネイティブ テクノロジーに焦点を当て、Jakarta EE テクノロジー開発の現状と将来の動向について議論します。

同時に、前回の技術的なやり取りと最近の考えを踏まえて、「クラウドネイティブ」についての私の個人的な見解についても簡単にお話ししたいと思います。

1. クラウドネイティブをどのように捉えるべきでしょうか?

実際、クラウド ネイティブの概念は新しいものではなく、以前から存在していましたが、近年、幅広い議論と注目を集めています。

本質的に、クラウド ネイティブは、クラウド コンピューティングの分散コンピューティングの利点を最大限に活用するように設計されたアプリケーションを構築および実行するための方法論です。クラウド ネイティブの考え方を採用することで、開発者はクラウド プラットフォームが提供する弾力性、スケーラビリティ、回復力、柔軟性をより有効に活用できるようになります。

Cloud Native Computing Foundation (CNCF) の公式定義によると、クラウド ネイティブ テクノロジーにより、組織はパブリック クラウド、プライベート クラウド、ハイブリッド クラウド環境でスケーラブルなアプリケーションを構築および実行できるようになります。複雑なアプリケーションの最新のエコシステムでは、継続的なイノベーションと前例のない応答性が求められるため、ビジネス システムはより戦略的で柔軟性が高くなければなりません。クラウド ネイティブ アプローチは、企業の俊敏性を高め、高まる顧客の期待に応えるのに役立ちます。

一般的に、クラウド ネイティブ テクノロジーは、コンテナー、サービス メッシュ、マイクロサービス、不変のインフラストラクチャ、宣言型 API などの機能を活用します。これらの機能を使用することで、回復力があり、管理しやすく、監視可能な疎結合システムを構築できます。コンテナ化テクノロジーは、アプリケーションをさまざまなクラウド環境に展開および移行できるようにする軽量で移植可能な環境を提供します。サービス メッシュは、アプリケーションの信頼性とセキュリティを確保するための強力なサービス間通信とガバナンス機能を提供できます。マイクロサービス アーキテクチャにより、アプリケーションをモジュール化し、需要に応じて個別にデプロイできるため、柔軟性とスケーラビリティが向上します。不変インフラストラクチャの概念では、インフラストラクチャの状態を管理し、環境の一貫性と再現性を確保するために、自動化されたツールとプロセスの使用を重視しています。宣言型 API を使用すると、開発者は詳細な手順や指示を記述するのではなく、必要な状態と構成を宣言できるため、アプリケーションの展開と管理が簡素化されます。

本質的に、クラウド ネイティブ アプローチにより、エンジニアは最小限の労力で頻繁に大きな影響を与える変更を加えることができます。クラウド ネイティブ テクノロジーを使用することで、開発者は新機能をより早くリリースし、フィードバックや市場の変化に迅速に対応し、継続的な配信と継続的なデプロイメントのプラクティスを実装できます。この俊敏性と柔軟性により、組織は変化するビジネス ニーズに適応し、より高品質のアプリケーションと優れたユーザー エクスペリエンスを提供できるようになります。

2. テクノロジーがクラウド ネイティブと定義されるとはどういう意味ですか?

クラウド ネイティブ アプリケーションは、軽量で独立したコンテナーとしてパッケージ化された独立したサービスとして存在します。これらのアプリケーションは移植性が高く、拡張性も高いです (入力と出力)。クラウド ネイティブ アプリケーションは、アプリケーションとその依存関係を Docker などのコンテナーに格納することで、インフラストラクチャから分離されます。この分離の利点は、コンテナ化されたアプリケーションをランタイム エンジンを備えたあらゆる環境にデプロイできることです。ここで重要なのは、コンテナ オーケストレーション ツールとしての Kubernetes がコンテナのライフサイクルの管理を担当していることです。

クラウド ネイティブ アプリケーションの配信プロセスは、継続的インテグレーションと継続的デリバリーのツール チェーンを備えた DevOps パイプラインによってサポートされます。つまり、アプリケーションの開発、テスト、およびデプロイメントのプロセスは高度に自動化されており、継続的インテグレーションと継続的デリバリーの実践を通じて高速で信頼性の高い配信が実現されます。継続的インテグレーションにより、開発者のコ​​ード変更がメイン コードに統合され、自動化されたビルドおよびテスト プロセスを通じて検証されます。継続的デリバリーは、テストされたアプリケーションをデプロイメント環境に配信し、さらなる統合テストとデプロイメントを実施します。

アプリケーションの開発と配信にクラウド ネイティブ アプローチを採用することで、組織はクラウド コンピューティングのメリットをより有効に活用できます。クラウド ネイティブ アプリケーションをコンテナ化することで、基盤となるインフラストラクチャに制限されることなく、さまざまな環境でアプリケーションをシームレスに実行できるようになります。この移植性と拡張性により、アプリケーションの展開と拡張がより柔軟かつ効率的になります。同時に、継続的インテグレーションと継続的デリバリーの実践を通じて、開発チームは新機能をより早くリリースし、市場のニーズに迅速に対応し、高品質のアプリケーションを継続的に提供できるようになります。

3. CNCFとその関連団体がクラウドネイティブの開発に注目

ご存知のとおり、Cloud Native Computing Foundation (CNCF) は、コンテナ テクノロジーとそのアプリケーションの開発を促進するために 2015 年に Linux Foundation によって立ち上げられたプロジェクトです。これは、Google が Linux Foundation に寄贈したオープンソースのコンテナ オーケストレーション プラットフォームである Kubernetes とともに作成されました。それ以来、CNCF は、Kubernetes、Prometheus、Envoy など、最も急速に成長している多くのオープンソース プロジェクトをホストするベンダー中立の組織になりました。

Kubernetes のような CNCF プロジェクトは、急速かつ広範囲に採用され、コミュニティの幅広いサポートを受けており、オープンソースの歴史の中で最も急速に成長しているプロジェクトの 1 つとなっています。 CNCF コミュニティは、世界最高の開発者、ユーザー、ベンダーを集め、最大規模のオープンソース開発者カンファレンスのいくつかを主催しています。

CNCF は、クラウド ネイティブ テクノロジーの開発を促進する上で重要な役割を果たします。クラウド ネイティブ テクノロジーには、コンテナ化、マイクロサービス アーキテクチャ、宣言型 API、自動管理などが含まれており、スケーラブルで回復力があり、信頼性の高いアプリケーションを構築および実行する方法を提供します。 CNCF はベンダー中立の組織として、より多くの開発者や組織がこれらの高度なテクノロジーの恩恵を受けられるように、クラウド ネイティブ テクノロジーの標準化と推進に取り組んでいます。

その中で、Kubernetes は CNCF のスター プロジェクトとして、コンテナ オーケストレーションとクラスター管理の事実上の標準となっています。豊富な機能とスケーラビリティを提供し、アプリケーションの導入、拡張、管理をより容易かつ効率的にします。 Kubernetes の急速な発展は、その強力な機能だけでなく、CNCF コミュニティの積極的な貢献とサポートによるものです。同時に、強力な監視およびアラート システムとしての Prometheus と、高性能エッジおよびサービス プロキシとしての Envoy も、CNCF プロジェクトで高く評価され、広く使用されているテクノロジです。

4. 開発言語から見たクラウドネイティブの発展

クラウドネイティブの開発を開発言語の観点から見ると、Go、Rust、Java などのプログラミング言語はいずれも、程度の差はあれ、クラウドネイティブアプリケーションの構築と配信をサポートしています。

CNCF 関連ページを開くと、次のことがわかります。

Go 言語と Rust 言語を中心に開発されたコンポーネント スイートが、ほぼ大部分を占めています。このため、Go と Rust がクラウドネイティブ開発の主流言語となっていると言っても過言ではありません。

ただし、Java は従来のプログラミング言語として、クラウド ネイティブ時代においても絶えず進化、調整、適応しています。 Java の市場シェアは最初の 2 つほど高くはありませんが、クラウド ネイティブ分野では依然として非常に競争力があります。

市場の発展傾向によると、中核競争力を持つクラウドネイティブプロジェクトの約63%は基本的にGo言語を使用して構築されており、これはクラウドネイティブ分野におけるGoの地位を証明するのに十分です。しかし、Java もクラウド ネイティブ時代のニーズに徐々に適応しつつあります。たとえば、JDK 8u191 および JDK 10 のリリース後、JVM には強化されたコンテナー リソース認識機能が追加され、コンテナー内で Java アプリケーションがより効率的かつ確実に実行されるようになりました。同時に、Java コミュニティは Java テクノロジー スタックの限界を常に探求しています。たとえば、VM OpenJ9 は既存の Java アプリケーションとの互換性が高いだけでなく、起動が大幅に高速化され、メモリ使用量も削減されます。 Micronaut と Graal VM は、プログラミング モデルとコンパイル プロセスを変更してアプリケーションの動的特性をコンパイル時の早い段階で処理できるようにすることで新たな境地を開き、アプリケーションの起動時間を大幅に短縮します。これらのテクノロジーはサーバーレス アーキテクチャの分野にとって非常に有望であり、その設計コンセプトは他の言語の開発者にとっても学ぶ価値があります。

同時に、Eclipse Foundation の Jakarta EE ワーキンググループは Jakarta EE 10 標準をリリースし、Java もクラウドネイティブ時代の「スープ」を共有することを示しました。 Jakarta EE 10 は、最新かつ簡素化された軽量のクラウドネイティブ Java アプリケーションを構築するための機能を導入したメジャー リリースであり、マイクロサービスとコンテナーの現代に Jakarta EE をしっかりと組み込む「最終マイルストーン リリース」です。 Jakarta EE 10 のリリースは、世界中の貢献者コミュニティの取り組みを反映しており、クラウド ネイティブ分野における Java の成長に重要な革新と機会をもたらすでしょう。 Jakarta EE 10 は、クラウドネイティブ Java テクノロジーの未来を推進する、オープンでコミュニティ主導のイノベーションとして位置付けられています。

クラウドネイティブ時代において、R&D連携の効率を向上させるためには、水平的なアプリケーション開発ライフサイクルにおける開発、配信、保守のプロセスを効果的に分割し、再編成する必要があります。さらに、根本的な簡素化を実現し、システム効率を向上させるには、プログラミング モデル、アプリケーション ランタイム、および垂直ソフトウェア テクノロジ スタック全体のインフラストラクチャの観点からシステムを最適化する必要があります。

クラウド ネイティブ エコシステムでは、Go、Rust、Java に代表されるプログラミングの主流が、独自のクラウド ネイティブ エコシステムを積極的に開発し、独自のテクノロジー スタックを構築することで、ますます複雑化する市場のビジネス ニーズに対応し、クラウド ネイティブ時代の発展に貢献しています。

5. クラウドネイティブが技術スタッフに与える影響

実際のビジネス シナリオでは、クラウド ネイティブでは技術者に対する要求が高まり、広範な技術的知識と能力、そして変化を迅速に学習して適応する能力が求められます。具体的な影響は次のとおりです。

1. 考え方を変える

クラウド ネイティブは、技術者の考え方に新たな課題をもたらします。従来のアプリケーション開発および展開モデルは、クラウド ネイティブの概念とは異なります。技術者は、弾力性、スケーラビリティ、可観測性に重点を置いたサービス中心の考え方に移行する必要があります。アプリケーションの管理性と保守性にさらに注意を払う必要があり、障害処理とフォールト トレラント設計を開発プロセスの重要な部分にする必要があります。

2. アーキテクチャとデザインパターンの理解

クラウド ネイティブでは、アプリケーションをマイクロサービス方式で編成および設計し、機能モジュールを独立してデプロイおよび拡張できる独立したサービスに分割する必要があります。これには、技術者が優れたアーキテクチャと設計思考を持ち、拡張性、弾力性、信頼性に優れたマイクロサービス アーキテクチャを設計できることが求められます。技術担当者は、サービス間の通信、サービスの検出、負荷分散、障害回復などの側面を考慮し、大規模な分散環境に適したソリューションを設計する必要があります。

3. 学習意識の育成

Cloud Native では、コンテナ化、オーケストレーション プラットフォーム、マイクロサービス アーキテクチャ、自動管理などの一連の新しいテクノロジーとツールが導入されています。技術者は、クラウドネイティブ アプリケーションの開発と展開のニーズに適応するために、これらの新しいテクノロジーを学習し、習得する必要があります。コンテナ テクノロジー (Docker など)、コンテナ オーケストレーション プラットフォーム (Kubernetes など)、サービス メッシュ (Istio など)、および関連する監視、ログ記録、セキュリティ ツールを理解する必要があります。そのためには、急速に発展するクラウドネイティブ エコシステムに適応するために、技術者がテクノロジー スタックを継続的に学習し、更新する必要があります。

同時に、クラウド ネイティブは技術者にさらなる機会と課題をもたらします。オープンソース コミュニティに参加してコードを寄稿し、経験を共有し、世界中の技術専門家や開発者とコミュニケーションや協力を行い、クラウド ネイティブ テクノロジーの開発と革新を共同で推進することができます。

<<:  ヘルスチェックは良いポッドにとって不可欠

>>:  マッキンゼーのパートナー:ジェネレーティブAIはクラウド移行におけるさまざまな課題の解決に役立つ

推薦する

ウェブサイトの SEO 最適化のための 9 つのスパイダートラップ、私は最初の 1 つに陥りました

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービスウェブサイトの最適化のプ...

ウェブサイト最適化のための3つの必須条件

ウェブサイトの最適化は、以下の条件を満たしてから実行する必要があります。新しいウェブサイトの場合は、...

詳細: 360 ウェブサイトナビゲーション検索ボックスが Baidu 検索製品を削除

360 ナビゲーションのニュース検索は、Baidu ではなく 360 独自の総合検索エンジンに置き換...

テレコムとファーウェイが協力し、福建省の企業に「クラウドとプラットフォームへの移行」を呼びかけ

[[249975]] 11月19日、中国電信福建社と華為社は共同で「クラウドネットワーク統合、ネット...

ウェブデザインと開発: 新しい端末における 11 のウェブデザイントレンド

この記事の著者@小吉的宠物、デザインと開発の間には微妙な境界線がありますが、時代がさらに10年に入る...

意外と知らないGoogle PR値の計算式を大公開

Google PR (PageRank) は、ウェブページのレベルを評価するために Google が...

サイトのアップグレード中に注意しなければならないいくつかの小さな詳細について簡単に説明します。

セキュリティやユーザーフレンドリーなエクスペリエンスなどを向上させるために、すべてのサイトは必然的に...

SEOを学ぶ初心者は、基本的なコード知識と基本的なSEOの考え方を組み合わせる必要があります。

ご存知のとおり、電子商取引の活発な発展に伴い、多くの企業がインターネット上の競争に参戦しています。S...

Longhorn クラウド ネイティブ コンテナ分散ストレージ - Python クライアント

[[421320]]この記事はWeChatの公開アカウント「Hacker Afternoon Tea...

ウェブサイトの信頼性検証がますます向上すると、個々のウェブマスターにどのような影響が及ぶでしょうか?

セキュリティはインターネットの永遠のテーマです。毎日、何億人ものネットユーザーがオンラインで必要な情...

オンラインストアの世界で生きる:プロのタオバオ販売者への調査

オンラインショッピングとなると、ほとんどの若者の最初の反応はタオバオに行くことです。膨大な購入者のト...

大手企業はどのように K8s を使用しているのでしょうか?

​翻訳者 |ブガッティ企画 |趙雲Kubernetes は、現在最も有名で人気のあるコンテナ オーケ...

Qing Cube Hyper-Converged Express Editionの助けを借りて、中小企業のデジタル変革を完全に強化することができます。

現在、デジタル経済は企業の急速な発展を推進する原動力となっています。特にクラウドコンピューティング、...

gigsgigscloud: (専用サーバー) 1Tbps 米国高防御 + cn2 gia ネットワーク + 無制限トラフィック

gigsgigscloudは、CN2 GIA(中国方面はcera提供の50Gbps防御)と国際方面は...