IBM Cloud Blog
第6回『画像認識AI開発アプリケーションのコンテナ化』
2021年10月11日
カテゴリー IBM Cloud Blog | IBM Partner Ecosystem
記事をシェアする:
こんにちは。IBMテクノロジー事業本部ハイブリッドクラウド&AIソリューションセンターの中島です。IBM Powerのテクニカルセールスとして、既存アプリケーションのコンテナ化やオンプレミスとクラウド環境を組み合わせたハイブリット・クラウドのシステム設計などの技術支援をしております。
現在、多くの企業が既存システム(アプリケーション)のモダナイゼーション化を検討されているかと思います。しかし、「どのような粒度でコンテナ化を検討すれば良いか分からない」「そもそもコンテナ化とはどういうものが分からない」といったお悩みをいただくことが多くあります。実際、月に1回開催しているコンテナ共創センター勉強会でも同様のご質問をいただくことがありますし、また本ブログの読者の中にも、同様の不安事項をお持ちの方が多くいらっしゃるのではないでしょうか。
コンテナ共創センターブログ第6回では、株式会社システムリサーチ(以下システムリサーチ) 毛利 様にご協力いただき、画像認識AI開発支援システム「MODEWO」のコンテナ化実装の流れを例として、実際に既存アプリケーションのコンテナ化へ取り組まれた背景・感想などを執筆いただきました。
画像認識AI開発支援システム 「MODEWO」とは
こんにちは。株式会社システムリサーチの毛利です。画像認識AI開発支援システム 「MODEWO」は、AI開発で求められる数式やプログラミングなどの専門的な知識を必要としません。AIを適用したい現場の方が、AIを開発できるシステムです。その為、AI開発における”人材の不足”,”スキルの不足”,”高い導入費用”といった課題を解決し、様々な業種の企業におけるAI活用の促進を支援します。
MODEWOでは、「画像分類」と「物体検出」の大きく分けて2種類の画像認識AIを作成できます。いずれもGUIベースの開発画面を操作して、画像の取込み・加工からAI作成、作成したAIの検証といった一連の手順をプログラミングレスで行います。
MODEWOのコンテナ化実装
設計上MODEWOは、SaaS型での利用を想定したアプリケーションでした。しかし、AI開発のように利用者にとって秘匿性の高いデータを扱うアプリケーションの場合、クラウドなどの環境にデータをアップロードすることに抵抗がある企業も少なくありません。そのようなニーズに対応するためMODEWOの「1.オンプレミスでの構成」「2.メンテナンス容易性の観点からのコンテナ化」についての検討を開始しました。
自社内でもコンテナ活用へのスキルアップは図っていましたが、コンテナ共創センターの技術相談会というコミュニティーを活用することで更に加速することができました。
1.現行のシステム構成とアプリケーション内部で使用しているサービスの確認
コンテナ化にあたり、まず現行のMODEWOで実装しているシステム構成ならびに内部サービスの整理をしました。MODEWOのSaaS型システムでは、アプリケーション内部で使用する関連サービスが複数の仮想マシンに分割して実装していました。まずはそのシステム構成と各仮想マシンで稼働しているサービスを整理しました。
2.コンテナ化のためのサービス粒度の検討
MODEWOは、SaaS型システムの段階で、ある一定の粒度で内部サービスを仮想マシンごとに分割して設計していました。その為、今回のコンテナ化実装では、この仮想マシンレベルの分割設計がコンテナ環境でも利用可能であると判断し、コンテナ化へ着手いたしました。結果として、コンテナ化に伴うMODEWOの内部サービスへの変更は必要なく、アプリケーションへの影響を最低限に抑えた形でコンテナ化を実現できました。
3.コンテナ化の実装
コンテナ化の実装時には、MODEWOのアプリケーション層と稼働環境を分けての構成を検討しました。MODEWOの実行ランタイムや各種設定ファイルは Dockerエンジンが稼働するホスト側のOS 上のディレクトリに配置し、各コンテナは必要に応じて対象のディレクトリをマウントする形としています。これにより、MODEWOのアプリケーション層と稼働環境(コンテナイメージ)を分けて管理することができ、今後想定されるアプリケーションの変更などにも柔軟に対応できるようにしています。また使用しているコンテナは、NginxやPostgreSQL、PowerAI ※1などのコンテナイメージをベースに、Docker Composeを用いて基本的な設定を加え起動しています。(※1.Deep Learningフレームワークをパッケージングしたコンテナイメージ)
Docker Composeは、複数コンテナを用いて1つのアプリケーションを稼働させる際に、非常に便利なツールです。通常、コンテナを管理する場合には、それぞれのコンテナに対して個別の管理が求められます。(各コンテナの起動や停止など)しかし、このDocker Composeを使用することで、複数のコンテナを1つのグループのようにまとめて管理することができます。グループの構成情報はdocker-compose.ymlというファイルで管理され、非常にシンプルかつ簡単な記述方式で実装が可能です。
またコンテナ間のネットワーク通信については、コンテナ名で名前解決ができるように設定しています。これにより、コンテナ間の通信を個々のIPアドレスを使用することなく実現しています。MODEWOのアプリケーション設定やPostgreSQL、Nginxといった内部システムの設定ファイルには、特定のIPアドレス情報を記載するのではなく、”web”や”manage”といったコンテナ名で設定することができるため、MODEWOのアプリケーション側の変更が稼働環境側の設定に依存しない(影響しない)構成が実現できます。 その結果、アプリケーション開発チームとインフラ担当チームのコミュニケーション頻度を減らすことに繋がります。 またDockerのファイアーウォールにより、自動的にweb以外の(内部)コンテナーが隠蔽され、外部から直接アクセスできなくするという狙いがあります。
このようにKubernetesやOpenShiftといったコンテナ・オーケストレーションツールを使用しない環境においても、各担当者間のコミュニケーションが開発スピードのボトルネックとならないよう、システム設計を検討できました。
最後にオンプレミスのMODEWO稼働プラットフォームとしては、IBM Powerを選択しています。IBM Powerが持つ「高セキュリティ」「高いパフォーマンス」「高可用性」といった強みがMODEWOに加わることにより、より安心・安全に画像認識AIの開発を促進いただけるプラットフォームとなりました。
MODEWOのコンテナ化実装の今後
今回のMODEWOコンテナ化実装では以下のメリットを得ることができたと考えています。
1)アプリケーションの構築・運用・起動が非常に軽い
コンテナは、従来の仮想マシンに比べて動作が軽く、非常に扱い易いことを実感します。特にアプリケーションの開発・運用フェーズでは、開発スピード向上の実現には、このメリットはとても有効に働きます。
2)開発環境・稼働環境の標準化をDocker Fileで簡素化できる
これまで開発環境の準備には、Excelなどを使用して、「このオペレーティングシステムに、このモジュールのこのバージョンをインストールし、このサービスにはどういう設定をして・・・」といったことを管理していました。この方法の場合、人的なミスが発生することもありますし、またドキュメントの管理自体も煩雑になりがちかと思います。しかし、コンテナ化して、Docker Composeでグループ化することで、開発環境・稼働環境の標準化を簡単に実現することができました。そしてアプリケーション開発者は、より自身が担当する開発エリアに専念し、時間・ワークロードを割けるようになります。
3)人的コミュニケーションの削減
今回のコンテナ化実装では、MODEWOのアプリケーションと実行環境を分けて管理するような仕様としました。これにより、ある一定のルールに基づいてアプリケーション開発者とインフラ担当者は自身の担当エリアの作業を進めることとなります。開発スピードが停滞する理由の1つに、「部門をまたがった人的コミュニケーション(承認フローなど)が多く発生している」ことが挙げられますが、それぞれの担当エリアの結びつきを疎結合とすることで物理的な手続きを最低限にし、この課題を解決できました。
このようなシステム設計の考え方が、最終的にはマイクロサービス化へと繋がることが期待できます。
今後、更なるアプリケーションメンテナンス性の向上や大規模AI開発環境への適用のため、KubernetesやOpenShiftなどを用いたコンテナアプリケーションのクラスタ化についても検討をすすめていきます。
最後に・・・
今回のコンテナ共創センターブログ第6回では、システムリサーチ様のMODEWOを例にコンテナ化実装の具体的なステップをご紹介いたしました。マイクロサービスを検討されている企業様は、まずはこのような視点から既存アプリケーションの実装や開発体制を見直していただくと、最初に取り組むべき課題を確認いただけるように思います。
また、コンテナ共創センターの相談会を積極的に活用いただくことをお勧めいたします。相談会では、既存のアプリケーションの実装状況やご相談企業様の社内スキルの状況、今後のビジネス方針などを伺い、その企業様にとってどのような進め方がベストかを一緒に検討させていただきます。是非、ご連絡ください。
余談ですが : IBM Power のコンテナ化実装について
IBM Power上でのコンテナ稼働について「IBM Power上でコンテナは利用できるの?」といったご質問を頂戴することがあります。もちろんIBM Powerでコンテナは「動きます!」
OpenPOWER Foundationの成果物の一つに、Power CPUとNvidia社のTesla V100を組み合わせたIBM Power Systems AC922ございます。このAC922は高速なAIの開発プラットフォームとして、多くのお客様にご利用いただいているのですが、そのAI開発環境としてコンテナ技術は良く使用されています。
またIBMはDocker Hubに、GPUとDeep Learning開発フレームワークの稼働確認済みコンテナイメージとして、PowerAIレポジトリを提供しております。AIの開発環境を簡単に作成したい、GPUをより安定して利用したい、などの理由から、このPowerAIコンテナイメージをご選択いただくことが多いです。
まだまだコンテナ on IBM Powerのメリットは沢山ございますが、その内容は改めて別のブログに掲載したいと思います。その為今回は、「IBM Power でもコンテナは利用できる!」この事を覚えていただけたらと思います。IBM Power上でのコンテナ利用についてご興味をお持ちの方は是非ご連絡ください!
中島 康裕
日本アイ・ビー・エム株式会社
ITスペシャリスト
入社時からLinux/OSSを中心としたサーバー技術営業として活動。特にIBM Power Systems上で使用するOSSに対する稼働テストや性能テスト、チューニング作業を担当。現在は IBM Power Systems上でDeep Learningやクラウド関連ソリューションを活用いただくメリットを紹介するなどの活動も行う。
セキュリティー・ロードマップ
IBM Cloud Blog
統合脅威管理、耐量子暗号化、半導体イノベーションにより、分散されているマルチクラウド環境が保護されます。 2023 安全な基盤モデルを活用した統合脅威管理により、価値の高い資産を保護 2023年には、統合された脅威管理と ...続きを読む
量子ロードマップ
IBM Cloud Blog
コンピューティングの未来はクォンタム・セントリックです。 2023 量子コンピューティングの並列化を導入 2023年は、Qiskit Runtimeに並列化を導入し、量子ワークフローの速度が向上する年になります。 お客様 ...続きを読む
ハイブリッドクラウド・ロードマップ
IBM Cloud Blog
コンポーザブルなアプリケーション、サービス、インフラストラクチャーにより、企業は複数のクラウドにまたがるダイナミックで信頼性の高い仮想コンピューティング環境の作成が可能になり、開発と運用をシンプルに行えるようになります。 ...続きを読む