メニュー

お問い合わせ
Logo
プレス

ソフトウェアをモダナイズする

古いソフトウェア。増え続けるリスク。

サポートが終了したフレームワーク、理解しにくいコード、インターフェースの不足は、あらゆる変更をリスクにしかねません。貴社のアプリケーションを調査し、テストによって既存の動作を保護した上で、切り替えと切り戻しの判断基準を明確にした段階的なモダナイズの道筋を策定します。

複数の画面での既存アプリケーションの改修作業、イメージ画像
課題設定から文書化された引き渡しまで。

このサービスが役立つ場面

ソフトウェアをモダナイズする:私たちへのご依頼内容。

  • サポートが終了した技術を置き換える
  • 変更を再び計画可能にする
  • 長年使われてきたアプリケーションの知見を保全する

長年稼働しているものの古いフレームワークに依存しているアプリケーションは、計画的な切り替えにより段階的にモダナイズします。コード、依存関係、データフローの棚卸しを行った上で、アプリケーションごとに、コンテナへのリプラットフォーム、モジュールへのリファクタリング、新しいモデルへのデータ移行、後継アプリケーションによる置き換えのいずれかの方針を選びます。最後のプロセスが移行し終えるまでは、旧システムと新システムを並行して稼働させます。

依頼に含められる内容

  • アプリケーションごとのコード分析、依存関係リスト、データフロー、運用コストを含む棚卸し
  • 事業価値とリスクに基づく評価、およびリプラットフォーム、リファクタリング、置き換えのいずれを採るかの判断
  • 最初の1行を変更する前に行う、既存コードに対するキャラクタリゼーションテスト
  • ストラングラーパターンによる段階的な分割、旧システムと新システムの並行稼働
  • 突合、試験移行、文書化された切り戻し計画を伴うデータ移行

具体的な範囲、検収、貴社の関与については、提案書で定めます。

全体のつながりを一目で

既存システムを理解する。移行を制御する。

  1. 01

    把握する

    業務ロジックと依存関係を可視化する

  2. 02

    守る

    既存の挙動を比較可能な形でテストする

  3. 03

    切り替える

    正となるデータの所在と切り替えを制御する

  4. 04

    廃止する

    旧コンポーネントを計画的に廃止する

計画、実施、意思決定

ソフトウェアをモダナイズするで重要なポイント。

01

置き換える前に理解する

ソースコードには、どの文書にも完全には記載されていない業務ルールがしばしば潜んでいます。そのため、コード分析や依存関係分析と、業務部門へのヒアリング、実際の業務フローの観察を組み合わせます。繰り返し発生する障害、手作業による修正、例外ケースは、実際のリスクがどこにあるかを示します。データソース、バックグラウンドジョブ、外部からの呼び出し元も併せて把握します。

キャラクタリゼーションテストは、アプリケーションが現在どのように動作しているかを記録します。既存の動作がすべて正しいとは限らないため、業務上の誤りと、維持すべき機能とを明確に区別します。これにより、旧システムと新システムを比較するための確かな基盤ができます。

02

制御可能な段階に分けた刷新

新しいプラットフォームへの移行だけでは、アプリケーションコード内の問題は自動的には解決しません。そのため、実行環境や運用面での変更、個々のモジュールの改修、全面的な置き換えを区別して扱います。適切な場合は、新しいコンポーネントが既存システムの機能を段階的に引き継ぎます。並行稼働は、データ責任の所在を明確にした計画的な移行期間として位置づけます。

各ステップには、目標、テスト範囲、切り戻しの判断基準を設定します。メンテナンスウィンドウと起こりうる中断は貴社と共に計画します。中断のない稼働を一律に約束するものではありません。該当プロセスについて検証結果が得られて初めて、次の部分の切り替えに進みます。

03

データ移行と計画的な廃止

過去のデータには、重複、欠損値、旧バージョン由来のルールが含まれています。本番移行の前に、マッピング、クレンジング、突合の方法を定義します。試験移行によって、処理時間、データ量、例外ケースが制御可能かどうかを確認します。特に重要な合計値、関連性、サンプルは業務部門が内容を確認します。

システム停止に際しては、エクスポート、保存期間、過去案件に関する問い合わせ、依存システムについても明確にしておく必要があります。どのデータがどこで引き続き利用できるか、いつから切り戻しができなくなるかを文書化します。引き継ぎには、新しい運用マニュアルとともに、廃止したシステムの取り扱い方法も含まれます。

ツールは課題に合わせて選ぶ

貴社の環境に合った技術。

  • Kubernetes
  • Docker
  • .NET
  • Go
  • PostgreSQL
  • Terraform

選定は既存システム、貴社のチーム、その後の運用に応じて行います。すべてのプロジェクトが、挙げた技術をすべて必要とするわけではありません。

業務部門の責任者と技術チーム向け

実装の背後にある意思決定。

04

既存コードをそのまま移植せず、業務上の振る舞いを保護する

長年運用されてきたシステムでは、コードがプロセスの一部しか説明していないことが多くあります。表計算ファイルへのエクスポート、手作業によるデータ修正、定時実行されるジョブが、欠かせない役割を担っている場合もあります。こうした付随的な経路を把握し、通常ケース、過去の例外、境界値、既知の不具合といった特徴的なケースのカタログを作成します。旧システムと新システムの比較実行によって差異は可視化されますが、どちらの結果が業務上正しいかはこの時点ではまだ判断できません。

業務部門は開発チームと共に差異を評価します。端数処理、タイムゾーン、並べ替え順、過去の価格ルールなどは、一見小さな違いに見えても大きな影響を及ぼすことがあります。意図した仕様変更と、意図しないリグレッションを明確に区別します。これにより初めて、意味のある検収の基準ができます。文書化されたケースは、その後の改修においても継続的なセーフティネットとして機能し、これまで一部の担当者しか知らなかった知識を残すことにもつながります。

05

並行稼働中のデータ管理責任と切り替えの計画

旧コンポーネントと新コンポーネントが連携している間は、書き込みアクセスの責任を曖昧にしてはなりません。データ領域ごとに正となるシステム(システムオブレコード)を1つ定め、その責任の引き継ぎを計画します。2つのアプリケーションが調整なしに書き込みを行うと、それぞれは正しく動作していても矛盾した状態を生み出すことがあります。そのため、移行期の中間アーキテクチャには、専用のインターフェース、突合の仕組み、そして限定された運用期間が必要です。

移行計画には、初回移行、移行期間中の変更、最終突合が含まれます。レコード件数、業務上の合計値、関連性、代表的な個別ケースを確認します。切り替えの前に、中止基準、決定権限、許容される書き込み停止時間を定めます。切り戻しが現実的であるのは、新たに発生したデータを再度処理できる場合に限られます。それが不可能な場合は、その限界がいつ生じるか、どのような影響があるかを承認前に明示します。

06

技術的な分離と置き換えの完了

変更を加えていない旧アーキテクチャの上に新しいユーザーインターフェースを載せるだけでは、その制約は自動的には解消されません。共有テーブル、暗黙のファイル形式、データベースへの直接アクセス、複数のアプリケーションを同時に結びつけているライブラリを調査します。段階的に導入するアダプターは変更の影響を吸収できます。ただしこれらは独自の保守が必要な過渡的コンポーネントであり、気付かないうちに恒久的な第二のシステム基盤になってしまわないよう注意が必要です。

そのため、置き換えた機能ごとに廃止作業が発生します。旧ジョブ、ユーザーアカウント、インターフェース、インフラ、ライセンスについて、引き続き使用されていないかを確認します。過去の情報照会には、読み取り専用アクセスや文書化されたエクスポートが必要になる場合があります。依存関係が解消され、運用マニュアルが更新され、担当が引き継がれて初めて、この段階のモダナイズは完了したことになります。これにより、旧システムと新システムの両方のコストが恒久的に積み上がることを防ぎます。

透明性のある作業成果

貴社の手元に残るもの。

成果01

アプリケーションごとのモダナイズの道筋を示した、評価済みのアプリケーションポートフォリオ

成果02

テストカバレッジとコンテナイメージを備えたモダナイズ済みアプリケーション

成果03

データ突合と切り戻し計画を記載した移行記録

プロジェクトの進行例

支援はたとえばこのように進みます。

ある請求システムが、サポートが終了した実行環境で稼働しています。まず比較テストによって計算処理を担保します。続いて範囲を限定したモジュールへの改修を行い、本番切り替えを承認する前にデータ移行を複数回リハーサルします。

説明のためのシナリオであり、顧客事例や成果の保証ではありません。

着手に役立つもの

  • ソースコードと、利用可能であれば実行可能なテスト環境
  • 既知の不具合、依存関係、重要な期限
  • 業務上のテストケースと、過去のルールに関する担当窓口

資料が不足していても支障はありません。どの情報を先に揃えるべきかは、共に整理します。

貴社の取り組みの詳細

事業を止めずにモダナイズする。

既存アプリケーションの業務上の重要性を踏まえて刷新を計画します。対象範囲は、的を絞った技術的な改善から、個々の機能の段階的な置き換えまで多岐にわたります。

変更前に既存の挙動を担保する

文書だけでは、長年使われてきたアプリケーションのすべてのルールを説明しきれないことがほとんどです。貴社の利用者とともに、代表的な案件、例外、既知の不具合を洗い出します。適切な比較テストによって、どの挙動を維持すべきか、どの差異を意図的に修正すべきかを明らかにします。

技術面の棚卸しと業務面の優先順位付けを組み合わせます。古くなったライブラリ、変更しにくいモジュール、頻発する運用障害は、それぞれ異なる影響を及ぼします。効果、リスク、依存関係の面から見て、管理された形で段階的に進められる箇所を着手点に選びます。

移行過程とデータの責任範囲を明確に設計する

並行運用の間は、どのデータについてどちらのシステムが正となるかを明確にしておく必要があります。制御されない双方向の書き込みは、矛盾した状態を生み出すおそれがあります。同期処理、移行用アダプター、突き合わせを、実際に必要な移行期間に限定して計画します。

切り戻しの可否は、既に行われたデータ変更に左右されます。そのため切り替え前に、いつまで戻ることが可能か、どのような後処理が必要になるかを定義します。移行が無事に完了した後は、旧来のアクセス手段、タスク、インフラを計画的に停止し、暫定的な対応がそのまま恒常的な複雑さとして残らないようにします。

プロジェクトシナリオの例

このサービスが日常業務でどのように役立つか。

例:既存のアプリケーションに新しい顧客向け機能を追加します。まず読み取り専用の顧客ビューを切り出し、そのデータを既存システムと突き合わせます。書き込みを伴う処理は、データの責任範囲を明確に切り替えたうえで、後の段階で対応します。

この例は想定される進め方を説明するものであり、顧客事例ではありません。

依頼の前に

ソフトウェアをモダナイズするに関するご質問。

すべてを新規開発する必要がありますか?

いいえ。問題なく機能している業務ロジックはそのまま維持できます。棚卸しの結果に基づき、実行環境の変更、個々のモジュールの刷新、置き換えのいずれが適切かを判断します。重要なのは、保守性、リスク、業務プロセスに予定されている変更内容です。

ドキュメントが不足している場合はどうなりますか?

コード、データ、実際の業務フローから関連性を再構築します。その際、業務知識を持つ従業員の協力が特に重要です。アクセス権や利用権限が不足している場合は対応範囲が制限されることがあるため、確約する前にそうした不足点を明確にします。

その間も業務を継続できますか?

多くの場合、切り替えは段階的に実施できます。並行稼働、短いメンテナンスウィンドウ、より長い中断のいずれが必要かは、データ管理方式とアーキテクチャによって異なります。切り替えは、業務面での突合と、現実的に使える切り戻し手段を踏まえて計画します。

次のステップ

現在、どこでつまずいているか教えてください。

貴社のアプリケーション、課題、目標についての簡単な説明があれば、まずは十分です。選択したサービスは、お問い合わせ内容に反映されます。

このサービスについて問い合わせる

パートナー

  • Microsoft
  • Microsoft Azure
  • Amazon AWS
  • Google Cloud
  • Thales Group
  • Arrow ECS
  • Vodafone
  • IBM
  • Veeam
  • Atlassian
  • JetBrains
  • NinjaOne
  • OPSWAT
  • Utimaco
  • Eviden

アクセシビリティ

表示をご自身のニーズに合わせて調整できます。

このページには、まだやさしい日本語版がありません。

設定は現在、今回の閲覧にのみ適用されます。永続的な保存は「Cookie設定」で許可できます。