IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

クラウドネイティブで行こう

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第1回 クラウドネイティブって何ですか (宮崎悟) 2022年5月

クラウドネイティブって何ですか

今回から、クラウドネイティブ技術に関して、要素技術からその方法まで、いろいろ紹介していきます。

クラウドネイティブの定義

クラウドネイティブは、アプリケーションコンテナと、Kubernetesに代表されるコンテナオーケストレータを組み合わせたシステムです。クラウドネイティブは、世界的に多くの注目を浴びている技術です。その利点としては、以下のものが考えられます。

  • ユーザニーズへの迅速な対応

  • トラフィック増減、セキュリティ問題など、運用に対する迅速な対応

  • DevSecOpsのプラットフォームとして有用

クラウドネイティブには定義が存在します。これは、CNCF(Cloud Native Computing Foundation)という団体で定義され、「CNCF Cloud Native Definition v1.0」という文書で公開しています。原文は英語で書かれていますが、日本を含む複数国の言語でも定義されています。以下に日本語訳を引用します。

クラウドネイティブ技術は、パブリッククラウド、プライベートクラウド、ハイブリッドクラウドなどの近代的でダイナミックな環境において、スケーラブルなアプリケーションを構築および実行するための能力を組織にもたらします。 このアプローチの代表例に、コンテナ、サービスメッシュ、マイクロサービス、イミュータブルインフラストラクチャ、および宣言型APIがあります。

これらの手法により、回復性、管理力、および可観測性のある疎結合システムが実現します。 これらを堅牢な自動化と組み合わせることで、エンジニアはインパクトのある変更を最小限の労力で頻繁かつ予測どおりに行うことができます。

Cloud Native Computing Foundationは、オープンソースでベンダー中立プロジェクトのエコシステムを育成・維持して、このパラダイムの採用を促進したいと考えてます。 私たちは最先端のパターンを民主化し、これらのイノベーションを誰もが利用できるようにします。

クラウドネイティブを構成する要素

クラウドネイティブの定義から、いくつか気になるキーワードを上げてみます。

  • 構成される技術

    • ダイナミックな環境 パブリッククラウド、プライベートクラウドのような動的(ダイナミック)な環境

    • スケーラブル アプリケーションの水平スケールを、自動的に構成、実行

    • コンテナ ここでは、Dockerに代表されるアプリケーションコンテナ

    • マイクロサービス

      個々の小さいサービスを複数組み合わせて、システム全体でサービスを提供する手法

    • サービスメッシュ サービス間の通信における負荷分散、トラフックの最適化、セキュア化を提供

    • イミュータブルインフラストラクチャ 作成後にその状態を変更しないアーキテクチャ

    • 宣言型API サービスへ命令を伝えるのではなく、サービスが目的とする状態を指定するAPI

  • 疎結合 複数のサービスをネットワークなどで接続し、個々の独立性を高くなるよう構成した状態のことです。逆に、複数のサービスが互いに依存し、独立性が低く構成した状態を密結合と呼びます。

    • 回復性 1つのサービスに障害が発生しても、全体的にはサービス停止に至らない。
    • 管理力 開発、テスト、環境構築、サービスデプロイを自動化し管理することで、開発とリリースを迅速に行える。
    • 可観測性 各サービスの状態および性能、セキュリティインシデントの発生を監視し、素早い対処を可能にする。
  • オープンソースなエコシステム 他者からのコードの監視を確保し、最先端の技術やパターンを使用します。また、ベンダーによるロックインを回避します。

これらのキーワードについて、今後説明していきます。

終わりに

今回は第1回目として、クラウドネイティブの定義と、そのキーワードを上げていきました。次回は、クラウドネイティブの基本となる、アプリケーションコンテナについて説明していきます。次回をお楽しみに。

 


 

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes