コンテナ技術が抱える課題・コンテナ技術では解決できない課題
PaaSの優位点に触れる前に、まずは改めてコンテナ技術の優位点が説明された。コンテナとは、ソフトウェアが動作する環境を1つのOS上に複数構築し、それらを切り替えて実行可能にする技術である。OSを仮想化する技術ともいえるだろう。マシンを仮想化する従来からの技術に比べ、オーバーヘッドが少なくて軽い、起動が速い、可搬性が高い、マイクロサービスに適しているといった利点がある。
一方で、次のような課題もある。
アプリケーション開発者の負担が増える
アプリケーション開発者にとって、コンテナは開発環境を用意しやすいだけでなく、開発したときの環境(ミドルウェアやランタイムなど)を、本番環境へそのまま持って行けることがある。しかし、裏返せば、これまでサーバー管理者が担当していたミドルウェアやランタイムの準備を、アプリケーション開発者が行うことを意味する。Ansibleなどの構成管理ツールで自動化を図る場合も、構成管理ツールに実行させる環境構築のためのコードはアプリケーション開発者が記述し、保守していく必要がある。
また、可用性を確保するために本番環境ではクラスタ構成を組む場合があるだろう。すると、管理対象が大きく膨らんでしまう。コンテナを使用したシステムでは内部のレイヤーが増えるためだ。しかし、OSより上のレイヤーをアプリケーション開発者が構成していると、サーバー管理者やネットワーク管理者は手を出しにくい。管理の分担は以前よりずっと難しくなっている。
インフラ管理者の作業待ちで開発・公開を待たされる
OSより下のレイヤーについては、IaaSを利用する場合であっても、仮想マシンやストレージの作成はサーバー管理者、ファイアウォール設定や負荷分散はネットワーク管理者、デプロイ後の監視設定は監視のオペレーターが担当するケースが大半だろう。すると、アプリケーション開発者は彼ら・彼女らの作業が終わるまで待たされることになる。また、依頼や確認などのやり取りにも時間がかかる。アプリケーションを実装するために仮想マシンの作成依頼を行い、実装したアプリケーションをデプロイし、管理設定などを行って公開するまでに「一般に2週間はかかってしまっている」(吉田氏)という。
何よりこのことが生み出す一番の問題は、「責任と役割が異なる分業体制および固定的なインフラでは、柔軟かつ迅速な対応ができない」ことだと吉田氏は強調する。
【無料】PaaSハンズオンセミナーを受講してみませんか!
本稿でレポートしているPaaSハンズオンセミナーは、どなたでも受講できます。受講は無料です。詳細やお申し込みは、こちらのWebサイトをご覧ください。