DX Column

2021年9月6日

#ステージング – 知ったかテックワード!君もIT博士

カテゴリー:

タグ:, ,

ステージングとは

ステージングは、システム開発で用意するシステム環境の一種だ。

システム開発では、次のような環境を用意する。

  • 開発環境(デベロップメント環境)
  • 検証環境・テスト環境
  • ステージング環境
  • 本番環境(プロダクション環境)

開発環境は、開発者が開発したり動作確認したりするシステム環境のこと。

検証環境は、実装が完了した機能をリリース前にテストするための環境です。本番に近い環境というよりも、検証中の機能がたくさん含まれている可能性がある。

本番環境は、実際にサービスを提供しているシステムのこと。

そしてステージング環境(Staging)は、開発環境・検証環境と本番環境の間にあって
本番環境とほぼ同じ構成で、動作や表示の最終確認をおこなうんだ。

この場合、ステージ(Stage)とは舞台というより足場という意味。

ちなみに、多段式ロケットの1段目・2段目もステージって呼ぶんだけど、
1段目(1st Stage)を足がかりにして2段目(2nd Stage)を発射しているんだ。

だから、ITシステムのステージング環境は、本番環境への足がかりになる。

開発環境と検証環境は、開発者個人のローカルPCだったり検証用サーバーだったりと、本番環境と比較してどうしても貧弱な環境になりがちだ。持っているデータの容量や複雑度・アクセス頻度などでも見劣りする。だから、開発環境で動作したとしても、本番環境で問題が出ることがある。

ステージング環境を利用することで、開発環境でのテストでは見逃していた不具合やバグを公開してしまうミスを抑えられるんだ。

もしも、ステージング環境がなかったら、いきなり本番環境にシステム変更を反映することになってしまう。そこでトラブルになったら、お客様にも影響をあたえて、そりゃもう大騒ぎだよね。

そんな事態をできるだけ防ぐ最終チェックのためにステージング環境はあるんだよ。

ステージング利用の注意点

ステージング環境を構築する場合は次のポイントを守る必要があるよ。

  • できるだけ本番環境に近い環境を構築すること
  • 相対パスと絶対パスを使いわけること

本番環境に近い環境を構築した場合、コストがかかるものの、出来る限りリリースと同様の条件となるようにしなければ正確なシステムのチェックができないからね。 特に、大規模なWebサービスでは、そのデータ量やアクセス量も大きなものになる。ステージングでそういった条件を再現することで、本番に近い動作検証が可能になるんだ。

相対パスと絶対パスの違いはこんな感じ。

  • 絶対パス:ファイル構成のトップレベル(ルート)を起点として、目的のファイルへの経路を示す。
  • 相対パス:現在操作しているディレクトリを起点として目的のファイルへの経路を示す。

開発環境のファイルを絶対パスで指定してしまうと、そのシステムをステージングや本番環境に持って行っても、開発環境のファイルを指定してしまうこ、なんてことがおこる。デプロイのたびにパスを書き換える必要が出てくることもあるから、きちんと使い分けたい。

おまけのコント

カエル:ステージングって知ってる?

うさぎ:この間、穴を掘っていたらサ。

カエル:うさぎは穴掘るの得意だからネ。

うさぎ:家族も増えたから巣穴を広げようと思って、今までより深く掘ってたわけ。
そしたら、一番下の穴の底から地響きが・・・ゴゴゴゴ

カエル:ゴゴゴゴ?

うさぎ:ズゴゴゴゴ

カエル:スゴゴゴゴ?

うさぎ:と、その時、突然、穴の底がバーンと崩れて。
そこから真っ黒い泥だらけの・・・ツ・・・ツテー・・・ジンが!
ツテージンが!地底人が!!うぁぁぁ・・・(がくがく、ブルブル)