Open10

プロダクトの(実行)環境戦略、つまりアプリケーションのデプロイメント環境について

anfangdanfangd

ソフトウェアやシステムの実行環境について基本的なことを整理したくなったのでまとめます。

Background

  • システム開発や運用保守のプロセス全体を見て何かをする仕事をすることが多い
  • システム構築の最初の時点で実行環境の設計ができてないと、あとあと苦労することが多い
  • 実行環境の設計に関しては標準化されたものはなく、業界や組織で培われたプラクティスが採用されていることが多い
  • このあたりを多少なりとも抽象化して、会話のベースとできる情報が欲しい

Goal

  • ソフトウェアやシステムの実行環境についての情報がまとまっていること。

Out of Scope

TBD

anfangdanfangd

Summary

  • Deployment Environment (デプロイメント環境)と呼ぶよ。それを考えることを DTAP Strategy (DTAP戦略)と呼ぶよ。
  • DTAP street というものがあるよ
  • DTAP street は歴史のある考え方なので、よりアジャイルに本番環境にリリースするためのリリースエンジニアリング的なノウハウを組み合わせて使うよ
  • まずは DTAP 構成が必要な理由や、一般的な DTAP 構成と活用方法について知ると良いよ
  • アクターとシナリオから整理すると、自分の組織でなにが必要となるのかイメージしやすいよ
anfangdanfangd

Deployment Environment

Wikiのこれが一番わかりやすい気がする。

cf. Deployment environment - Wikipedia

Environment/Tier Name Description
Local Developer's desktop/workstation
Development/Trunk Development server, serving as a sandbox for developers to perform unit tests
Integration Target for CI builds, or for developer tests with side effects
Test/QC/Internal Acceptance Environment where interface testing is conducted. The quality control team ensures that new code does not affect existing functionality and tests the main functions of the system after deploying new code to the test environment.
Staging/Model/Pre-Production/External Client Acceptance/Demo Mirror of the production environment
Production/Live Serves end users/clients
anfangdanfangd

Memo

  • DTAP street は環境がインフラごと分離している
  • 近年だと、プルリク単位にアプリケーションコンテナを起動してそのPRのテスト環境を構築したり、するので、その辺の考慮が必要になる気がする