第7章 コンテナ化、オーケストレーション、デプロイ
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
近年、コンテナ化はソフトウェア開発とデプロイの世界を大きく変える存在となっている。アプリケーションを構築しデプロイする従来のメソッドは、一貫性の欠如、移植性の欠如、リソースの非効率的な使用といった課題にしばしば直面していた。コンテナ化は、新しく効果的な方法でこれらの問題の解決策を提供する。
では、コンテナ化とは何か?簡単に言えば、 アプリケーションを、ライブラリや依存関係のような実行に必要なものすべてと一緒に、コンテナと呼ばれる軽量でポータブルなユニットにパッケージする方法だ。これらのコンテナは、開発者のラップトップ、テストサーバ、本番環境など、どこにデプロイされてもアプリケーションが同じように実行されることを保証する。この一貫性により、開発者は互換性の問題やデプロイの複雑さを心配することなく、コードを書くことに集中できる。Dockerはコンテナ化のための最も人気のあるツールの1つで、、これらのコンテナを簡単に作成、共有、実行できる。Dockerは開発プロセスを合理化し、チームの作業を迅速化し、アプリケーションをより早く市場に投入できるようにする。
この章では、まずDockerを中心にコンテナ化の基本概念を説明する。コンテナの仕組み、作成方法、大規模な管理方法について学ぶ。また、コンテナイメージの管理、Kubernetesなどのツールを使ったコンテナのオーケストレーション、最新の戦略を使ったアプリケーションのデプロイなど、より高度なトピックにも触れる。この章が終わるころには、コンテナ化について、そしてコンテナ化によってシステム設計やソフトウェア開発へのアプローチをどのように改善できるのかについて、しっかりと理解していることだろう。さっそく、コンテナ化によって開発者の演算子がどのように簡単かつ効率的になるかを見ていこう!
アプリケーション・デプロイの進化
ソフトウェアデプロイの初期段階において、組織はアプリケーションの実行を物理サーバに依存していた。各アプリケーションは、通常、別々の物理サーバでホストされていたため、リソースの割り当てや利用不足の問題が発生した。例えば、複数のアプリケーションが同じサーバを共有する場合、1つのアプリケーションがリソースを独占し、他のアプリケーションのパフォーマンス低下を引き起こす可能性がある。このアプローチは、組織が多数の物理サーバを維持するのに苦労するため、非効率で高価であることが判明した。従来のデプロイの限界に対処するため、仮想化はゲームチェンジャー的なテクノロジーとして登場した。
図7-1に示す仮想化()により、企業は1台の物理サーバのCPUで複数の仮想マシン(VM)を稼働させることができ、リソース利用率とスケーラビリティを最大化できる。仮想マシンは、ソフトウェアを使用して物理コンピュータをエミュレートする。各VMは、独自のOSとアプリケーション・スタックを持つ独立したインスタンスとして動作し、アプリケーション間のセキュリティと分離を保証する。ハイパーバイザはホストマシンと仮想マシンの中間的な役割を果たし、仮想ディスク、ネットワークインタフェース、CPUなどの仮想ハードウェアコンポーネントを作成する。仮想マシンはアプリケーション間の強固な分離を実現するが、メモリ、ストレージ、処理能力などのオーバーヘッドが大きく、複数のOSインスタンスを管理する複雑さも伴う。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access