Prod
PreProd (Performance Testing)
-----------------------------------
UAT (Smoke test, Business Test)
QA (Test Cases)
Dev (Integration Test)
-----------------------------------
Dev1 (Developer, PC/Laptop, NAS/NFS/S3 (Dedicated share)|Eleminate local storage,
Coding, Unit Test)
Dev2
Dev3
Dev4
....
....
DevOps
~~~~~~
Development & Build Workflow
Developers write code commit to git (gitlab) [Individual user commits]
Daily/Weeky Code Merge -> Build and push to Dev env.
Integration Test passed -> Build promoted to QA for QA Testing
QA Test passed -> Build promoted to UAT for Business testing ( includes smoke test)
UAT Passed -> Build promoted to prod and preprod (Preprod will have earlier
backups)
>> Developers work on individual systems, however code is saved on central share
(NAS Filer/NFS/S3)
>> Developers connect to dedicated databases for DB access during development
(Instance on central server, each developer has own DB which is cloned from the
Dev)
>> Developers have to generate DDL scripts for their respective DB artifacts and
push it git (gitlab) along with their commits
>> Developers are responsible for additional/ad-hoc DB backups (recommended before
generating DDL)
DB Build workflow
~~~~~~~~~~~~~~~~~
>> Before commiting code developer generates DDL script
>> DDL script commited to gitlab along with regular code
>> During code merge identify conflicts in DDL scripts
-> Simple approach is generate DDL script with only CREATE statements (NO
DROPS)
-> Run all scripts on a stage DB (built from last Dev DB)
-> Errors are reported back
-> Developer performing Merge request reviews errors and resolves conflicts
-> Generate a master DDL SQL script which is committed to the merge which
will be deployed on Dev
>> On higher envs starting with Dev, current DB is renamed -> new DB is deployed
>> DBs are backedup on daily basis and retained for 30 days
>> 60 unused DBs are retained, 61st DB will push the oldest one for deletion
Containers
~~~~~~~~~~
Server Clusters
DEv + Staging
QA + UAT
PreProd + Prod
Monitoring
----------
Server
Container
Database
Application
Backup
-------
Container
Database
Config/Settings
Deployment process
-------------------