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