0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

#16. Edge / Cloudの信頼性設計は何を改善するのか? ― Freeze対策・再送・監視を運用指標から整理する

0
Posted at

Edge / Cloudの信頼性設計は何を改善するのか? ― Freeze対策・再送・監視を運用指標から整理する

はじめに

これまで、医療向けのEdge / Cloud環境において、24時間365日の無人運用を前提とした安定化に取り組んできました。

具体的には、以下のような対策です。

  • Edge PCのFreeze対策
  • DriverやSoftware構成の最小化
  • WindowsからLinuxへの移行
  • Azure IoT EdgeのVersion管理
  • AMQP over WebSocketへの変更
  • Cloud切断時のStore-and-Forward
  • 通信断のMonitoring
  • Modality → Edge PC間の再送設計

これらは、それぞれ異なる技術課題への対策です。

しかし、個別の技術対策だけを見ていると、最終的に何を改善したかったのかが見えにくくなります。

例えば、

Edge PCのFreezeを減らすことは、単にOSを安定させるだけが目的ではありません。

データ送信の停止を減らし、障害調査や現地対応の負担を減らすことにもつながります。

今回は、これまで取り組んできた技術対策を振り返りながら、

技術的な改善を、どのような運用指標で評価できるのか

という視点で整理します。


1. Edge PCのFreeze対策はDowntimeの削減につながる

Edge PCのFreezeに対して、これまで以下のような対策を行ってきました。

  • 不要なDriverの削減
  • GPU Driverの切り分け
  • 不要なDeviceの無効化
  • OSの変更
  • KernelやSoftware Versionの管理
  • Maintenance処理の分散

技術的には、OSやDriver、Hardwareに起因する障害を切り分け、安定稼働を目指す取り組みです。

しかし、実際の運用では、Edge PCの停止が引き起こす影響はPC単体にとどまりません。

Edge PCがFreeze
    ↓
Data送信が停止
    ↓
顧客またはSupportが異常に気付く
    ↓
状態確認
    ↓
原因調査
    ↓
必要に応じて現地対応
    ↓
復旧

一つの障害に対して、顧客、代理店、Support、Engineeringなど、複数の関係者が対応する可能性があります。

そのため、Freeze対策の効果を評価するときは、単に「PCが止まらなくなったか」だけでは不十分です。

例えば、以下の指標が考えられます。

評価指標 確認したいこと
Freeze発生回数 停止頻度が減ったか
稼働率 正常にサービスを提供できる時間が増えたか
MTTR(平均復旧時間) 障害からの復旧が早くなったか
現地対応回数 現地へ行く必要が減ったか
障害対応工数 SupportやEngineeringの負担が減ったか

特に、端末が多数の施設に展開される場合、1台あたりの障害頻度や対応時間の削減が、全体の運用負荷に大きく影響します。

つまり、

Edge PCの安定化は、OSの技術課題であると同時に、System全体の可用性や保守性を改善する取り組み

だと考えられます。

なお、Freeze回数の減少だけでサービス稼働率の改善を判断することはできません。アプリケーション停止や通信断など、ほかの停止要因も含めて評価する必要があります。


2. Store-and-Forwardは「再送できる」だけでは評価できない

Cloudとの通信が切断された場合に備えて、Store-and-Forwardを設計してきました。

基本的な流れは以下です。

Edge PC
    ↓
Cloudとの通信断
    ↓
Edge側にDataを保持
    ↓
通信復旧
    ↓
保持Dataを再送
    ↓
Backlog解消

技術的な目的は、通信断によるData Lossの防止です。

ただし、Store-and-Forwardを実装しただけで、必ずData Lossを防げるわけではありません。

例えば、以下のような条件も考える必要があります。

  • 何時間分のDataを保持できるか
  • Storage容量を超えた場合にどうするか
  • 再起動後もDataが保持されるか
  • 通信復旧後にBacklogを解消できるか
  • 重複送信が発生した場合にどう処理するか

また、System全体を見ると、通信経路は以下のようになります。

Modality
    ↓
Edge PC
    ↓
Cloud

Edge PC → Cloud間でDataを保持できても、Modality → Edge PC間でDataが失われれば、End-to-EndのData Lossは防げません。

そのため、再送設計を評価するときは、以下のような指標が必要になります。

評価指標 確認したいこと
Data欠損件数 送信元からCloudまでDataが届いているか
Data重複件数 再送による重複が発生していないか
最大保持可能時間 何時間の通信断に耐えられるか
Backlog解消時間 復旧後、通常状態に戻るまでの時間
再送成功率 保持Dataを正常に送信できたか

例えば、Cloudへの通信が2時間停止してもDataを保持できたとして、通信復旧後にBacklogを解消するまで10時間かかるのであれば、運用要件によっては十分とはいえません。

逆に、通信断が発生してもDataを失わず、復旧後に許容時間内でBacklogを解消できれば、通信障害による業務影響を小さくできます。

重要なのは、Store-and-Forwardという機能の有無ではなく、どのような障害条件までDataを守れるのかを確認することです。


3. Network設計は接続性だけでなく導入負荷にも影響する

Cloud接続を実装するとき、最初に確認するのは通信が成立するかどうかです。

しかし、実際に複数の施設へ展開する場合、通信できることだけでは十分ではありません。

例えば、

  • 施設ごとにNetwork Policyが異なる
  • 特定のPortがBlockされる
  • Proxyを経由する必要がある
  • DNSやFirewallの設定が異なる
  • Network変更に施設側の承認が必要になる

といった問題があります。

以前、Azure IoT Edgeの通信方式を、

AMQP
    ↓
AMQP over WebSocket

へ変更しました。

AMQP over WebSocketでは、一般的なHTTPSと同じTCP 443を利用できます。

そのため、AMQPの直接接続に必要なPortがBlockされている環境でも、接続できる可能性があります。

ただし、TCP 443を利用すれば必ず通信できるわけではありません。

ProxyやTLS Inspection、通信先FQDNの制限など、施設側のNetwork Policyに依存します。

この変更の目的は、単純なProtocol変更ではなく、

施設ごとのNetwork環境の違いをできるだけ吸収すること

でした。

これを運用面から評価すると、以下のような指標が考えられます。

評価指標 確認したいこと
初回接続成功率 標準構成で接続できる施設の割合
導入所要時間 Network設定から接続完了までの時間
Network調整件数 施設側との調整が何回発生したか
接続障害件数 導入後に通信問題がどれだけ発生するか

例えば、Network構成の見直しによって施設側のFirewall変更が不要になるケースが増えれば、導入時の調整工数を削減できる可能性があります。

ただし、接続性だけを優先してSecurity要件を緩めるべきではありません。

必要なSecurity、Reliability、導入性、運用性を満たしたうえで、構成を選択することが重要です。


4. Remote Monitoringは障害の検知時間と対応時間を改善する

Remote Monitoringでは、Edge PCやCloudの状態を遠隔から確認します。

例えば、以下の情報です。

Edge PC
 ├─ OS稼働状態
 ├─ Application稼働状態
 ├─ Network接続状態
 ├─ CPU / Memory / Storage
 └─ Software Version

Cloud
 ├─ 最終Data受信時刻
 ├─ 通信状態
 ├─ Data受信件数
 └─ Error情報

これらを取得できれば、障害発生時の切り分けに利用できます。

例えば、Cloud側でDataの未受信を検知したとします。

未受信という情報だけでは、以下のどれが原因か分かりません。

Edge PCが停止した

Applicationが停止した

施設Networkが切断された

Cloudへの送信だけが失敗した

Modality側からDataが送られていない

そのため、Edge PC内部のTelemetryや、外部監視端末によるHeartbeatなど、複数の情報を組み合わせる必要があります。

Remote Monitoringの評価では、以下の指標が有効です。

評価指標 確認したいこと
MTTD(平均検知時間) 障害を検知するまでの時間
MTTR(平均復旧時間) 障害から復旧するまでの時間
障害切り分け時間 原因の候補を絞り込むまでの時間
現地対応率 全障害のうち現地対応が必要だった割合
自動復旧率 人手を介さず復旧できた割合

Remote Monitoringがない場合、

障害発生
    ↓
顧客が異常に気付く
    ↓
問い合わせ
    ↓
Supportが調査

という流れになりがちです。

Monitoringを導入すると、

障害発生
    ↓
Systemが異常を検知
    ↓
SupportがRemoteで状態を確認
    ↓
必要な対応を判断

という運用に変えられる可能性があります。

ただし、監視を導入しただけでMTTRが短くなるとは限りません。

検知後の通知先、対応手順、復旧方法まで設計する必要があります。

監視の目的は情報を集めることではなく、障害に早く気付き、必要な対応を早く判断できるようにすることです。


5. Field DataはProduct品質の改善にも利用できる

Cloudへ送るDataは、現在のDeviceの状態を把握するためだけのものではありません。

例えば、以下の情報を継続して取得できれば、長期的な分析にも利用できます。

  • 稼働時間
  • Fault発生件数
  • Software Version
  • 通信障害の発生状況
  • 部品交換履歴
  • Maintenance履歴

これらを分析することで、以下のような傾向を把握できる可能性があります。

特定Software VersionでFaultが増える

一定の稼働時間を超えると
特定部品の交換が増える

特定のNetwork環境で
通信障害が多く発生する

こうした情報をProduct改善につなげる場合、以下のような流れになります。

Field Dataを収集
    ↓
傾向を分析
    ↓
原因を調査
    ↓
改善策を検討
    ↓
Productへ反映
    ↓
改善効果を確認

ただし、単純なFault件数だけで品質を判断するのは適切ではありません。

例えば、Software VersionごとのFault発生件数を比較するときは、対象Deviceの台数や稼働時間を考慮する必要があります。

Fault発生率
=
Fault発生件数 ÷ 総稼働時間

といった指標を利用すれば、異なる条件のDevice群を比較しやすくなります。

また、医療向けSystemでは、収集するDataについても注意が必要です。

障害解析に不要な患者情報などを収集しない設計や、アクセス権限、保存期間、通信・保存時の保護などを考慮する必要があります。

Cloud接続によって得られる価値の一つは、Fieldで発生している問題を可視化し、次の改善へつなげられることです。


6. 技術対策と運用指標を対応させる

これまでの内容を整理すると、以下のようになります。

技術対策 Engineering上の目的 運用上の改善目標 評価指標の例
Freeze対策 Device安定化 Downtime削減 停止回数、稼働率
Driver最小化 不具合要因削減 長期安定運用 障害発生率
Version管理 Change Risk低減 更新起因の障害抑制 更新失敗率、変更後の障害件数
Store-and-Forward Data Loss防止 通信断時のData保持 欠損件数、保持可能時間
再送制御 End-to-End Reliability Data欠損・重複の削減 再送成功率、欠損・重複件数
通信断Monitoring 障害検知 異常の早期把握 MTTD
Firewall設計 不要通信の制御 Security Risk低減 許可通信の棚卸し結果、設定逸脱件数
Network構成見直し 接続性向上 導入負荷削減 接続成功率、導入時間
Remote Monitoring 状態把握 Support効率改善 切り分け時間、現地対応率
Field Data分析 障害傾向の把握 Product品質改善 Fault発生率、再発率

ここで重要なのは、技術対策の実施と、運用上の改善効果を分けて考えることです。

例えば、

技術対策:
Store-and-Forwardを実装した

確認:
通信断中のDataを保持できた

運用上の評価:
想定する通信断時間に耐え、
復旧後に欠損なくDataを再送できたか

というように整理します。

同様に、Remote Monitoringなら、

技術対策:
Cloud側で通信断検知を実装した

確認:
Data未受信を検知できた

運用上の評価:
従来より早く異常を把握し、
障害切り分け時間を短縮できたか

となります。

単に機能が動いたことと、その機能によって運用が改善したことは別です。

可能であれば、対策導入前後で同じ指標を記録し、比較する必要があります。

また、障害発生率などを比較するときは、端末台数や観測期間、運用環境の違いも考慮することが重要です。


まとめ

これまでのEdge / Cloud環境では、以下のような技術課題に取り組んできました。

Freeze対策
    ↓
Deviceの安定化
    ↓
Downtime削減
Store-and-Forward
    ↓
通信断時のData保持
    ↓
Data欠損リスクの低減
Remote Monitoring
    ↓
障害の早期検知・切り分け
    ↓
対応時間・現地作業の削減

これらの対策は、それぞれ技術的な目的を持っています。

しかし、実運用では、その技術が何を改善したのかまで確認する必要があります。

特に、24時間365日の無人運用を前提としたEdge / Cloud Systemでは、

  • 安定して動き続けられるか
  • 通信障害が発生してもDataを守れるか
  • 異常を早く検知できるか
  • Remoteで原因を切り分けられるか
  • 現地対応の負担を減らせるか

といった点が重要になります。

Reliability、Security、Monitoringは、それ自体が最終目的ではなく、Systemの運用要件を満たすための手段です。

そして、それぞれの対策に対して評価指標を設定することで、技術的な改善を運用上の効果として確認しやすくなります。

これまでの取り組みを振り返ると、技術選定や設計の段階から「何を改善したいのか」を明確にしておくことが重要だと感じています。

次回は、その考え方をもう一歩進めて、

CloudやEdge PCを先に決めるのではなく、必要な価値や運用要件からSystem構成を考える

というテーマについて整理します。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?