開発・検証・本番環境を分断せずスリーランドスケープを活かす

一般的に日本のシステム開発では、「スリーランドスケープ」と呼ばれる考え方が普及しています。これは、3種類の異なった環境を用意し、用途に応じてネットワークを利用する考え方です。ただ、この考え方は、今の時代には必ずしも理想的なネットワーク構成ではありません。ネットワークを必要以上に分断させないために、何を意識すればいいのか?考えてみます。

3つの景色から眺める、スリーランドスケープ開発とは?

スリーランドスケープの異なる環境とは、開発環境、検証環境、本番環境の3種類のネットワークです。それぞれ直接は接続されず、ネットワークを独立させることでトラブルが波及するのを防ぎます。一方、ネットワークを直接接続させない代償として、リリース作業などは人の手で対応する必要があります。人的な作業が多く残っているため、『運用業務を効率化する』という思想が必須な、今の時代にはそぐわないスタイルとなっている面もあります。 とはいえ、現在でも多くのシステム開発環境がスリーランドスケープで構築されています。情シス部門の意見だけではなく、全社的な方針の見直しが必要となるため、簡単には変更できないのが現状だからです。以下で、問題点をもう少し具体的に見てみましょう。

問題点1:接続環境の切り替えに手間が掛かる

スリーランドスケープでは、作業環境が変わるたびに接続先の切り替えが必要です。安全を担保するために必要な作業とはいえ、切り替えに手間が掛かるのも事実です。この作業は、特定の環境でしか作業しない場合には発生しませんが、複数の環境で同時に操作しなければならない際には、大きな手間です。例えば、開発環境と検証環境の差異を洗い出すために、交互を切り替えながら接続していては、エンジニアのストレスも溜まります。 接続環境の切り替え回数が多ければ、システム運用には非常に大きな負担となり、問題として顕在化してしまいます。逆に回数が少なければ、運用の負担は最小限に抑えられます。

問題点2:接続環境へのアクセスミスが起きる

環境の切り替えがあれば、アクセスミスが起きてしまうのは当然です。間違った環境で操作してしまえば、障害も発生します。実際にシステム運用の現場では、誤った環境へのアクセスが障害発生原因の上位を占めています。システム運用エンジニアの皆さんも、このようなトラブルを経験したり、自分では経験していなくても、事例として目にする機会は多いのではないでしょうか。 本来は、誤った操作をしないために分割されているはずです。しかし実際には、分割されていることで『〇〇環境を操作している』との過信が生まれてしまい、アクセスミスが障害の原因となります。スリーランドスケープにしているからといって、ヒューマンエラーを確実に避けられるわけではありません。

問題点3:必要な人的リソースが求められる

一般的なネットワーク構成では、それなりの人的リソースが求められます。特に本番環境で作業をする場合は、2人でダブルチェックしながら対応するため、多くのリソースを消費する傾向があります。前述のようなヒューマンエラーを防ぐには、1人で作業するよりも2人で対応する方がより安全です。 ただ、それでもなお、ミスがゼロになるわけではありません。ダブルチェックをしてもミスは起き、手順書に2人のサインがあってもミスは起きるもの。人的リソースが求められる割にはミスはゼロにならず、結局は課題だけが残る…これも厳しい現場あるあるです。

<PR>システム開発と検証、本番が棲み分けされていても、システム運用でしなければならないことは変わりません。 開発スピードに応えるには、統合運用管理サービス「UOM」で自動化・効率化が必須! 詳しくはこちら

分断されたネットワークでの開発は、自動化しよう!

ネットワークを分けること自体は悪くありません。例えば、外部から攻撃を受けた場合も、影響範囲を最小限に抑えられ、本番環境のネットワークだけ早期に復旧するなどの対策が可能です。 重要なのは、分断されたネットワークでは開発を自動化することです。具体的には、インテグレーションテスト用ツールなどを利用し、開発から運用までをシームレスに連携させるDevOpsの方向を目指すのが理想です。自動的に本番リリースしたり情報を取得できる状況を作って、ツールで自動化できれば問題点を一気に解決できます。 例えば、インテグレーションテスト用ツールには『プログラムのリリース時のみ、自動的に環境間のネットワークを接続する』機能を持つツールがあります。検証環境でテストしたプログラムを本番機にリリースする際に、一時的に本番のネットワークに接続して自動的にプログラムを配置します。作業が終わったら、自動的にネットワークが切断されるので安全です。 このように自動化ツールを利用すれば、人がアクセス環境を間違えたり、ダブルチェックしたつもりのミスを起こすこともありません。『分断されたネットワークをどう繋ぐのか』を工夫すれば、スリーランドスケープのメリットは最大限に活かせます。

3つに分けているメリットを活かしつつ、デメリットを最小化

一般的なシステム開発では、開発・検証・本番と3つの環境を用意します。ただ、これらの環境は人が間に入って接続する運用が多く、ヒューマンエラーを起こしがちです。システム運用業務の効率化だけを目指す場合、3環境のネットワーク構成は必ずしも今のトレンドではないかもしれません。しかし、あくまでもヒューマンエラーが発生しやすいシステム運用が問題であって、環境の切り分けそのものが問題ではありません。 重要なのは、人の作業を必要としない自動化を実現することです。本番環境へのリリース作業を自動化すれば、ヒューマンエラーによる実務への影響をなくせます。また、システム運用自体も、自動化・効率化する手段があります。

<PR>開発環境の切り分けに、属人化を廃した自動化が有効なように、システム運用も人の手間を減らすことが重要です。 統合運用管理サービス「UOM」を使えば、少人数の情シス部門でも効率的な運用が可能です。 詳しくはこちら

関連記事

∞∞∞∞∞∞∞ おすすめ記事 ∞∞∞∞∞∞

  1. 失敗や不十分な対策も次のヒントに – 情シス現場のホンネ2

    今回も引き続き、IIJが昨年秋に実施した、情報システム部門のエンジニアへのアンケートからご紹介します…
  2. システム運用のコスト削減(1)- コストが掛かる理由はコレ

    開発と違い、組織にとっての利益を生み出さず、費用を使うだけの「コストセンター」だと誤解されるシステム…
  3. 仮想化に使うコンテナ技術って何?仮想マシンじゃどこがダメなのか?

    仮想化に使うコンテナ技術って何?仮想マシンじゃどこがダメなのか?

    仮想化技術は今やITシステムに不可欠で、ビジネスの規模や業種に関係なく広く使われているのは、以前の記…
  4. 学びもハックのひとつだ!業務のスキマで少しでも英語力をアップしよう!

    学びもハックのひとつだ!業務のスキマで少しでも英語力をアップしよう!

    業界外の人たちからなかなか理解されない、「毎日、カタカナの専門用語を使っている、英語が苦手なITエン…
  5. 複雑で多様なシステムも全部一括チェック:監視

    この連載ストーリーの背景 佐藤 一郎(42) アリガチシステムズ…
ページ上部へ戻る