大量のコンテナ管理や負荷分散を実現する「Kubernetes」について概要から本番活用の仕方まで解説する本連載。第2回はコンテナ技術を本番環境で活用する際の課題を解決する「Kubernetes」と3つのコンセプトを解説します。
コンテナ技術の活用により、開発者や運用管理者の負担が減り、開発環境の構築、アプリケーション更新のスピードが飛躍的に向上しました。一方で、コンテナ技術をエンタープライズのサービス提供環境(以下、本番環境)で活用するには課題があります。
大量のコンテナ管理や負荷分散を実現する「Kubernetes」について概要から本番活用の仕方まで解説する本連載「これから始める企業のためのコンテナ実践講座」の第2回は、コンテナ技術を本番環境で活用する際の課題を解決する「Kubernetes」の概要と、その3つのコンセプトを解説します。
いま、ロボティクスプロセスオートメーション(RPA)がもてはやされている理由は、さまざまな業務プロセスをRPAを活用してスピードアップすることが、ビジネスに必要なものと考えられているからです。
その根底にあるのは、人力作業を削減し、ITの力で自動化することです。コンテナ技術を利用するメリットも「自動化」がキーポイントです。そして、コンテナ技術を扱うために登場した「Docker」は人の手による作業ではない「自動化された操作」を実現しました。自動化された操作とはどういうことか、スプレッドシートアプリにおけるマクロファイル(以下、マクロ)を例に説明します。
スプレッドシートアプリのマクロとは、セルに対する操作などを自動化する手法のことです。マクロを複数人で利用する場合、マクロを利用者全員に配布する必要があります。また、マクロをフォルダに配置したり、マクロが実行できるバージョンのスプレッドシートアプリを用意したりと、手作業で行う必要があります。
コンテナ技術が実現した「自動化された操作」とは、マクロ作成後の配布、実行までの一連の操作のことです。マクロと一緒にスプレッドシートアプリを配布すれば、スプレッドシートアプリとマクロファイルのバージョンの不整合は解消されます。自動化された操作を実現することで、アプリケーションリリースのハードルを大きく下げ、かつ、人的作業を削減できるわけです。
現在のサーバアプリケーションの世界では、コンテナ技術を利用することで、以下のようなメリットを享受できる時代になったといえます。
ちなみに、コンテナ技術の世界では先述した作成、配布、利用のことを「ビルド(構築)、シップ(配布)、ラン(実行)」といい、まとめて「コンテナライフサイクル」と呼びます。
コンテナライフサイクルを実現するコンテナ実行環境として最も利用されているのは「Docker」ですが、昨今は「Kubernetes」というコンテナ管理ツールも話題になっています。なぜ、Kubernetesが話題になっているのでしょうか。それは、本番環境でDockerだけを利用して運用するには不便な部分があるからです。
開発環境と本番環境には、大きな違いとして「サービスの停止を許容できるかどうか」「厳格な管理が必要かどうか」があります。Dockerでダウンタイムのないサービスを大規模運用するには、さまざまな問題を解決しなければなりません。例えば以下のような問題です。
開発者が利用する点でいえば、実行環境の準備が容易で、さまざまな知見がネットで公開されているDockerは優れたツールといえます。しかし、Dockerを本番環境で利用するには以上のような問題があったのです。
Copyright © ITmedia, Inc. All Rights Reserved.