イベント・セミナー2022 3

IBMとRed Hatが推進するレガシーアプリケーションをKubernetesに移行するためのツールKonveyorを紹介

レガシーアプリケーションをクラウドネイティブなシステムに移行させるオープンソースソフトウェア、Konveyorを紹介する。

松下 康之 - Yasuyuki Matsushita

2022年3月25日 14:05

Cloud Native Computing Foundation(CNCF)が公開している動画シリーズから、Red HatとIBMが推進するオープンソースソフトウェアKonveyor(コンベア)の概要を解説する動画を紹介する。Konveyorは、レガシーなモノリシックアプリケーションをクラウドネイティブなアプリケーションに移行させるためのツールだ。Konveyorを使って3層構造のレガシーなWebアプリを移行させる例を示すことで、具体的な移行方法を解説するものとなっている。

レガシーシステムのモダン化を助けるKonveyor

Konveyorは、単にリフト&シフト(レガシーシステムをそのままクラウドに持ち込み、少しずつ調整していく手法)するだけではない。中途半端に分解されたモノリシックアプリを、コンテナ化とCI/CDによってソースの変更から自動で本番環境にデプロイできる状態にするところまでが、Konveyorの目的である。これは現実的なアプローチといえるだろう。また「中途半端」と書いた意味は、アプリケーションの一部がCloud Foundryや、マニュアルで運用されているKubernetesに点在する状況を意味している。ここから、最終的に全体をOpenShiftに移行していることがポイントだ。

PaaSの代名詞だったCloud Foundryを、2021年時点では積極的に選択するべきではないプラットフォームとしてRed Hatが位置付けているのが興味深い。かつてOpenShiftは、PaaSとしてはCloud Foundryに遠く及ばない位置にいた。しかし、OpenShiftバージョン3で古いコードを捨てて、コンテナのためのプラットフォームとしてKubernetesに移行した。これにより、一気にトップのコンテナプラットフォームとして成功したわけで、その自信が表れているとも言えるだろう。

動画のタイトルに「Migrating An N tier Application to Kubernetes With Open source Tools」とあるように、N層のアプリケーションをKubernetesに移行させることが目的だ。

動画:Migrating An N tier Application to Kubernetes With Open source Tools

プレゼンテーションを行ったのはJames Labocki氏など複数のエンジニアだ。プレゼンテーション内では所属を明かしてはいないが、全員がRed Hatのエンジニアだ。

アプリをクラウドネイティブに移行するデモを解説するLabocki氏

アプリをクラウドネイティブに移行するデモを解説するLabocki氏

ちなみにこの動画とほぼ同じ内容のブログ記事が、Red Hatのデベロッパー向けサイトにも公開されている。

参考:Modernize and migrate to Kubernetes with open source tools

現実にありそうな「中途半端」なシステム

ここでは、架空のGlobexという会社が使う仮想マシンベースのモノリシックなWebアプリケーションを使って移行を解説している。このスライドにあるように、元々はすべてが一体化したアプリケーションでWebにおける販売を行うRetailというアプリケーションで、内部にゲートウェイ、顧客データベース、在庫管理、オーダー管理などが存在している。

元のモノリシックなアプリケーションの概要

元のモノリシックなアプリケーションの概要

ApacheのWebサーバーの後ろにアプリケーションがあり、データベースはOracleというように、典型的な3階層のWebアプリケーションだ。

そこからアプリケーションの一部、ここではOracleデータベースを使う顧客管理と在庫管理を残して、フロントエンドとゲートウェイ、オーダー管理がCloud Foundryに移行、オーダーデータベースもPostgreSQLに移行したという想定となっている。

一部のアプリケーションがCloud Foundryに移行されているrr

一部のアプリケーションがCloud Foundryに移行されているrr

さらに仮想マシンで稼働していた在庫管理をKubernetesに移行、在庫データベースもKubernetes上のPostgreSQLに移行しているという前提だ。モノリシックな3層アプリケーションがVMwareベースの仮想マシン、Cloud Foundry、そしてKubernetesという横方向の3層構造、もしくは3つの異なるプラットフォーム上に実装されているということになる。DXの過程で、レガシーなシステムをクラウドに移行させるタイミングではありがちな状況を上手く表していると言える。

Javaで書かれているインベントリー管理はKubernetesにr移行

Javaで書かれているインベントリー管理はKubernetesにr移行

結果としてシステム全体において変更のための時間は短縮されず、3つの異なるプラットフォームを運用管理しなければいけなくなったとして、すべてが仮想マシンに収容されていた時よりも複雑さは増しているという問題を提起している。ここでもさりげなく「Services on Cloud Foundry need a path forward to a platform that has a strong future」と、Cloud Foundryには未来がないことを指摘している。

3つのプラットフォームを管理する苦労が増えている

3つのプラットフォームを管理する苦労が増えている

そして理想的なシステム像は、すべてがKubernetes上に実装され、GitOpsで構成管理が行われ、変更が自動的に実装されることだと解説した。

最終的な理想形はこのシステム形態

最終的な理想形はこのシステム形態

この記事のキーワード

この記事をシェアしてください

人気記事トップ10

人気記事ランキングをもっと見る