IBM Cloud Blog
第11回『Windows Container Porting Program いよいよ始動します!』
2022年03月15日
カテゴリー IBM Cloud Blog | IBM Partner Ecosystem
記事をシェアする:
こんにちは。IBMテクノロジー事業本部 パートナー・アライアンス事業の安部と申します。パートナー様担当のテクニカルセールスとして、パートナー様との共創をテーマに、お客様のソリューションのコンテナ化やクラウド対応の際の技術支援をさせていただいております。
今回は「Windows Container Porting Program」という、IBMの新たな活動開始のお知らせをさせていただきます。アプリケーション開発の効率化・高度化を目指したい皆様において、「Windowsコンテナ」というものを知り、その技術を使って、新たな取り組みを開始いただくきっかけにしていただければと思います。
Windowsコンテナ
これまで、日本のお客様では、様々な.NET系のWindowsベースのアプリケーションを作ってこられてきました。また、ITベンダーやパートナー様におかれましては、そのご支援を行う中で、Windowsアプリケーションの開発ノウハウや関連スキルを蓄積されてこられたかと思います。
一方、昨今のビジネススピードの高まりに対し、システムのクラウド化やソリューションのSaaS化などが進むとともに、特に、開発の効率化を目指して、「コンテナ技術の利用」というものが、大きくフォーカスされてきています。
「コンテナ」というのは、元々、LinuxやOSSの世界で発展してきた技術ではあります。しかし、実は、Windowsの世界でも「Windowsコンテナ」というのが、数年前から Windowsサーバの中の標準機能として既に実装されていました。(Windowsの中で、Dockerコンテナが動きます)
コンテナ技術の発展と共に、コンテナのオーケストレーションツールとして、デファクトスタンダードとなったKubernetesですが、2019年3月のv1.14にて、Windowsノード(Windows Server 2019)が正式サポートとなりました。また、エンタープライズ領域のKubernetesディストリビューションで、最も実績を持つ、Red Hat OpenShiftでも、2020年11月のv4.6にて正式サポートが開始されました。
以降、機能拡張も少しずつ進んできており、これから、いよいよエンタープライズの世界で、Windowsコンテナの本格活用が始まっていくのではないかと考えています。
Windows Container Porting Program の開始
昨年、IBMは、お客様のソリューションのコンテナ化を加速させるべく、コンテナ共創センターを立ち上げ、様々な活動を進めて参りました。
この度、その取り組みを更に加速させるべく、Windowsアプリケーションのコンテナ化を推進する「Windows Container Porting Program」というプログラムを新たに発表させていただき、これから、皆様と共に、Windowsベースのソリューションのコンテナ化を推進し、お客様やパートナー様との共創活動を開始いたします。
この新たな領域への取り組みにご参画し、共創活動を推進いただける皆様と共に、Windowsアプリケーションのコンテナ化の推進に加えて、さらに、Kubernetes(OpenShift)プラットフォームのテクノロジーを融合させて、エンタープライズでのWindowsコンテナの本格活用についても模索していければと考えています。
なお、「Windowsコンテナ」についての詳しい情報については、当Programの活動の中で、また、今後のブログなどでも、ご紹介させていただければと思います。
第11回コンテナ共創センター勉強会の実施
このプログラムの開始にあたり、初回イベントとして、3月30日(水)18時からの第11回コンテナ共創センター勉強会にて、「Windowsコンテナの世界」と題したセッションをご用意させて頂きます。
メインのキーノートでは、WindowsコンテナとOpenShiftの活用について、当Programの推進リーダーである大西 彰より、お話させていただきます。
また、当セッションの後半では、「Windows Container Porting Program」の活動の概要と参加申し込み方法などをお話させていただきます。
おわりに・・・
最後になりますが、Windows Container Porting Program の推進リーダーの 大西 彰より、当Programに対する意気込みを語ってもらいます。大西さんどうぞ。
大西 彰:「日本市場でWindowsソリューションが様々な形で展開されています。多くの企業がクラウド対応やコンテナ化に関心があり、開発からユーザーへの素早い展開、さらには継続的なアップデートを通じて、SaaS型の運用、サブスクリプション型のビジネス展開を目指しています。既存のWindowsアプリをより最新の技術で展開していくために、IBMと一緒にWindowsアプリのコンテナ化を進めていきませんか?さらにOpenShiftに対応することで、ハイブリッドクラウド市場で御社のビジネスをさらに成長させましょう!」
「Windows Container Porting Program」としての最初の公開イベントとなりますので、以下のサイトより、奮って、参加登録いただけますと幸いです。
勉強会にご参加いただくにあたって、「コンテナ」についての予備知識を少し補足
3月30日の勉強会で、「Windowsコンテナ」の世界に入っていただくのですが、その前提となる、「コンテナ」の理解について、まだ、少し自信が無いという方もいらっしゃるかもしれないので、以下、「コンテナ」について、もう少しご説明を加えさせていただきます。
今更ですが、なぜ「コンテナ技術」というものが、世界中で注目され、推進されてきているのでしょうか。「コンテナ技術」は、どのようなもので、誰にとって、何が嬉しいのでしょうか。
コンテナが、今、市場のソリューションやアプリケーションに非常に多く使われてきている背景としては、ビジネスアプリケーションの競争力の強化と、リリースサイクルの高速化にあるかと思います。
少し以前のアプリケーション開発の世界において、ソリューションやアプリケーションパッケージなどは、ウォータフォール型で開発し、リリース後の機能追加に伴うバージョンアップや、主な修正パッチの提供などは、半年や1年に1回といったような、比較的長いサイクルで実施されてきたかと思います。
しかし、昨今、システムのクラウド活用が進む中で、ソリューション提供形態として、パッケージ導入型ではなく、インターネットサービス型(サブスクリプションビジネス)への変化が求められたり、特にB2C系のアプリケーションなどを中心に、サービスの競争力の強化を図るための機能追加が、頻繁に求められるようになってきました。
そこで、アプリケーション開発をアジャイル的に行い、アプリケーションの開発・テスト・リリースといったサイクルをより短くし、そういったアプリケーションの高い更新頻度に対応する為に、コンテナ技術活用の必要性が出てきたと言えます。
もし、皆様が開発・提供されているアプリケーションの中で、今後に向けて、競争力の強化のために、機能の更新頻度や開発効率を上げたい、或いは、SaaSやサブスクリプションでのサービス提供などへの変革を検討されていて、将来的に、開発・リリースの頻度を高めたいといったような場合は、ぜひ、コンテナ技術の活用をご検討いただけると良いかと思います。
コンテナの仕組み
もう少し「コンテナ」の実態に踏み込んで、その仕組みを見ていきたいと思います。コンテナとは何でしょうか。
まず、技術的に見ると、コンテナの仕組みは、一昔前から、標準的に使われている、仮想化技術と対比するとわかりやすいかと思います。
従来からある仮想化技術、仮想サーバ(以後、VM)では、ハイパーバイザー(ホストOS)の上に、ゲストOSという形で(VM毎にOSが含まれて)稼働します。VMは中にOSが丸ごと含まれていますので、そのサイズも大きいですし、VMの起動はOSの起動でもありますので、稼働させるのに高いリソースと時間を多く費やします。
一方、コンテナでは、各コンテナ内に、アプリケーションを稼働させるのに必要なバイナリーやライブラリーなどを、一式パッケージングした形で「コンテナ化」して稼働させます。しかし、アプリケーションの動作に必要なモジュールの多くは、ホストOS側で保持しているカーネルを利用し、コンテナはプロセスとして起動させる為、サイズも小さく、消費するリソースを大幅に節約でき、非常に軽く、高速に動作します。
コンテナ技術を使うと何が嬉しい?誰が嬉しい?
では、上で説明したコンテナの仕組みにより、コンテナ技術を使う側には、どんなメリットがあるのでしょうか。コンテナは、昔からあるハイパーバイザー型仮想化技術の、単なる置き換えなのでしょうか。
確かに、VMと比べ、リソースを大幅に節約でき、起動が非常に短時間に実行できると言った、インフラ的なメリットがあります。しかし、コンテナ技術を使うことでの、最大のメリットは、アプリケーション開発者にとっての、アプリケーションの開発の迅速化・効率化にあると言えるかと思います。
ここから、コンテナ関連技術について触れながら、さらにもう一段、アプリケーション開発者にとってのコンテナ化のメリットを見ていきましょう。
Dockerコンテナについて
アプリケーションをコンテナにして、開発・実行する際に利用する、デファクトスタンダードのツールの1つに「Docker」というソフトウェアがあります。Windowsコンテナの稼働環境においては、Windows Server内で、このDockerが標準に組み込まれており、コンテナを管理するツールとして、このDockerが使われます。
Dockerは2013年にリリースされた、長い実績をもつ技術であり、コンテナイメージの作成・共有・配布・デプロイを可能とするものです。
Dockerを使ったコンテナアプリケーションの実行
Dockerの構成要素を見ていきます。Dockerでは、以下の構成要素があります。
- イメージ:コンテナを作成するために利用するテンプレート
- コンテナ:イメージから作成され、アプリケーション・サービスが稼働する基本ユニット
- Docker Hub:コンテナのイメージを蓄積・配信・共有するSaaSサービス。企業内にプライベートな代替リポジトリを立てる事も可能
- Docker Engine:物理サーバや仮想サーバ上で実行する、コンテナを稼働させるためのランタイム。ユーザはコマンドで操作可能。コンテナのランタイムはDocker Engine以外にも様々に存在しており、コンテナの標準仕様に沿ったものであれば、実行互換性がある。
アプリケーション開発者は以下のようなコマンドを使って、アプリケーションソースコードをコンテナ化し、Docker Hubに格納します。その後、Docker Engine上にデプロイする事で、アプリケーションを稼働させることができます。
コンテナにより実現されるアプリケーション開発者におけるメリット
コンテナ技術を使う事によって、アプリケーション開発においては、大きく3つのメリットが上げられると思います。
まず1つ目は、リソース効率が高く、アプリケーションを含むコンテナが非常に高速に起動できる事です。
開発者の個人端末において、コンテナの起動・停止などがストレス無く実行でき、開発から単体テスト、完成モジュールの統合といった、開発プロセスにおいて高い開発生産性を保てます。1つの環境の上で、異ったモジュールを含んだ複数のコンテナ立ち上げ、切り替えながらテストなどもできるので、開発効率を非常に高めることができます。
2つ目は、稼働テスト時のトラブルの低減と本番リリースの容易性の実現です。
開発者がイメージから新しいコンテナを作成したら、そのコンテナは、開発環境であっても、テスト環境であっても、本番環境であっても、どの環境でも必ず同じ動作をします。開発・テスト環境では正常に動作・検証していたモジュールが、本番環境でのモジュールや設定などの微妙な違いにより、本番環境で動かしたとたんに、突然トラブルが発生するといったような問題を防げます。
また、アプリケーションのバージョンアップに際し、バージョンごとに、関連するライブラリなど含めて、一式、クリーンなコンテナを作成するような形で運用しますので、古い環境や設定に影響されるトラブルを低減できます。
さらに、新しいバージョンのアプリケーション(=コンテナ)をリリースした後で、何か不具合が発覚した際には、過去、正常に動作していたバージョンのコンテナに素早く戻すことが容易にできるため、本番リリースに対する準備や障壁を低く抑えることができます。
3つ目は、稼働ポータビリティの実現です。
コンテナ自体に、必要なコンポーネントを必要十分な形でパッケージングするため、コンテナ稼働基盤があれば、オンプレ、クラウド問わず、どこでも稼働するアプリケーションとなります。コンテナ技術により、開発アプリケーションは、稼働プラットフォームを選ばず、高い可搬性の実現が可能となります。
上記で示した開発生産性や運用の効率化の向上といった効果以外にも、世界には、コンテナ技術を用いて、様々な、コンテナ化されたオープンソースが提供されているため、そういった最新の機能を活用したアプリケーション開発が可能となるといったようなメリットもあるかと思います。
以上、コンテナ技術が、誰にとって、どういう時に、何が嬉しいのかというのを簡単にご説明させていただきました。
今回のメインテーマである「Windowsコンテナ」への取り組みというのは、Windowsアプリケーション開発の中で、新しいビジネスニーズに対する開発・リリースの高速化・効率化を目指されたいという皆様にとっては、1つの新たな挑戦になるかと思います。
改めて、3月30日(水)コンテナ共創センター勉強会第11回「Windowsコンテナの世界」で、皆様のご参加をお待ちしています!!
最後までお付き合い頂き、ありがとうございました。
安部 敬一
日本アイ・ビー・エム株式会社
パートナー・アライアンス事業本部 パートナー・ソリューション共創センター
ITアーキテクト
1996年IBM入社。主にSWソリューションを中心に、プロジェクト参画からテクニカルセールスまで、幅広く実施。2013年よりアライアンス事業にて、SIer様やパートナー様に対する技術支援を担当。現在、IBMのオープンハイブリッド戦略の中で、お客様ソリューションのCloud化やコンテナ化といった領域にて活動中。CKA認定保持。
セキュリティー・ロードマップ
IBM Cloud Blog
統合脅威管理、耐量子暗号化、半導体イノベーションにより、分散されているマルチクラウド環境が保護されます。 2023 安全な基盤モデルを活用した統合脅威管理により、価値の高い資産を保護 2023年には、統合された脅威管理と ...続きを読む
量子ロードマップ
IBM Cloud Blog
コンピューティングの未来はクォンタム・セントリックです。 2023 量子コンピューティングの並列化を導入 2023年は、Qiskit Runtimeに並列化を導入し、量子ワークフローの速度が向上する年になります。 お客様 ...続きを読む
ハイブリッドクラウド・ロードマップ
IBM Cloud Blog
コンポーザブルなアプリケーション、サービス、インフラストラクチャーにより、企業は複数のクラウドにまたがるダイナミックで信頼性の高い仮想コンピューティング環境の作成が可能になり、開発と運用をシンプルに行えるようになります。 ...続きを読む