treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

あるある=テスト環境で動作したのに本番環境では…

今日はあるある話です。
テスト環境でうまいこと動作して「よしよし、これで本番もバッチリダヨ。」と思っていたのに、いざ本番環境に持っていくと「なんかテスト環境と動作が違うんですけど~?」てなもんでうまいこと動作しない、なんてことがあります。

例えばPCやサーバ

どうしても場所に依存する設定というのは存在してしまいますのでキッティングが初期セットアップ時に完全な本番環境を再現してセットアップが進められれば、それはそれでベストなのですが、たいていはIPセグメントが違うとか通信方法が違うとかいったネットワークの環境の違いは出てくるものです。
A拠点でセットアップして構成したサーバやPCをいざ本番のB拠点に持って行って動作させようとすると「…あれ?何か動きが違う…?」と戸惑う状況に陥ることになってしまいます。
しかし、セットアップ時に本番環境とテスト環境はどこが違うのかをある程度補完して設定値を決定したり動作の確認をとってこれなら本番でも動作するだろうというテスト合格の判断をしたりします。
と、いうことはテスト環境で動作合格○していたものが、本番環境で動作が違ってくる、不合格×となるのは、そもそも想定して補完した環境やテスト環境ではそのセグメント内で自動的に設定される仕組みがあるのでPCやサーバで設定不要だけど、本番環境にはそのテスト環境にあった自動設定の仕組みがないから設定が不足してしまう、といった類のいわゆる抜けが存在していることになります。

移行作業などになると既存の環境をアレコレいじるわけにもいかないので難しいですし、本番と全く同一のテスト環境なんてお金が掛かって仕方ない、費用的にそんな理想のテスト環境は用意できない、というのが現実です。

ネットワーク機器も

インテリジェントスイッチぐらいだとそれほど差も出てこないようにテスト環境を用意するのはさほど難しくないのですが、VPNやルータのコンフィグをテスト環境で作り込んで、いざ本番環境に持っていくと「あれ?動作違うような…」となることもあります。
特にWANやインターネットの出入り口になるルータやUTM・ファイアウォール機器といったグローバルIPで直接インターネット側と通信するような機器だとグローバルIP側のネットワーク環境を再現することがなかなかに難しくて、それなりの作り込みしかできないことになりがちです。
テスト環境では導通確認がしっかり完了してたルータのルーティングやきっちりトンネルがはれていたVPN装置などが、いざ本番環境に持っていくと、「ルーティングしない…」「トンネルはれない…」となると、もう焦りますね。作り込んで自信があればあるほどに、いざ動かないときのテンパり具合と来たら…。もう言葉では言い表せないです。

対処法

特効薬はありませんから、

  1. まずは深呼吸。気持ちを落ち着かせる。
  2. 数分前に自信満々だった自分を忘れ去る。
  3. テスト環境と同じものと同じじゃないものをちょっとづつ分類していく

といったステップで対処を進めていくしかないことになります。
同じように動作しないのはテスト環境と違う点があるから、というのは間違いないので、同じものと相違するものを分類して、相違するものだけに絞って、テスト環境ではどうだったのかと本番環境でどうなる想定だったかを思い出す必要があります。

でも、なかなかうまくいきませんよね。テンパるから。