# 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]]