「Excel手順書にさようなら」――運用管理者の不安を解消する「Kubernetes」のコンセプト:これから始める企業のためのコンテナ実践講座(2)(1/4 ページ)
大量のコンテナ管理や負荷分散を実現する「Kubernetes」について概要から本番活用の仕方まで解説する本連載。第2回はコンテナ技術を本番環境で活用する際の課題を解決する「Kubernetes」と3つのコンセプトを解説します。
コンテナ技術の活用により、開発者や運用管理者の負担が減り、開発環境の構築、アプリケーション更新のスピードが飛躍的に向上しました。一方で、コンテナ技術をエンタープライズのサービス提供環境(以下、本番環境)で活用するには課題があります。
大量のコンテナ管理や負荷分散を実現する「Kubernetes」について概要から本番活用の仕方まで解説する本連載「これから始める企業のためのコンテナ実践講座」の第2回は、コンテナ技術を本番環境で活用する際の課題を解決する「Kubernetes」の概要と、その3つのコンセプトを解説します。
あらためて、コンテナ技術を利用するメリットとは
いま、ロボティクスプロセスオートメーション(RPA)がもてはやされている理由は、さまざまな業務プロセスをRPAを活用してスピードアップすることが、ビジネスに必要なものと考えられているからです。
その根底にあるのは、人力作業を削減し、ITの力で自動化することです。コンテナ技術を利用するメリットも「自動化」がキーポイントです。そして、コンテナ技術を扱うために登場した「Docker」は人の手による作業ではない「自動化された操作」を実現しました。自動化された操作とはどういうことか、スプレッドシートアプリにおけるマクロファイル(以下、マクロ)を例に説明します。
スプレッドシートアプリのマクロとは、セルに対する操作などを自動化する手法のことです。マクロを複数人で利用する場合、マクロを利用者全員に配布する必要があります。また、マクロをフォルダに配置したり、マクロが実行できるバージョンのスプレッドシートアプリを用意したりと、手作業で行う必要があります。
コンテナ技術が実現した「自動化された操作」とは、マクロ作成後の配布、実行までの一連の操作のことです。マクロと一緒にスプレッドシートアプリを配布すれば、スプレッドシートアプリとマクロファイルのバージョンの不整合は解消されます。自動化された操作を実現することで、アプリケーションリリースのハードルを大きく下げ、かつ、人的作業を削減できるわけです。
現在のサーバアプリケーションの世界では、コンテナ技術を利用することで、以下のようなメリットを享受できる時代になったといえます。
- 自動で環境を構築できる
- アプリケーションを修正するたびに自動テストを実行できる(自動テストがしやすくなる)
- 自動テストによりバグを発見しやすくなる(コード品質と開発スピードの向上)
ちなみに、コンテナ技術の世界では先述した作成、配布、利用のことを「ビルド(構築)、シップ(配布)、ラン(実行)」といい、まとめて「コンテナライフサイクル」と呼びます。
コンテナライフサイクルを実現するコンテナ実行環境として最も利用されているのは「Docker」ですが、昨今は「Kubernetes」というコンテナ管理ツールも話題になっています。なぜ、Kubernetesが話題になっているのでしょうか。それは、本番環境でDockerだけを利用して運用するには不便な部分があるからです。
Dockerの不便な部分とは
開発環境と本番環境には、大きな違いとして「サービスの停止を許容できるかどうか」「厳格な管理が必要かどうか」があります。Dockerでダウンタイムのないサービスを大規模運用するには、さまざまな問題を解決しなければなりません。例えば以下のような問題です。
- Dockerの永続ストレージの管理の問題
- Dockerのネットワーク、ポート番号管理の問題
- コンテナでの設定ファイル、秘匿情報管理の問題
- コンテナ稼働状況管理の問題、スケジューリングの問題
- コンテナ用ホストの管理の問題
開発者が利用する点でいえば、実行環境の準備が容易で、さまざまな知見がネットで公開されているDockerは優れたツールといえます。しかし、Dockerを本番環境で利用するには以上のような問題があったのです。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 「コンテナって何? どう使える?」――ソフトウェア開発の課題を解決するコンテナ技術
「コンテナ技術」やコンテナ実行環境の「Docker」、大量のコンテナ管理や負荷分散を実現する「Kubernetes」について概要から本番活用の仕方まで解説する本連載。第1回は「コンテナ技術」や「Docker」が、現代のソフトウェア開発に求められるようになった理由を解説します。 - Kubernetes、コンテナ技術を活用した開発アジリティー向上にインフラアーキテクトはどう貢献したのか
Kubernetes、コンテナ技術を活用したCI/CD基盤におけるサービス開発について、リクルートの事例を基に解説する連載。初回は、インフラアーキテクトの視点から技術選定の考え方について解説。 - 経営層、管理層がセキュリティ人材に装備を与え、経験値をためさせるためにすべきこと
40〜50代の経営者や管理職に向けて、RPGを題材にセキュリティについて理解を深めてもらう連載。初回は「レベルアップ」編として、セキュリティ人材が装備を整える難しさ、そして人材育成の難しさについて、RPGスタート時の主人公の育成に例えてお話しする。