プラットフォーム プラットフォーム記事一覧へ

[ITリーダーが知るべきコンテナ技術]

コンテナ技術は今日のアプリケーション開発では必然に【第1回】

2017年3月24日(金)三木 雄平(レッドハット テクニカルセールス本部エンタープライズソリューションアーキテクト部 部長)

これからのアプリケーション(サービス)開発において、重要な技術の1つとして理解して頂きたいのが「コンテナ(Container)」です。「コンテナを知らない」もしくは「コンテナは知っているがいまひとつピンときていない」というITリーダーを対象にコンテナについて解説します。今回は、コンテナの現状を整理しながらコンテナの重要性について解説したいと思います。なお技術的な内容に関しては、分かり易くするためにシンプルに解説します。

 現在、EC(電子商取引)やWebサービスといったビジネスの現場では、「より多くの試行錯誤が、より良い結果を導く」という考え方が浸透しています。そのためにリーンスタートアップやA/Bテストといった考え方が一般的な手法の1つとしてとらえられ、広く実践されています。常にシステムを改良し、リリースし続ける「CI/CD(継続的インテグレーション/継続的デリバリ)」や、開発と運用を一貫させ開発から運用に至る時間を極限まで短くする「DevOps」なども同様です。

 「いったい何のことだ」「自分には関係ない」と思われる読者もいるかも知れません。しかし、こうした考え方や手法を使ったシステムやサービスは、私たちの身の周りに既にあふれています。Amazon.comやGoogle、あるいはYahoo!といったサービスは、停止することなく、いつの間にか見た目(UI:ユーザーインタフェース)が変わり、機能も日々進化しています。その裏側ではA/Bテストをはじめ、より多くの試行錯誤が繰り返され、サービスを実現するアプリケーションプログラムが改良されているのです。これは、ビジネスや顧客ニーズ、技術、デバイスなどで起こっている様々な変化に、いち早く対応するための努力でもあります。

 試行錯誤の重要性は、企業のITシステムも例外ではあり得ません。ITリーダーは当然、ビジネスの変化に迅速に追随し、リードする存在になるべきでしょう。特に消費者向けのサービスやIoTシステム、つまり「SoE(Systems of Engagement)」と呼ばれる新たなシステム群においては、変化への対応性を備えることは不可欠になります。そのための重要な技術の1が「コンテナ(Container)」なのです。

新たなアプリケーション群「SoE」がDevOpsを求める

 コンテナを解説する前に、前提知識としてSoEとDevOpsについて簡単に解説しておきます。業務システムやグループウェアなど、企業が業務を効率化したり合理化したりするためのシステム群を一般に「SoR(Systems of Record)」と呼びます。これまで構築されてきた情報システムの大半はSoRに分類され、その利用者は主に社員です。社内システムのため構築前に要求仕様を定義できます。

 これに対しSoEは、顧客やモノに直接的かつ積極的に関与する、新しいタイプのシステム群を意味します。少し前までは顧客やモノに関与するといっても、人を介するなど間接的にしか行えませんでした。それが今日では、スマートフォンやIoTなどが広く普及し、顧客やモノに直接関与できるようになったことで、SoEの構築が容易になってきたのです。つまりSoEが対象にするのは顧客や消費者、モノであり、従って要求仕様や求められる機能は常に変化します(表1)。

表1:Systems of Record(SoR)とSystems of Engagement(SoE)の比較表1:Systems of Record(SoR)とSystems of Engagement(SoE)の比較
拡大画像表示

 その具体例が、消費者や顧客向けのWebサービスやスマートフォン用のアプリです。これらは使い勝手や機能を常に向上させなければならないことは容易に推察できるでしょう。こうしたソフトウェアでは、例えばユーザーエクスペリエンス(顧客体験)の向上という非常に仕様化しにくい要求を実現し、提供し、改良し続ける必要があるのです。でなければ顧客や消費者は、より優れた他のサービスに乗り換えるでしょう。それだけではなく、開発やテスト、運用(デプロイやリリース)といった工程に時間をかけてしまうと、その間に利用者が去ってしまいます。Webサービスでは「スピードが決定的に重要」と言われるゆえんです。

バックナンバー
ITリーダーが知るべきコンテナ技術一覧へ
関連記事

コンテナ技術は今日のアプリケーション開発では必然に【第1回】これからのアプリケーション(サービス)開発において、重要な技術の1つとして理解して頂きたいのが「コンテナ(Container)」です。「コンテナを知らない」もしくは「コンテナは知っているがいまひとつピンときていない」というITリーダーを対象にコンテナについて解説します。今回は、コンテナの現状を整理しながらコンテナの重要性について解説したいと思います。なお技術的な内容に関しては、分かり易くするためにシンプルに解説します。

PAGE TOP