前ページで説明したように、レガシー化したシステムをモダナイゼーションするには十分な現状分析に基づく、現実的な計画立案が必要です。いえ長期間にわたって作り込まれたシステムは、管理者にも全容が把握できないほど複雑化していたり、ブラックボックス化している部分があったりするため、完全に棚卸しすることは困難です。そのため、ある程度のトライアル&エラーを覚悟しなければなりません。具体的な「現実的アプローチ」として、下記のようなパターンが挙げられます。仮説に基づくリライトとリビルドを試行し、技術的問題を解消するトライアル&エラーを重ね、段階的に手法をブラッシュアップさせて適用する試行錯誤を前提とする全体計画を立案するモダナイゼーション計画の2つのステップアクセンチュアは数々のモダナイゼーション・プロジェクトに携わった経験から得た知見として、モダナイゼーションの全体計画を2つのステップで構成することを推奨しています。最適化(リファクタリング)第1ステップではモダナイゼーションにおいて必須である「現行機能を担保したオープン化」を行います。続く第2ステップは追加要件に該当し、予算や期間に応じて対応範囲を決定します。このように第2ステップをオプション作業として切り分けることで、必須対応を十分に施したうえで、さらなる最適化の実現を目指すことが可能になります。第1ステップと第2ステップでは必要となるスキルやツールが異なります。この点も、プロジェクトのフェーズを分割する方が適していると言える根拠です。この2段階ステップ方式には、次のようなメリットもあります。オープン化(現行機能の担保)オープン化は次の手順で行われることが一般的です。現新比較のテストを実施し、現行機能が担保されていることを確認する手順1のリライトでは、「1行ずつの言語変換」を可能な限り避けるべきでしょう。Javaのコードが可読性の悪いCOBOLに近いものとなってしまうからです。「最適化」へのニーズが高くない場合は、コスト面やスピード面ですぐれる1行ずつの言語変換も有効なリライト手法となりえます。ニーズに合わせた適切な手法を選択すべきであるといえます。手順2のリライトでは、「汚いプログラムがそのままJavaに変換されてしまう」おそれを排除することがポイントです。ターゲットとなるJavaのアーキテクチャーに則するようにUML上のモデルを修正し、Javaソースコードをフォワードエンジニアリングします。これにより、狙ったJavaアーキテクチャーで適切にクラス分けされたプログラムを実現できます。オープン化の作業では、移行工数のおよそ半分が手順3の現新比較テストに費やされます。そのため、このステップの作業の効率化と生産性向上がオープン化における従来からの課題でした。近年では「テストの自動化」を実現する、様々な自動化手法やツールが開発されています。メインフレームのDevOps、RPAによるオンラインテスト自動化、バッチテストツールによる繰り返しなどが有効な手法として活用段階に入っています。実現することも可能です。最適化(リファクタリング)最適化のステップでは主に次のような作業が実施されます。リファクタリングを実現できます。リスク低減にもつながります。これがアクセンチュアの提唱する最新のモダナイゼーション手法であり、日本企業の基幹システムの移行を成功させるためのアプローチです。アクセンチュアでは蓄積してきた知見に基づき、お客様に最適なシステム移行手法をご提案し、実施のご支援をいたしております。先を見据えた「次の一手」のためにレガシーシステムのオープン化と最適化を達成しても、企業のIT戦略はそれで終わりではありません。アクセンチュアはエンタープライズITに携わる者として、多くの経営者が抱える問いである「この先もコストをかけて基幹システムを保守し、数年に一度システム刷新を繰り返さないといけないのか。そこから脱却する解は何か」に対する答えを持っています。その答えとして、アクセンチュアは「ソフトウェア主導の高速ビジネス」を実現する、3つのアプリケーション戦略を公開しています。孝造リキッド(Liquid)戦略リキッドとは、モノリシック(複雑に絡み合う一体化した構造)に対極にある考え方です。アプリケーション機能をモジュール化し、各モジュールを疎結合した軽量な仕組みでAPI連携することで、単一の機能のように実現させます。これは再利用可能なコンポーネントやクラウド上のサービスを積極利用することが前提となっている考え方であると言えます。インテリジェント(Intelligent)戦略アクセス可能な社内外のビッグデータを分析し、その結果に基づいてシステムの高度な自動化を実現させるアプローチがインテリジェント戦略です。ルーチン作業やタスクを削減、除去し、抜本的な効率化を図ります。その際、システムに自律性を持たせることで、自動化をさらに推進します。コネクテッド(Connected)戦略IoTなどで接続しつつ、ビジネスパートナーやエンドユーザーを巻き込んだエコシステムを構築する戦略です。組織の垣根を超えてアプリケーションの相互接続性を向上させます。これらのアプリケーション戦略を実行するうえで有効な手法といえるのが「マイクロサービス」です。マイクロサービスとはマイクロサービスとは、システム機能をポータビリティーに優れた小さいサービス単位に分割して利用するアーキテクチャーです。ユーザーニーズや市場動向の変化が激しいビジネス環境においても、強い柔軟性と対応スピードを実現できるため、先進的なIT関連企業での採用が進んでいます。昨今、マイクロサービスを基幹システムへ適用する動きが日本企業でも出始めています。レガシーシステムのような巨大化・複雑化したシステムにマイクロサービスを適用し、変化への対応力を高めることが目的です。マイクロサービスの特徴マイクロサービスは次のような特徴を持っています。個々のサービスは異なるデータストレージ技術を利用可能マイクロサービスとSOAの違い機能をサービス単位として切り出し、標準的な連携方式によって呼び出す点でマイクロサービスはSOAと共通しています。従来のモジュール化は「システム機能の類似性」にフォーカスしていました。「サービス化されるシステムそのものに対する改善」という観点も、SOAにはないものでした。マイクロサービスのメリット初期構築においては、サービス間の機能連携箇所が増えるため構築の難易度が上がる。機能が集約されているため、改修時の影響範囲特定が容易リグレッションテストも範囲が限定される各マイクロサービスで最適な技術要素を採用し、実装できるAPI基盤を導入することで、他のマイクロサービスと相互連携するアーキテクチャーへ移行できるサービスのプロビジョニングを個別に独立させ、迅速かつ正確に実施できるメリットの多いマイクロサービスですが、モノリシックなシステムから一足飛びにマイクロサービスでの構築へと飛躍することには無理があります。有効な移行は段階的なものであるべきでしょう。その際は「それぞれの観点で切り出し単位を決める」ことが重要です。「どのような機能を」、「どのような粒度で切り出すのか」といった業務の観点やシステム運用の観点、機能とデータの類似性の観点、トランザクション単位などが設計上のポイント(観点)となります。多くのメリットがあるマイクロサービスですが、その特徴ゆえの弱点もあります。機能をサービス単位で切り出し、その集合体がシステムとなる場合、次のような課題点が考えられます。全体的な整合性の確保が困難になる運用上の複雑性が増す複数のマイクロサービスを呼び出して1つの大きい処理を実現しようとする場合に、パフォーマンスの劣化が予想されるしかし、こうした弱点に対する対策も研究が進んでおり、十分に克服されています。DevOpsの仕組みを活用することで、「資源管理・デプロイ作業の自動化」や「開発環境の管理や運用作業の効率化」が可能になるほか、サービス仮想化ツールを利用することで、サービス間連携のテストが容易になります。これらのことにより、多数のマイクロサービスの同時開発が行えるようになります。残存するモノリシックシステムへの対応モノリシックなレガシーシステムから一部の機能を切り出してマイクロサービス化した後、残存しているモノリシックシステムの機能の保守運用をどのように効率化していくべきでしょうか。近年では、メインフレーム上で動作するアプリケーションにDevOpsの仕組みを導入することが可能になりました。新プラットフォームとメインフレームの両方にハイブリッドなDevOpsの仕組みを構築することができるのです。その仕組みは以下のような構造となっています。メインフレーム上で動作するアプリケーションのエミュレーターをクラウド上に構築このテストクラウド環境を使うことで、メインフレーム固有の文字コード(EBCDIC)や、メインフレームのアプリケーション固有の動きをエミュレート可能これにより、各機能がどこに配置されているか、いつ更新されたのか、いつ配置されたのかを統合的かつ、一元的に管理できるようになります。メインフレームと新プラットフォーム双方の開発工程を可能な限り自動化し、システム全体のライフサイクルを早めることができます。恭秀モダナイゼーションと将来構想モダナイゼーション計画においては、プラットフォームのクラウドへの移行も検討すべきテーマです。クラウドを活用することで以下のようなメリットを享受できます。(2017年7月)ではメインフレーム上で稼働中のアプリケーションを、クラウド上の仮想化環境へダイレクトに移行する手段は確立されていません。そのためリビルドの手法を採用することになります。いえ、OSやミドルウェア、アプリケーション層の要素をクラウドベンダーに一任することで移行作業の対象を削減できる可能性があるほか、コンテナ技術を使うことでインフラ層との結合度が低下し、ポータビリティーも向上します。レガシーシステムのあらゆる機能をクラウドへ移行できるわけではありません。クラウドベンダーのサービス内容と自社システムの構成要素を見極めることが必要です。下記の要素は特に検討が必要とされる事項の一例です。レガシー化を回避するために本記事では主にレガシー化している基幹システムを中心に、効果的なモダナイゼーションを実現する手法を検討してきました。最後に「モダナイゼーション後のシステムの再レガシー化」を回避するための提言を述べたいと思います。マイクロサービスのような新テクノロジーを採用したとしても、日々の業務と運用によってシステムの肥大化や属人化が起こるリスクは小さくありません。クラウドを利用する場合でも予期しないサービス変更の影響を受ける可能性があります。した事態によって、新たなレガシー化が起こることが懸念されます。再レガシー化を予防するためには、次のような取り組みが有効です。システム全体や各機能が適切に入れ替わり、新陳代謝を促すリキッドな手法を取り入れるインフラの結合度を下げたアプリケーションを構築するお客様の経営とITの課題を解決し、ビジネス環境の変化に柔軟に対応できるパワフルな基幹システムの構築をアクセンチュアはご支援いたします。モダナイゼーションに関するお悩み、疑問についてはぜひアクセンチュアへお問い合わせください。IT”を活用してレガシー・アプリケーションをアジャイルで効率の良いアプリケーションに変換するための支援を行います。