前回の記事では、あるグローバルOEM企業のお客様のために、IT開発と運用の現状を把握し、変革のパラダイムを再定義しながら、DevOpsの旅をどのように設計したかをお話しました。今回のブログでは、ヘルスケア・アプリケーションにおけるDevOpsパラダイムについて説明する。
DevOpsは、自動化とアジャイル・プロセスの組み合わせによって迅速なITサービスを提供し、パフォーマンスを最適化してソフトウェア開発チーム間のコラボレーションを向上させることで、信頼性と品質を備えたより迅速な結果を提供できるようにします。しかし、医療機器ソフトウェア開発のようなヘルスケア環境でこのアプローチを採用することは、厳しい規制コンプライアンスの必要性から、それほど簡単ではありません。
しかし、DevOpsはアプリケーションの開発、継続的インテグレーション、デプロイメントを成功させるための触媒である。医療業界のコンプライアンス規制に妥協することなく、リリース前に厳格な監査と承認を必要とします。したがって、DevOpsを導入するための当社のアプローチには、以下のようなものがあります:

当社は、医療機器のアプリケーション開発が複雑で高度に規制されたプロセスであり、患者の安全を確保するために厳格な基準と規制を遵守する必要があることを理解しています。医療機器業界で最も重要な規格の1つは、国際電気標準会議(IEC)62304です。この規格は、医療機器に使用されるソフトウェアの開発、メンテナンス、ライフサイクル管理に関する要件を概説しています。医療機器開発者にとって、IEC 62304を理解し、活用し、遵守することは、自社製品が最高の安全性と性能基準を満たすために極めて重要である。そのため、医療業界における最新の開発アプローチの使用は、強固なプロセスの遵守が必要となるため、複雑かつ稀なものとなっています。
当社は、厳格な計画、要求事項の文書化、テストと検証、トレーサビリティを通じて、IEC62304の原則を遵守するための包括的で堅牢なリスクコントロールフレームワークを開発しました。このフレームワークは、すべての原則が遵守され、将来の監査目的のために「証拠」文書が作成されることを保証します。当社のDevOps プラクティスのためのリスクコントロールフレームワークは、ソフトウェアコードを安全かつ確実に本番環境に提供しながら、開発者の能力を提供します。これは、以下に示すように、標準のソフトウェア開発プロセスのすべてのコンポーネントをカバーしています:

品質とセキュリティを確保することは、コーディングにおいて非常に重要です。私たちは、ビルド段階で「ビルド・ブレーカー」のコンセプトを活用し、後の段階でコードを阻害する可能性のある不具合を早期に検出するよう努めています。つまり、開発者がビルドをトリガーすると、ユニットテストが行われ、ユニットテストとコードカバレッジのしきい値が設定され、ビルドプロセスが継続されます。さらに、SonarQubeによるコード品質スキャンと、Dependency-checkツールによるオープンソースの依存性スキャンが行われる。これらの定義された閾値の結果のいずれかに違反がある場合、ビルドは「失敗」となり、さらなる分析と解決のために開発者に送り返される。

継続的インテグレーションとデプロイの実践とは別に、プロジェクトチーム、リポジトリ、ブランチの作成には、手作業によるミスが忍び込み、運用上の大きな課題があることも確認した。これは、シームレスなオンボーディングを確実にするために、プロジェクトの作成、リポジトリ、ボード、さらにはプロジェクトチームのための標準的なYAMLパイプラインを自動化するAzureパイプラインの開発につながりました。自動化されたパイプラインは、一貫性のある信頼性の高い方法でコードとインフラストラクチャをビルド、テスト、デプロイする方法です。
このアプローチでは多くのことが達成されており、そのメリットのいくつかをここに挙げる:
- コード品質の向上とセキュアなコーディング
- ヘルスケア業界のコンプライアンスの向上、
- ソフトウェアビルドの頻度の増加、
- ソフトウェアテストプロセスからのフィードバックの迅速化
- 手作業を減らすことで、開発者のエクスペリエンスを向上。
やるべきことはまだある。ツールによるソフトウェアテストの自動化、Documentation as a Code、Cloud Foundryへのリスクフリーなリリース戦略など、開発者と運用のコラボレーションを改善することで、DevOpsの旅を変革する余地があります。これは、市場投入までの時間を改善し、ヘルスケア・アプリケーション・プロバイダーのビジネスの成功を促進するのに役立ちます。状況が進化するにつれ、変革の旅は加速し続けるだろう。