IT業界の仕事

システム障害を防ぐには、どうしたらいいのか?

2023年5月28日

久しぶりの投稿ですが、お付き合いください。

システム障害

システム障害がひとたび発生すると、我々が生活する日常生活や社会に多大な影響をおよぼします。

今やITシステムは、我々の日常生活になくてはならないものになっています。

 

例えば、みずほ銀行のシステムトラブルなどはわかりやすい例ですが、ひとたびITが止まると、ATMからお金が引き出せなくなるとか、

AUでシステムトラブルが発生すると、スマホが使えなくなるとか、日常生活がたちまち不便になるくらいITは一般的な社会インフラとして重要性は高まっています。

 

ITエンジニアとして、ITサービスをお客さまへ提供してるが、
毎回システム変更するたびに、何かしらのシステム障害が発生しないか、いつも心配になる。

いったん障害が発生すると、お客からクレームになるし、会社のイメージダウンにもつながる。システム障害を起こさないようにするには、どうしたらいいんだろうか?

 

 

今回は、システム障害をどうすれば防ぐことができるのか?IT業界35年の私の経験から、システム障害の防止についてお話します。ITを維持管理している方、システムをこれから構築しようとしている方、ITエンジニアでシステム障害に悩んでいる方に向けて、有益なお話になると思います。

 

システムトラブルを防ぐには?

結論から言うと、ポイントは以下の5つです。それでは順に説明します。

・とにかくテストする
・本番に近いテスト環境を用意する
・段階的リリース、パイロット稼働のススメ
・本番移行時は切り戻り手順とチェックポイントを決める
・万一に備えて障害リカバリ対応の体制を待機


とにかくテストする

システム障害を防ぐには、何が重要か?

それは、事前にテストをすることです。

システムテストを本番リリース前までに、確実に実施して確認しておけば、100%システムトラブルは防ぐことができます。

完璧なシステムが作れなくても、テストで要求仕様が満たせていれば、業務で使用するには最低限問題はありません。

逆にいうと、テストで問題がなければどんな作り方をしてもいいということです。

 

ではなぜ? 世間ではシステムトラブルが発生してしまうのでしょうか?

それは、きちんとテストしていないからです。または、テストが不足していたからです。

まず、ITに関わる方がまず意識することは、「テストをすること」です。

 

実にシンプルです。システムトラブルを防止するには、とにかく「テストをする」に尽きます。

ITエンジニアの仕事は、「テストに始まり、テストに終わる」と言っても過言ではありません。

どんなに完璧な設計をして、プログラミングを正確にコーディングしたとしても、システム障害は防げません。

テストをしておけば、ほぼ90%は障害を防ぐことができます。

次は、ITにおけるシステムテストをどう正確に、確実に、かつ効率的にやるかをお話します。


本番に近いテスト環境を用意する

本番環境に近いシステムテストで問題がないことが確認できれば、ほぼシステム障害は発生しないいんです。

最近ではクラウド環境で、ステージング環境と呼ばれる、本番とほぼ同じ環境をテストで使うことができるようになってきました。

なので、システムを設計構築するときは、予め本番環境だけではなく、ステージング環境と呼ばれる本番と同等のテスト環境を準備するよう、システム予算を確保してから計画すべきです。

 

よく、システムを構築することだけに注力して、本番稼働後の維持管理フェーズで、システム変更時のことを考えていないプロジェクトを散見します。

必ず、システム変更やソフトウエアのバージョンアップは定期的に発生するのですから、ステージング環境の常設は必須です。


段階的リリース、パイロット稼働のススメ

ステージング環境があるからと言って、本番と全く同じ環境や条件でテストするのは、今の時代では簡単なことではありません。

昔はシステムの規模が小さかったので、通常のテストであれば、ほぼ本番と同じ環境を用意できました。

また、一つのプログラムを修正して、テストするだけならそれほど大がかりな環境は必要なくテストは簡単です。

 

しかし、今のシステムは様々なAPIで連携していたり、大規模改修で複数のシステムとの連携が多く発生する場合は、いくらステージング環境があっても、本番環境と同じデータを使ってテストすることはなかなか困難です。

しかも、昨今は顧客情報(個人情報)の利用が厳しく制限されているので、簡単に本番と同じデータを大量に準備して、本番時と同じ処理をテストすることはかなりハードルが高くなってきています。というか、ほぼ不可能な状況が多く見られます。

それなりにスケールダウンさせて、本番と同じような疑似環境は準備できるのですが、それでも本番と全く同じ環境のテストはできません。

本番と同じ環境を再現してテストできない以上、本番移行(新しいシステムを正式にリリースすること)は障害を起こさない、障害が起きたとしても最小限に障害の影響を極小化させるための工夫が必要です。

 

そこで段階的リリースして、パイロット稼働でシステム障害の発生リスクの影響を最小限に抑える手法がオススメになります。

次回は、そこのところを詳しく説明します。

-IT業界の仕事

© 2023 IT系サラリーマンの前のめりブログ Powered by AFFINGER5