Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

IT技術 (Technology)

クラウドネイティブとは?(コンテナ、サービスメッシュ、マイクロサービス、イミュータブルインフラストラクチャ等)

投稿日:2021年6月22日 更新日:

<目次>

(1) クラウドネイティブとは?(コンテナ、サービスメッシュ、マイクロサービス、イミュータブルインフラストラクチャ等)
 (1-1) コンテナ
 (1-2) サービスメッシュ
 (1-3) マイクロサービス
 (1-4) イミュータブルインフラストラクチャ

(1) クラウドネイティブとは?(コンテナ、サービスメッシュ、マイクロサービス、イミュータブルインフラストラクチャ等)

クラウド技術を用いて、より「短時間」で、より「スケーラビリティ」があり「疎結合」で「可観測性の高い」システム構築をするための手法を「クラウドネイティブ」と呼びます。いうなれば「変化に強い」システムを通るためのアプローチとも言えます。

(1-1) コンテナ

「コンテナ」はアプリケーションが載る基盤に関わらず、「環境間の移行を素早く」かつ「安定的に稼働」させるためのソリューションです。VMと似ているように思えますが、大きな違いとしてVMはハードウェアレベルで仮想化しているのに対して、コンテナはOSレベルでの仮想化をしています。OS上で複数のコンテナが稼働するため、OS全体の起動と比較して速く、かつメモリの消費も少ないという利点があります。

目次にもどる

(1-2) サービスメッシュ

「サービスメッシュ」はマイクロサービスにおける各サービス同士の通信を円滑にしつつ、信頼性やセキュリティや可観測性を向上させる目的で使われる「ソフトウェアアーキテクチャのパターンです。各マイクロサービスに対して「サイドカーProxy」を持ち、サービス同士の通信はこのサイドカーProxyを通じて行う事で、高負荷のネットワーク間のサービス間の通信を処理する事が可能です。「サービスメッシュ」の機能を提供する代表的な製品では「Istio」などがあります。

目次にもどる

(1-3) マイクロサービス

「マイクロサービス」はシステムのアーキテクチャの一種で、アプリケーションを構成する際に、以下のような条件を満たすサービスの集合体として形成する事です。

・可用性が高くテストが用意
・各サービス同士が疎結合である
・各サービスは独立してデプロイが可能
・少ない人員でもメンテが可能である(小規模である)
 
このような概念の誕生の背景としては、近年は「アジャイル」(小単位で実装・テストを繰り返す手法)や「DevOps」(開発者と運用者が連携する開発手法)がより盛んになっている状況とも密接に関連しています。
 

(1-4) イミュータブルインフラストラクチャ

「イミュータブルインフラストラクチャ」はシステムインフラの新しい枠組みで、文字通り一度構築したら「immutable」(不変)なシステムを指します(正確には都度、新しいものに置き換わる)。

逆に、今までのシステム開発では「mutable」(可変)なサーバ構成という事になります。サーバのOSやパッケージはSSHやリモートデスクトップでサーバにログインして、パッチ適用等で定期的にアップデートされ、中のconfigファイルやアプリケーションは随時改修が入り、新しいものに置き換わっていきます。そうした点から「可変」なサーバ構成と呼んでいます。

なので「イミュータブルインフラストラクチャ」では、一度デプロイしたら変更が入る事はなく、もし更新が必要な場合は、共通のテンプレートから必要な設定を加えた新しいものを作り、全体を置き換えます(リプレース)。

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-IT技術 (Technology)

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

Power BIで複数テーブルをUNIONで結合する方法

  <目次> (1) Power BIで複数テーブルをUNIONで結合する方法  やりたいこと  初期状態  実施手順 (1) Power BIで複数テーブルをUNIONで結合する方法 やり …

エピック/ユーザーストーリー/フィーチャーの違いや特徴について

  <目次> (1) エピック/ユーザーストーリー/フィーチャーの違いや特徴について  (1-1) エピック(Epic)とは?  (1-2) フィーチャー(Feature)とは?  (1-3 …

no image

Azure FunctionsのPythonローカル開発をVS Codeで行うためのセットアップ手順

  <目次> (1) Azure FunctionsのPythonローカル開発をVS Codeで行うためのセットアップ手順  (1-1) STEP1:Node.js(含むnmp)のインストー …

Anaplanのトレーニングの受講方法について

  <目次> (1) Anaplanのトレーニングの受講方法について  (1-1) 受講方法の概要  (1-2) Anaplan Communityの登録手順  (1-3) Anaplanの …

no image

LangChainでConflueneceの内容を読み込む方法

  <目次> LangChainでConflueneceの内容を読み込む方法  やりたいこと  STEP0:前提条件  STEP1:事前準備  STEP2:Conflueneceページの読み …

  • English (United States)
  • 日本語
Top