コンテナを使用してアプリケーションを開発する慣行が普及するにつれて、クラウドネイティブ アプリケーションも増加しています。クラウド ネイティブ アプリケーションは次のように定義されます。
この定義では、クラウド ネイティブ アプリケーションを構成する 4 つの不可欠な要素について言及しています。
これらのテクノロジーはそれぞれ独自の歴史を持っていますが、相互に補完し合い、短期間でクラウドネイティブのアプリケーションとツールが驚異的な勢いで成長することを可能にしました。この Cloud Native Computing Foundation (CNCF) のインフォグラフィックは、今日のクラウド ネイティブ アプリケーション エコシステムの規模と幅広さを示しています。 クラウドネイティブコンピューティング財団プロジェクト とにかく待って見てください!と言いたいです。これはほんの始まりに過ぎません。 NodeJS の出現が数え切れないほどの JavaScript ツールの爆発的な成長を引き起こしたのと同様に、コンテナ テクノロジの人気もクラウド ネイティブ アプリケーションの急激な成長を促進しました。 幸いなことに、これらのテクノロジーを規制し、相互に接続する責任を負う組織が複数存在します。その 1 つが Open Containers Initiative (OCI) です。これは、Linux Foundation の支援のもとで「オープンな業界標準のコンテナ形式とランタイムを作成することを明確な目的として設立された」軽量のオープン ガバナンス機関 (またはプロジェクト) です。もう 1 つは CNCF です。これは、「クラウド ネイティブ コンピューティングをユビキタスかつ持続可能なものにすることに特化したオープン ソース ソフトウェア財団」です。 CNCF は、クラウド ネイティブ アプリケーション全般に関するコミュニティの構築に加えて、プロジェクトがクラウド ネイティブ アプリケーションに関する構造化された管理を確立するのを支援します。 CNCF は、成熟度レベル (サンドボックス、インキュベーション、または段階的) の概念を作成しました。これは、下の図の「イノベーター」、「アーリー アダプター」、「早期大量採用」に相当します。 CNCF プロジェクトの成熟度レベル CNCF は、各成熟度レベルごとに詳細な基準を開発しました (読者の便宜のために以下にリストします)。プロジェクトは、技術監督委員会 (TOC) から 3 分の 2 の承認を得た場合にのみ、インキュベーション レベルまたは卒業レベルに移行できます。 サンドボックスレベル サンドボックス ステータスの資格を得るには、プロジェクトに少なくとも 2 つの TOC スポンサーが必要です。詳細な手順については、CNCF サンドボックス ガイド v1.0 を参照してください。 孵化レベル 注: インキュベーション レベルは、プロジェクトに対する包括的なデューデリジェンスを実施することが期待される出発点です。 インキュベーション レベルに入るには、プロジェクトはサンドボックス レベルの要件に加えて、次の要件を満たす必要があります。
卒業 サンドボックスまたはインキュベーティング レベルを卒業するには、または新しいプロジェクトを卒業プロジェクトとして承認するには、プロジェクトが以下の条件に加えてインキュベーティング レベルの基準を満たす必要があります。
注目に値する9つのプロジェクト この記事ではすべての CNCF プロジェクトを網羅することはできませんが、卒業および育成されたオープンソース プロジェクトの中で最も興味深い 9 つを紹介します。 卒業プロジェクト 卒業プロジェクトは成熟しているとみなされ、多くの組織に採用されており、CNCF ガイドラインに厳密に準拠しています。ここでは、最も人気のあるオープンソースの CNCF 卒業プロジェクトを 3 つ紹介します。 (これらの説明の一部は、プロジェクトの Web サイトから改変したものであることに注意してください。) 1. Kubernetes(ギリシャ語で「舵取り」の意味) クベネフィット! Kubernetes について言及せずにクラウドネイティブ アプリケーションについて語ることはできるでしょうか? Google が開発した Kubernetes は、コンテナベースのアプリケーション向けの最も有名なコンテナ オーケストレーション プラットフォームであることは間違いありません。また、オープン ソース ツールでもあります。 コンテナ オーケストレーション プラットフォームとは何ですか?通常、コンテナ エンジンは複数のコンテナを単独で管理できます。しかし、数千のコンテナと数百のサービスについて話す場合、それらのコンテナの管理は非常に複雑になります。ここでコンテナ オーケストレーション エンジンが役立ちます。コンテナ オーケストレーション エンジンは、コンテナの展開、管理、ネットワーク、可用性を自動化することで、多数のコンテナの管理に役立ちます。 Docker Swarm と Mesosphere Marathon もコンテナ オーケストレーション エンジンですが、Kubernetes がこの競争に勝ったと言っても過言ではありません (少なくとも今のところは)。 Kubernetes は、Red Hat OpenShift の一部である Kubernetes の Origin コミュニティ ディストリビューションである OKD などのコンテナー アズ ア サービス (CaaS) プラットフォームも生み出しました。 開始するには、Kubernetes GitHub リポジトリにアクセスし、Kubernetes ドキュメント ページからドキュメントと学習リソースにアクセスします。 2. プロメテウス Prometheus は、2012 年に SoundCloud で構築されたオープンソースのシステム監視およびアラート ツールです。それ以来、多くの企業や組織が Prometheus を採用しており、このプロジェクトには非常に活発な開発者およびユーザー コミュニティがあります。現在では、会社から独立して管理される独立したオープンソース プロジェクトとなっています。 Prometheus を理解する最も簡単な方法は、24 時間 x 365 日稼働する必要がある実稼働システムを視覚化することです。完璧なシステムはなく、障害を軽減する技術(フォールト トレラント システムと呼ばれる)はありますが、問題が発生した場合には、できるだけ早くそれを検出することが最も重要です。ここで、Prometheus のような監視ツールが役立ちます。Prometheus は単なるコンテナ監視ツールではありませんが、クラウドネイティブ アプリケーションを持つ企業の間で最も人気があります。さらに、Grafana を含む他のオープンソース監視ツールも Prometheus を利用しています。 Prometheus を使い始める最良の方法は、GitHub リポジトリをダウンロードすることです。 Prometheus をローカルで実行するのは簡単ですが、コンテナ エンジンをインストールする必要があります。詳細なドキュメントは Prometheus の Web サイトでご覧いただけます。 3. 特使 Envoy (または Envoy Proxy) は、クラウドネイティブ アプリケーション向けに設計されたオープン ソースのエッジ プロキシおよびサービス プロキシです。 Lyft によって作成された Envoy は、単一のサービスとアプリケーション向けに設計された高性能 C++ 分散プロキシです。また、多数のマイクロサービスで構成されるサービス メッシュ アーキテクチャ向けに設計された通信バスおよびユニバーサル データ プレーンでもあります。 Envoy は、Nginx、HAProxy、ハードウェア ロード バランサー、クラウド ロード バランサーなどのソリューション上に構築されています。 Envoy は各アプリケーションと並行して実行され、プラットフォームに依存しない方法で共通機能を提供することでネットワークを抽象化します。 インフラストラクチャ内のすべてのサービス トラフィックが Envoy メッシュを通過すると、一貫した可観測性を通じて問題領域を視覚化し、全体的なパフォーマンスを調整し、インフラストラクチャ機能を 1 か所に追加することが容易になります。基本的に、Envoy プロキシは、組織が本番環境向けにフォールト トレラント システムを構築するのに役立つサービス メッシュ ツールです。 サービス メッシュ アプリケーションには、Uber の Linkerd (後述) や Istio など、多くの代替手段があります。 Istio は、Envoy をサイドカーとしてデプロイし、Mixer の構成モデルを活用することで Envoy を拡張します。 Envoy の注目すべき機能は次のとおりです。
Envoy を理解し、その機能を検証し、そのメリットを最大限に享受するには、実稼働環境で Envoy を実行する豊富な経験が必要です。詳細については、詳細なドキュメントを参照するか、GitHub リポジトリにアクセスしてください。 インキュベーションプロジェクト 以下は、最も人気のあるオープンソース CNCF インキュベーション プロジェクト 6 つです。 4. rkt(ロケット) rkt (「ロケット」と発音) は、Pod ネイティブのコンテナ エンジンです。 Linux 上でコンテナを実行するためのコマンドライン インターフェイスを備えています。ある意味では、Podman、Docker、CRI-O などの他のコンテナに似ています。 rkt はもともと CoreOS (後に Red Hat に買収) によって開発され、詳細なドキュメントは同社の Web サイトで確認でき、ソースコードは GitHub でアクセスできます。 5. イエガー Jaeger は、クラウド アプリケーション向けのオープン ソースのエンドツーエンドの分散トレース システムです。ある意味、これは Prometheus のような監視ソリューションです。しかし、使用例が拡張されている点が異なります。
Jaeger は Uber が構築したオープンソース テクノロジーです。詳細なドキュメントは Web サイトに、ソース コードは GitHub にあります。 6. リンカード Envoy プロキシを作成した Lyft と同様に、Uber は実稼働レベルのサービス保守用に Linkerd オープンソース ソリューションを開発しました。ある意味では、Linkerd は Envoy に似ており、どちらも構成やコードの変更を必要とせずにプラットフォーム レベルの可観測性、信頼性、セキュリティを提供するように設計されたサービス メッシュ ツールです。 ただし、両者の間には微妙な違いがいくつかあります。 Envoy と Linkerd はプロキシとして機能し、接続されたサービスを通じてレポートを返すことができますが、Envoy は Linkerd のような Kubernetes Ingress コントローラーとして設計されていません。 Linkerd の注目すべき機能は次のとおりです。
詳細については、Linkerd の Web サイトで確認し、GitHub でソース コードにアクセスしてください。 7. ヘルム Helm は基本的に Kubernetes 用のパッケージ マネージャーです。 Apache Maven、Maven Nexus、または同様のサービスを使用したことがある場合は、Helm の役割を理解しているでしょう。 Helm は Kubernetes アプリケーションの管理に役立ちます。 「Helm Chart」を使用して、最も複雑な Kubernetes アプリケーションを定義、インストール、アップグレードします。 Helm はこれを実現する唯一の方法ではありません。もう 1 つの人気の概念は、Red Hat OpenShift 4 で使用される Kubernetes Operators です。 Helm を試すには、ドキュメントのクイック スタート ガイドまたは GitHub ガイドに従ってください。 8. その他 Etcd は、分散システムで最も重要なデータを保存するために使用される、分散型の信頼性の高いキー値ストアです。主な機能は次のとおりです。
Etcd は、Kubernetes や他の多くのテクノロジーのデフォルトの組み込みデータ ストレージ ソリューションです。つまり、独立して実行されたり、別のサービスとして実行されたりすることはほとんどありません。代わりに、Kubernetes、OKD/OpenShift、またはその他のサービスへの統合として動作します。ライフサイクルを管理し、API 管理機能のロックを解除するために使用できる etcd Operator もあります。 etcd の詳細についてはドキュメントを参照し、GitHub でソース コードにアクセスしてください。 9. クリオー CRI-O は、Kubernetes ランタイム インターフェースの OCI 互換実装です。 CRI-O は、次のようなさまざまな機能に使用されます。
CRI-O は、ガイド、チュートリアル、記事、さらにはポッドキャストを含む広範なドキュメントを提供しており、GitHub ページもご覧いただけます。 |
<<: JVMがバイトコード命令をどのように消化するかを見る
>>: エッジコンピューティングは IoT の未来に対するソリューションとなるでしょうか?
いずれにせよ、これまでのところ、中国で使用されているドイツの VPS のうち、良い結果が出ているもの...
おそらく、私と同じように、誰もが、短期間でウェブサイトをホームページにランク付けしたり、1 位にした...
マーク・アンドリーセンはかつてウォール・ストリート・ジャーナルに「なぜソフトウェアが世界を席巻してい...
クラウド コンピューティングの長所と短所を十分に理解すると、クラウド コンピューティングの使用方法が...
Baidu で検索すると、異なる結果が表示されます。実は、この問題はかなり前に発見し、長い間困惑して...
2011 年に設立されたベトナムのサーバー プロバイダーである ftech.vn は、ベトナムで仮想...
どの香港のクラウドホストが優れていますか?どの香港クラウドサーバーが優れていますか?この記事は、香港...
SEO、ウェブマスター、そして勤勉の代名詞です。現在、Baidu の殺人手段はますます恐ろしくなって...
ウェブマスターの友人にとって、「疑似オリジナリティ」という言葉は馴染みのない言葉ではありませんが、す...
ダブルイレブンがやって来ます! Alibaba Cloud/Tencent Cloud/Huawei...
[51CTO.com クイック翻訳] 強力で大規模なものであっても、すべてのニーズを満たすことができ...
最新の開発のベストプラクティス、特にマイクロサービス アーキテクチャを実装する場合のベストプラクティ...
この記事は単なる概念です。ここで詳細に説明するには、具体的な構成が多すぎます。 1. 分散アプリケー...
Kubernetes(K8s) オペレーターを書こうという思いが私の心の中でどんどん大きくなっていき...
第1章 第4稿での自己紹介 --- 記述の書き方誰かが叫び始めました。「Descriptionって何...