# Stages of DevOps
[[Software Development Process]], [[Application Lifecycle Management]], [[Systems Development Life Cycle]], [[DevOps]], [[Project & Product Management, Ownership, Leadership, & Agile]], [[Twelve-Factor App methodology]]
## Plan
Consists of define and plan. About business value and application requirements.
- [[Requirements Gathering]]
- Business value
- [[Business Logic]]
- Plan releases
- [[Security]]
- Policies
- Compliance
- Auditing
- [[Risk Management]]
- [[Project & Product Management, Ownership, Leadership, & Agile]]
## Create
Building, coding, and configuring of the software
- [[Design]]
- [[Programming]]
- [[Build Automation]]
- [[Continuous Integration]]
- Release candidate
- [[+Dependencies, Packaging, Building, Artifacts, Libraries, & Modules]]
## Verify
Ensure the quality of the software release
- [[Testing & QA]]
- [[Security Testing]]
- [[Static Code Analysis (SCA) or Static Program Analysis|Static Code Analysis]]
- [[Dynamic Program Analysis]]
- [[Code Linting, Formatting, Conventions, & Style]]
## Packaging
Activites when the release is ready for deployment, often also referred to as staging or Preproduction / "preprod"
- [[+Dependencies, Packaging, Building, Artifacts, Libraries, & Modules]]
- Approvals, preapprovals
- [[Code Review]]
- Package configuration
- Triggered releases
- Release staging and holding
- [[Deployment Environment]]
- e.g., dev, qa, sandbox, staging, prod, etc
- [[Software Repository]] for artifacts, containers, etc.
- [[Software Release Life Cycle]]
## [[Release]]
Schedule, orchestration, provisioning and deploying software into production and targeted environment
- [[+Deployment, Release, Provisioning, & Orchestration]]
- [[Release]]
- [[Deployment]]
- [[Provisioning]]
- [[Orchestration]]
- Often the same as deployment where your deployment is the release. But you can optionally separate them via [[Blue-Green Deployment]] or [[Feature Flags]].
- Promotion of applications
- Can use your configuration manager like [[Ansible]], [[Puppet]], [[Terraform]], etc.
- Fallbacks and recovery
- Scheduling/timed releases
- [[Release Management]]
- [[Application-Release Automation]]
- Release coordination
- [[Release Notes]]
## Configure
Configure activities fall under the operation side of DevOps. Once software is deployed, there may be additional IT infrastructure provisioning and configuration activities required.
- Operations - Infrastructure-related provisioning and configuring
- Application provision and configuration.
- Infrastructure storage, database and network provisioning and configuring
- [[Configuration Management]]
- [[Infrastructure as Code]]
- [[+Change Management, Change Control, & Configuration Management]]
## [[Monitoring]]
Allows IT organization to identify specific issues of specific releases and to understand the impact on end-users.
- Performance of IT infrastructure
- End-user response and experience
- Production metrics and statistics
- Information from monitoring activities often impacts Plan activities required for changes and for new release cycles.
- [[Software Measurement]]
- [[Observability]]
- [[Monitoring]]
- [[Logging]]
- [[Events, Incidents, Alerts, & Notifications]]
- [[Software Metric]]
- [[Synthetic Monitoring]]
- [[Site Reliability Engineering]]
## [[Version Control]]
The management of changes to documents, computer programs, large web sites, and other collections of information.
### [[Software Versioning]]
### [[Git]]