システムインテグレーション技術 Modern Application技術を活用した企業システムのモダナイゼーション

システムインテグレーション技術 Modern Application技術を活用した企業システムのモダナイゼーション

クラウドテクノロジーを応用して、企業システムを元気に刷新

近年、クラウドサービスを中心としたスタートアップ企業が急成長し、既存産業を脅かす現象が話題になっています。
これらスタートアップ企業に共通することは、高いアプリケーション開発スキルを持ち、継続的インテグレーションでサービスを進化させ、常に高い競争力を維持していることです。
これら企業が用いているシステム設計のアーキテクチャは、Modern Application Architecture / CloudNative Application Architectureと呼ばれ、一般の企業でもこのような技術を活用して、企業の競争力を高めたり、デジタルトランスフォーメーションを実現したりすることが、大きな注目を集めています。
次に「アプリケーション」、「インフラストラクチャ」、「運用」の視点から、これら新しいアーキテクチャのポイントを説明していきます。

1)アプリケーション

以前よりアプリケーションの柔軟性を高めるためには、システムを機能毎のサービスの集合として構築する「サービス志向アーキテクチャ」が良いとされてきました。そして2014年あたりから、クラウド時代に適した柔軟性とスケーラビリティを実現するために、単機能毎の独立したプロセスをAPIで連携させるMicroservicesが多くのクラウドサービスに採用され、ベストプラクティスとして定着しました。
一方、従来からある企業の業務システムのアーキテクチャを、しっかり一枚岩のように作られたということでMonolithicと呼びます。
一般企業のシステムも、クラウドサービスのように、柔軟に進化できるシステムに変わっていくためには、システムの機能改良や拡張の際に、段階的にMicroservicesを取り入れ、新しいアーキテクチャに移行していくことが重要であると言われています。(図1

2)インフラストラクチャ

現在、多くのシステムは、クラウドや仮想化インフラ上の仮想マシンとして実装されています。ところが長期間、同じ仮想マシンを運用することは、環境のブラックボックス化や運用負荷の増大を招くばかりか、重大トラブルを引き起こす原因となるため、継続的インテグレーションにおいて、常に正しく設定された新しい仮想マシンを準備するというイミュータブルインフラの考えが注目を浴びました。
このイミュータブルインフラを使ったシステム運用を実現する上で重要なのが、Dockerに代表される新しいコンテナ技術です。この技術は、アプリケーションとその動作に必要なライブラリや環境等を一体化したイメージで管理し、アプリケーションのポータビリティを高め、新しいインフラ上でインストール作業なしに、迅速にアプリケーションを稼働させる手段を提供します。
クラウドをはじめとした近年のインフラストラクチャは、イミュータブルな仮想マシンの作成や、Dockerイメージ化されたアプリケーションの展開などをコマンドで指示することができ、この手順をスクリプト化することで、アプリケーションの開発から運用までの業務効率を大きく高めることができます。
また、複数のコンテナにアプリケーションを分散配置し、冗長構成とすることでシステムの可用性を高めるKubernetes等のコンテナ・オーケストレーションツールが実用期に入り、システム信頼性向上への期待が高まりつつあります。(図2

3)運用

開発と運用を一体で行うDevOpsや継続的インテグレーションを、構築が複雑なMonolithicなシステムで実現することは大変困難でした。
ところが、Modern Application ArchitectureやCIツール、コンテナ、クラウドといった技術が、システム運用の自動化を可能とし、DevOpsや継続的インテグレーションを現実のものとしました。現在、システム運用の高度化を考える上で、これら新しいアーキテクチャは必須のものとなっています。(図3

東芝デジタルソリューションズは、お客様のデジタルトランスフォーメーションを実現するため、このようなModern Application Architectureを活用した業務システムモダナイゼーションのご支援を提供しております。

アプリケーション

企業のシステムが柔軟に進化できるシステムに変わっていくためには、段階的にMicroservicesを取り入れ、新しいアーキテクチャに移行していくことが重要であると言われています。

アプリモダナイゼーション例

アプリモダナイゼーション例のイメージ画像

インフラストラクチャ

Dockerは、アプリケーション動作に必要となるライブラリや環境等を一体化し、アプリケーションのポータビリティを上げることができます。
Kubernetesは複数のコンテナにアプリケーションを分散配置し、冗長構成とすることでシステムの可用性を高めます。

インフラストラクチャの構成のイメージ画像

インフラストラクチャの構成のイメージ画像

運用

CIツール、コンテナ、クラウドといった技術によって、DevOpsや継続的インテグレーションが実現できます。

運用の構成のイメージ画像

運用の構成のイメージ画像

※本書に記載されている社名、製品名およびシステム名は、各社が商標または登録商標として使用している場合があります。