クラウドネイティブという用語は、クラウド・デリバリー・モデルが提供する分散コンピューティングを活用するアプリケーションを構築および実行するというコンセプトを意味します。クラウド・ネイティブ・アプリは、クラウドが提供する規模、弾力性、回復力、および柔軟性を活用するように設計および構築されます。
Cloud Native Computing Foundation(CNCF)で定義されているように、クラウド・ネイティブ・テクノロジを活用することで、組織はスケーラブルなアプリケーションをパブリッククラウド、プライベートクラウド、およびハイブリッドクラウド上で構築し実行できます。コンテナ、サービスメッシュ、マイクロサービス、イミュータブル・インフラストラクチャ、宣言型アプリケーション・プログラミング・インタフェース(API)などの機能が、このアプローチを最もよく表しています。
これらの機能により、回復性を備え、管理可能で監視可能な疎結合システムが実現します。これにより、エンジニアは影響の大きい変更を最小限の労力で頻繁に行うことができます。
複雑なアプリケーションが活用されている現在の環境では、ユーザーから継続的なイノベーションと比類のない応答性が期待されており、ビジネスシステムの戦略性と拡張性を高める必要があります。クラウドネイティブの特徴は、高速な動作と俊敏性の確保にあります。
クラウド・ネイティブ・サービスは、Kubernetes、Docker、サーバーレス機能、API、Kafkaなどのテクノロジを使用して、最新のアプリケーション開発を強化します。業界をリードするクラウドプロバイダがクラウドのツールとサービスを実現することにより、開発者は、業務タスクを削減し、アプリケーションの構築を迅速化できます。クラウド・ネイティブ・サービスは、マイクロサービスやサーバーレス機能などのクラウド・ネイティブ・アプリケーションを構築、デプロイ、管理するための包括的な標準ベースのプラットフォームを開発者に提供します。
クラウドネイティブの能力をフル活用して、回復性があり管理可能でスケーラブルな最新のクラウド・アプリケーションを迅速かつ簡単に構築する方法をご覧ください。
クラウド・ネイティブ・テクノロジへの移行によって、ソフトウェア開発とビジネス・モデルが恒久的に変化しており、組織のプラットフォーム全体でカスタマー・エクスペリエンスを最大限に高めることができます。比較的最近まで、多くの組織のITインフラストラクチャは「クラウドフレンドリー」でした。クラウドに移行するITチームは、クラウド・ネイティブ・アプリケーションを作成して投資を最大限に活用できなければ、競争上、非常に不利な状況に置かれます。会社を存続させながら、競合他社との差別化を図るには、迅速な調整と繰り返しがビジネス上必要です。クラウド・インフラストラクチャには、あらゆるビジネスをクラウドネイティブに移行するための弾力性とオンデマンド機能があります。
CNCFは、クラウド・ネイティブ・システムを採用する組織やサービスの増加を受けて、2015年に創設されました。Linux Foundationによって構築されたプロジェクトであるCNCFは、クラウド・ネイティブ・テクノロジの採用を促進するオープン・ソース・ソフトウェア財団です。CNCFの会員は、パブリック・クラウド・プロバイダ、エンタープライズ・ソフトウェア企業、テクノロジ・スタートアップを含め、400社を超えています。Microsoft、Oracle、VMware、Intelなどの企業が、CNCFのプラチナ会員になっています。
CNCFは、クラウド・ネイティブ・テクノロジのアクセス性、可用性、信頼性を確保することを目的としています。Kubernetes、Prometheus、CoreDNSなどのプロジェクトの専門コミュニティを育成しながら、マイクロサービス・アーキテクチャ内でコンテナを編成する持続可能な環境を構築する組織をサポートしています。
組織のクラウドネイティブへの移行は、困難に見えるかもしれませんが、最終的には取り組むだけの価値をもたらします。この取り組みは、アプリケーションの再設計だけでなく、会社の構造や文化の変化、そして最終的には会社を前進させることにもつながります。CNCFトレイルマップを使用すると、企業はクラウド・ネイティブ・テクノロジを段階的に採用できます。予想されることですが、「トレイル」に沿って進める場合、マイクロサービス、サーバーレス機能、イベントベースのストリーム、その他のタイプのクラウド・ネイティブ・アプリケーションを提供するには、より複雑なソフトウェアを採用する必要があります。
クラウド・ネイティブ・アプリケーション、またはネイティブ・クラウド・アプリケーション(NCA)は、クラウド・コンピューティング・アーキテクチャ用に設計されたプログラムです。これらのアプリケーションには、多数のメリットがあります。
クラウド・ネイティブ・アプリケーションは、独立したサービスであり、自己完結型で移植可能な軽量コンテナとしてパッケージ化されており、要求に応じて迅速に拡張(拡大または縮小)できます。すべてをコンテナ(Dockerコンテナなど)にカプセル化することで、アプリケーションとその依存関係を基礎となるインフラストラクチャから分離できます。これにより、コンテナ・ランタイム・エンジンが導入されている任意の環境に、コンテナ化されたアプリケーションをデプロイできます。Kubernetesのコンテナオーケストレーションで重要なのは、コンテナのライフサイクルを管理できることです。クラウド・ネイティブ・アプリは、多くの場合、継続的統合と継続的配信(CI/CD)のツールチェーンを含むDevOpsパイプラインを介して提供されます。クラウド・ネイティブ・アプリケーションの構築、テスト、デプロイメントを自動化するには、CI/CDパイプラインが重要です。
クラウド・ネイティブ・アーキテクチャは、従来のオンプレミス・インフラストラクチャではなく、クラウドで使用するために作成されるアプリケーションまたはサービスの設計に関係があります。適切なクラウド・ネイティブ・アーキテクチャは、維持が容易であり、次世代のクラウドでサポートされている必要があります。また、コスト効率が高く、自己修復できることも必要です。レガシーシステムと比べ、クラウド・ネイティブ・アーキテクチャは、物理サーバーに依存することなく、より高いレベルの柔軟性を備えています。
ここでは、マイクロサービスとサーバーレス機能が大きく重要な役割を担います。マイクロサービスはクラウド・ネイティブ・アプリケーション・アーキテクチャの中心であり、クラウドへの移行を進める企業にとって重要なツールになっています。マイクロサービスは、それぞれが特定の機能を提供する複数の独立したサービスとしてアプリケーションを構成します。マイクロサービスでは、DevOpsがサポートされていて、柔軟性を確保でき、スケーラビリティを向上させながらコストを削減するため、多くのソフトウェア会社がマイクロサービスを活用しています。クラウド・ネイティブ・マイクロサービスはAPIを介して相互に通信し、イベントドリブン・アーキテクチャを使用します。これにより、各アプリケーションの全体的なパフォーマンスが向上します。Oracle Cloud Nativeサービスは、CNCFトレイルマップに従って移行を簡素化し、企業が最新のクラウド・ネイティブ・アプリケーションの構築、デプロイ、および管理を簡単に開始できるように支援します。
サーバーレス機能という用語は、開発者の生産性の向上に焦点を当てたアーキテクチャ・スタイルを表しています。サーバーレス・アプリケーションを使用すると、イベントドリブン・アーキテクチャおよびさまざまなサービスとしてのバックエンド(BaaS)モデルを使用して、プラットフォーム上でサービスとして機能する(FaaS)コードを記述できます。これにより、プロビジョニング、パッチ適用、スケーリング、セキュリティ、高可用性などについて心配する必要がなくなります。Oracle FunctionsなどのFaaSプラットフォームでは、アプリケーションは小さなコード(ナノサービス)に分割されます。これらのコードは、イベントによってトリガーされたときにオンデマンドで動的にスケジュールされ、実行されます。このアプローチの利点は、必要な場合にのみコードが呼び出されて実行されるため、実行期間中に使用したリソースに対してのみ支払いが発生することにあります。これは、アプリケーションがサーバーにロードされ、ほとんどの時間がアイドル状態でリクエストを待機するという従来のサーバーのアプローチとは異なります。したがって、サーバーレス・コンピューティングでは、アイドル状態のリソースに対して支払うのではなく、実際に使用したコンピューティング・リソースにのみ支払います。
クラウド・ネイティブ・サービスは、デジタル・イノベーションの中核であり、高度な分析、モバイルアプリ、チャットボットを実現する鍵になります。DevOpsの手法では、複雑なソフトウェア・プラットフォームの構築、運用、維持に関連するほとんどの管理タスクが排除されます。ソフトウェア開発、デプロイメント、テストのアクティビティをクラウド内で行うことができ、自由に規模を変化させることができます。アプリケーション、DevOps、およびワークロードをクラウド・ネイティブ・アーキテクチャに移行することは、ビジネスの競争力を維持するために不可欠です。
オラクルのクラウド・ネイティブ・サービスは、Kubernetes、Docker、サーバーレス機能、API、Kafkaなどの標準ベースの技術を使用して、最新のクラウド・ネイティブ・アプリケーション開発を促進します。よく「クラウドのオペレーティングシステム」と言われるKubernetesは、コンテナ化されたアプリケーションとサービスのクラスタを管理するためのオープン・ソース・プラットフォームです。Kubernetesの主要なコンポーネントは、クラスタ、ノード、およびコントロールプレーンです。クラスタにはノードが含まれます。各ノードは、少なくとも1台のワーカーマシンのセットで構成されます。ノードは、導入されたアプリケーションの要素を含むポッドをホストします。コントロールプレーンは、クラスタ内の(多くの場合、多数のコンピュータにまたがる)ノードとポッドを管理し、回復性と高可用性を実現します。
オラクルは、開発チームが業務タスクを削減し、アプリケーションを迅速に構築できるように、これらのサービスに必要なクラウドツールと自動化を提供します。クラウド・ネイティブ・サービスはOracle Cloud Infrastructure(OCI)で実行され、高パフォーマンスでで低コストの標準ベース・プラットフォームを提供します。OCIでオープンソースとオープン標準に基づくサービスを利用することにより、開発者はリファクタリングなしで、任意のクラウドまたはオンプレミス環境でアプリケーションを実行できます。これにより、構築とイノベーションに集中できるようになります。
OCI Container Registryは、オラクルが管理するDockerレジストリサービスで、オープン標準に基づいており、コンテナイメージをセキュアに保存および共有できます。使い慣れたDockerコマンド・ライン・インタフェース(CLI)とAPIを使用して、Dockerイメージを容易にプッシュおよびプルできます。コンテナのライフサイクルをサポートするために、Container Registryは、オラクルのContainer Engine for Kubernetes、OCI Identity and Access Management、Oracle Visual Builder Studio、サードパーティの開発者ツールやDevOpsツールと連携します。
OCI Notificationsは、高可用性かつ低レイテンシのパブリッシュ/サブスクライブ(pub/sub)サービスで、Oracle Cloud Functions、電子メール、SMS、メッセージ配信パートナー(Slack、PagerDuty、ServiceNowなど)にアラートおよびメッセージを送信します。このサービスは、安全なアクセスを確保するためのOCI Identity and Access Managementと統合されており、トラフィックバースト中でも各メッセージを配信できます。Notificationsは、スケーラブルで信頼性の高いクラウド・ネイティブ・アプリケーションの構築に役立ちます。
OCI Streaming サービスは、開発者やデータ・サイエンティスト向けの、リアルタイムでサーバーレスなApache Kafka互換のイベント・ストリーミング・プラットフォームです。このマネージドイベント・ストリーミング・サービスは、リアルタイム・ストリーミング・データを大規模に取り込み、保存、処理します。広く使用されているオープンソースのKafka APIとの完全な互換性により、ロックインを削減します。
Container Engine for Kubernetes(OKE)は、最新のクラウド・ネイティブ・アプリケーションを構築する時間とコストを削減できる、オラクル管理のコンテナ・オーケストレーション・サービスです。他のほとんどのベンダーと異なり、OCIでは、より高性能で低コストのコンピュートシェイプで稼働するContainer Engine for Kubernetesを無償サービスとして提供します。DevOpsの開発現場では、未変更のオープンソースであるKubernetesを使用してアプリケーション・ワークロードに優れた移植性を実現し、自動更新とパッチ適用によって運用を簡素化できます。
Oracle Cloud Functionsは、開発者がインフラストラクチャを管理することなくアプリケーションを作成、実行、スケーリングできるサーバーレス・プラットフォームであり、OCI、プラットフォーム・サービス、およびSaaSアプリケーションとも統合できます。FunctionsはオープンソースのFnプロジェクトに基づいているので、他のクラウドやオンプレミス環境に容易に移植できるアプリケーションを作成できます。Functionsに基づくコードの実行時間は短いことが普通であり、お客様は、使用したリソースについてのみ料金を支払います。
クラウド・ネイティブ・アプリケーションの開発では、従来開発されてきたアプリよりはるかに優れたアプリを本当に提供できるでしょうか。その答えは「はい」です。クラウド・ネイティブ・アプリのメリットは明らかです。クラウド・ネイティブ・アプリは、その機能がマイクロサービスに分割されており、個別の管理が可能であるため、拡張することができます。また、クラウド・ネイティブ・アプリは、クラウド・インフラストラクチャに依存しないため、分散性の高い方法で実行できます。その結果、独立性を維持でき、アプリケーションのニーズに基づいてリソースを割り当てることができます。クラウド・ネイティブ・アプリケーションは、プライベートクラウド、パブリッククラウド、ハイブリッドクラウドで一貫したエクスペリエンスを提供できるため、ビジネス戦略を強化し、ビジネスの価値を高めるための主要な手段となっています。組織は、スケーラブルでリスクを低減でき、高い応答性と信頼性を備えたクラウド・ネイティブ・アプリを実行することで、クラウド・コンピューティングをフルに活用できます。
なぜ開発者たちが、クラウドネイティブ・テクノロジーを利用して、どこでも実行できる次世代のアプリケーションの構築に期待しているかをご覧ください。
Dockerコンテナ、Kubernetes、Terraformなどのクラウド・ネイティブ・テクノロジを使用して、マイクロサービスやサーバーレス機能などの最新アプリケーションを構築、監視、管理する方法を学ぶことができます。