Environment Management Document
===
###### tags: `SCB`
## Document
Last updated: 15.04.2020
--> Assumption: obsolete
--> Question: what is the current status of the envs?
--> Ticketing system?
--> Agile methodologies? (Scrum, Kanban?)
## Preliminary assumptions and questions
### Run/Change
1. What is the load between BAU and projects?
2. Are there different teams for Run and Change?
3. Is there a programme of projects?
4. Responsibility Matrix in the Team/Department?
### System
1. What is the system in Production?
2. Goals, background?
3. Who is the end-user (internal client?)?
4. Integration Layer Overview?
5. Architecture Overview?
6. How does the constellation of systems look like?
7. How are the dependencies between systems?
8. How many microservices are there? Overview?
9. Infrastructure as Code? --> Ansible --> PoC build ad-hoc envs
## Environment Management
* Environments are on premise (move to cloud?)
* CI/CD is still not implemented (planned for Q42021) -- including pipelines
* CI/CD tooling?
1. Different test enviroments with different builds?
2. How many environments are there in total?
3. Overview of Enviroments?
4. Meaning of KP, DSP, ...?
5. Is there a checklist for integrating the environments?
## Test Management
Are the following tests existing?
- [ ] Performance
- [ ] Penetration
- [ ] Unit
- [ ] E2E (Functional)
- [ ] Smoke tests
- [ ] Sanity checks
- [ ] Integration
- [ ] Infrastructure
- [ ] Manual
- [ ] Load
## Deployment Management
1. Is there a deployment strategy?
2. Is branching implemented?
3. What deployment strategies are currently in place? [Source](https://thenewstack.io/deployment-strategies/)
- [ ] Recreate: Version A is terminated then version B is rolled out.
- [ ] Ramped (also known as rolling-update or incremental): Version B is slowly rolled out and replacing version A.
- [ ] Blue/Green: Version B is released alongside version A, then the traffic is switched to version B.
- [ ] Canary: Version B is released to a subset of users, then proceed to a full rollout.
- [ ] A/B testing: Version B is released to a subset of users under specific condition.
- [ ] Shadow: Version B receives real-world traffic alongside version A and doesn’t impact the response.
## Monitoring
* Performance
* Logging
* Scheduler
## Databases
1. What DB type is there?
2. Is there a DBA?
3. What teams is responsible for the DBs?
4. Are there regular backups?
5. Anonymisation of databases?
## Security
1. How is the User Management built? AD? SSO?
2. IT Governance overview?
3. GDPR?
## Environments structure (standard cycle proposal)
| ENV | DEVOPS STAGE | TEST | DEPLOYMENTS |
| -------- | -------- | -------- | -------- |
| DEV | BUILD | MANUAL | PACKAGE |
| DEV-NIGHTLY | NIGHTLY BUILD | UNIT | AUTOMATED |
| TEST | CI | ALL | CONDITIONAL DEPL |
| UAT | QA | E2E | CONDITIONAL DEPL |
| PREPROD | HOTFIX | PROD: reproduce bugs | Release dependent |
| PROD | | Load | Release dependent |
Timetravel for ad-hoc testing?
Migration environment?
Testing end-goal: automated testing for all stages
## Dashboard proposal
+ Servers
+ Microservices
+ IPs
+ Loadbalancer
+ Environments
+ UI
+ Databases
+ Performance
+ Open new tickets (JIRA?)