何から始めるコンテナ導入 ~JTPの考えるコンテナ導入ステップ~

昨今のビジネス環境の変化やユーザーニーズの多様化に伴い、これに対応できるITシステムとチーム構築が求められています。システムに特化したオンプレインフラ基盤では、ビジネス環境の変化や顧客のニーズに対する継続的な対応が難しくなり、 迅速に導入や破棄が可能なクラウドサービスの利用も一般的になっています。

システム開発においても迅速な更新や破棄が可能な「コンテナ」技術の導入が広がっています。コンテナ化により継続した更新のデプロイが容易となり、アプリケーションの開発サイクルの短縮にも繋がります。またサーバーリソースを効率よく利用できるため、サービスのスモールスタートからの拡張も容易となります。

その一方で、コンテナの利便性は認識しつつも、どこから着手すればよいかわからずコンテナ導入に踏み切れない方も多いかと感じています。そこで、弊社がコンテナ導入を検討しているお客様へご案内しているコンテナ導入のステップを紹介させていただきます。これがコンテナ導入の一歩を踏み出す一助となれば幸いです。

コンテナ導入の4ステップ

1. アプリケーションのコンテナ化を検討する

アプリケーションをコンテナ化する理由としては上述したましたが、以下のようなものをよく耳にします。

  • 継続したアプリケーションの更新と、迅速なデプロイ
  • サーバーリソースの効率利用運用の効率化
  • 運用の効率化

これらにつきましてはコンテナやコンテナオーケストレーションツール(Kubernetesなど)を使用することで得られる大きな利点です。 最近ですと、パッケージソフトウェアのSaaS提供などでコンテナが選ばれています。

しかしながら、どんなアプリケーションでもコンテナ化の恩恵を受けられるかというとそんなことは無く、アプリケーションによっては逆にコンテナに向かないものもあります。 たとえば、一般的に1つのコンテナでは1つのプロセス(アプリケーション)が実行されることが望ましいとされており、細分化できないモノリシックなシステムはコンテナに向かないとされています。また、サードパーティ製ソフトウェアや特定のライブラリ、特定のハードウェアに依存するアプリケーションではコンテナでの動作が保証されない場合があります。

コンテナを初めて導入しようと検討されている場合は、シンプルなアプリケーションからコンテナ化を検討します。

2. コンテナの学習

コンテナの導入を決定しましたら、コンテナ実行環境の基本操作などの学習が必要です。一般的によく利用されているコンテナ実行環境はDockerになります。また、複数のコンテナホストでクラスターを構築して、その上で稼働するコンテナを一元的に管理できるコンテナオーケストレーションツール(Kubernetesなど)もよく利用されています。

これらの学習は書籍や動画、Eラーニングサービスなどで実施できます。

3. ToBeを描く – まずは全部まるっと一つにコンテナ化

コンテナ実行環境についてある程度理解ができましたら、次に現行システムをコンテナ化する流れを検討します。

アプリケーションのコンテナ化を検討の際には1コンテナ1プロセスが望ましいと記載しましたが、最初から理想的なコンテナ環境をイメージすることは困難です。そのため、現行のシステム環境(As-Isモデル)から最終的なコンテナ環境(To-Beモデル)へ至るまでに段階を踏みながら近づけていきます。

コンテナ化の一番最初の段階としては、現行のアプリケーションをそのままコンテナ上で稼働させます。小さなアプリケーションであれば1つのサーバー上でApp、DBが稼働していることがあるかと思いますが、それらをそのまま1つのコンテナで稼働させます。

これを実施する理由としましては、コンテナイメージの作成などのコンテナ化に必要な工程を出来る限りシンプルにして、まずはコンテナ実行環境での操作に慣れることやコンテナ環境の構成を現行環境と比較して理解することがあります。

4. ToBeを描く – 少しずつ細分化、サービスの連携

シンプルなコンテナ構成でアプリケーションが稼働することができれば、次の段階としてコンテナの細分化や他サービスとの連携などを検討します。AppとDBを同じコンテナ内で稼働させている場合は、それぞれ別のコンテナで稼働させてみたり、他サービスとの連携ためのアプリケーション改修を行います。

また、ToBeモデルとして最終的にコンテナオーケストレーションツールの使用を検討されている場合は、Dockerホストで稼働を確認したコンテナをKubernetesクラスターで稼働させます。 このように段階を区切りながら最終的なToBeモデルに近づけていきます。

JTPアプリケーションモダナイゼーションサービス

このようにステップを踏みながら少しづつコンテナ技術を導入していくことで、コンテナのメリットやデメリットを発見でき、それらをふまえることでアプリケーションごとのコンテナ化も検討しやすくなります。

その一方で、コンテナ導入は新たなテクノロジー活用にとどまらず、ITチームの体制や組織文化の変革を含めた中長期的な「道のり」となり、自社だけでの検討や実践が難しいことがあります。弊社では、PoC や本番導入、運用までをトータルで支援することが出来るアプリケーションモダナイゼーションサービスを提供しております。

www.jtp.co.jp

最後に、弊社は日本IBM様主催のコンテナ共創センターに参加させていただいております。コンテナ共創センターでは定期的な勉強会が実施されており、これからコンテナを利用する方や既存のアプリをコンテナ化したい方向けにワークショップや事例紹介が行われております。コンテナに関わる方のコミュニケーションの場にもなっておりますので、是非ご参加いただければと思います。

www.ibm.com

執筆:坂田 識仁