ALGOTEC は継続的 インテグレーションにより医療画像処理のテスト (C++ プロジェクト) を自動化してビルドを 80% スピードアップ

Algotec は放射線医学、循環器医学、 マンモグラフィなどの医用画像を中心とした次世代のヘルスケア情報技術プラットフォームの開発を行っています。

医用画像の管理、読影、処理、レポート作成、配信のために Web に対応した高度なソリューションを医療施設に提供します。これらのソリューションには医用画像処理、医用画像情報管理、遠隔医療、医療用画像管理システム (PACS)、放射線科情報システム (RIS)、遠隔医療システム、マルチサイト画像管理システム (SuperPACS)、臨床データ管理、e-ヘルス管理サービスなどが含まれます。

ケアストリームヘルス (Carestream Health) 社の完全子会社である Algotec が開発した ケアストリーム Vue プロダクト スートは世界各地の数千に及ぶ医療機関に導入され、医用画像の最適化により医療技術と患者ケアの質の向上に貢献しています。また、ケアストリーム Vue には最先端の医療画像処理能力を持つワークステーション、膨大な医療データの処理・保存のためのサーバー、患者とその治療状況を管理するためのプロダクトなども含まれます。

 

チャレンジ

Vue プロダクト スートはソフトウェアが複雑に組み合わされています。ベースとなる数百万行ものコードに膨大なコードが追加され、Microsoft Visual Studio によるビルドは完了までに長い時間がかかります。過去には当時の最新ハードウェアでのコンパイルに 3 時間以上がかかっていました。

Algotec ではおよそ 400 の C++ プロジェクトをすべてリビルドしています。その中には 100 行を超えるソースファイルを 30 個以上含むものも少なくありませんでした。さらに、広範におよぶマクロの使用、TLB のインポート、カスタム ビルド ステップなどコンパイル時間に悪影響を与える要因がありました。

ビルドに時間がかかることで、新機能のフィードバック取得やバグの修正が進まず、これがさらなる全体的な問題を引き起こして生産性と品質にダメージを与えます。

ビルドに時間がかかるため Algotec では各プロダクトに対してデバッグ用とリリース用の 2 つのナイトリービルドのみを実行していました。「ビルドには丸一晩かかり、日中は同じビルドサーバーを使用している」このため、夜間に自動でデプロイやテストを行う時間は取れませんでした。

 

ソリューション

Algotec は Visual Studio のビルドを高速化するため、開発者全員の PC に IncrediBuild Agent をインストールしました。

結果は衝撃的でした。コンパイル時間は劇的に短縮し、小規模のプロジェクトでは 30 分から 3 分へとおよそ 90% ビルド時間が短縮しました。最大規模のプロジェクトのビルド時間は 190 分から 40 分、その後 IncrediBuild の専門家のアドバイスの下でプロジェクトと依存関係を最適化を行いおよそ 34 分 (およそ 80%) まで短縮しました。

IncrediBuild 以前
(すべての処理)
IncrediBuild 以後
(すべての処理)
プロジェクト (小) 30 分 3 分
プロジェクト (大) 190 分 34 分

 

結果

ビルド時間が短縮したことで Algotec は継続的インテグレーションへと移行することができました。1 日に複数回ビルドを実行することで迅速なフィードバックを取得できるだけでなく、夜間に自動でプロダクトのテストやデプロイを行う時間の余裕が生まれました。これが社内全体に自動テストを導入する契機となりました。
 

「今までは時間的な制約のため夜間に 1 度しか行えなかったビルドが、IncrediBuild を導入することで 1 日に何度もビルドを行えるようになりました。最終的には完全な継続的インテグレーションに移行でき、生産性・品質ともに改善することができました」
Algotec - SCM リーダー、ソフトウェア構成マネージャー、Yossi Zinger