Day-0, Day-1, and Day-2 operations refer to the progression of tasks involved in building and launching new software services. Assigning tasks to these “days” provides a framework for effectively managing your launch. It helps prevent errors and oversights, improving operational stability at scale.
In this guide, we’re going to discuss the benefits of using “days” within your DevOps lifecycle. We’ll highlight the key processes that commonly occur on each day, then cover some best practices to ensure operational efficiency and your rollouts run smoothly. Let’s get started with a more detailed breakdown of what each day includes.
- What are Day-0, Day-1, and Day-2 operations?
- Why use Day-0, Day-1, and Day-2 operations?
- Managing Day-0, Day-1, and Day-2 software operations tasks
- Best practices for software operations on Day-0, Day-1, and Day-2
- How an infrastructure orchestration platform can improve Day-0, Day-1, and Day-2 operations
Day-0, Day-1, and Day-2 operations refer to distinct phases of managing infrastructure, applications, or services in DevOps and cloud operations. Day-0 covers design and planning, Day-1 involves deployment and configuration, and Day-2 focuses on maintenance, monitoring, and ongoing operations after launch.
The model complements the broader DevOps workflow but focuses on the operational requirements surrounding your launch.
The high-level concept of operations refers to the process of running and maintaining apps in production environments. To successfully operate a software service, you need correctly provisioned infrastructure, robust monitoring capabilities, and a functioning backup mechanism, for example. However, not all of these things need to happen at the same time, which is where the “days” framework comes in.
Each day’s main activities are as follows:
- Day-0 operations (Pre-deployment planning): Day-0 is when you design and plan how you’ll operate the system in line with your requirements and constraints. You define which tools you’ll use and identify any problems that need to be addressed.
- Day-1 operations (Deployment): Day 1 is when your release actually happens. Its tasks include infrastructure provisioning, code deployment, and any essential post-release actions that prepare your app for use.
- Day-2 operations (Maintenance): By this time, your service is running in production, but software operations don’t end there. From Day 2 onwards, you need to maintain your system by monitoring for errors, creating backups, resolving configuration drift, and responding to incidents. Less structured deployment pipelines often overlook these essential follow-up tasks.
The days within the framework don’t generally map to a single day of real time. Producing Day-0 designs may take several weeks for a complex system, for instance, while Day-2 operations should continue throughout your deployment’s life.
Day-0 vs. Day-1 vs. Day-2: Table comparison
The table below summarizes the differences between these phases:
Phase | Activities |
Day-0 | Designing architecture, planning infrastructure, defining requirements |
Day-1 | Deploying applications, configuring environments, validating production readiness |
Day-2 | Performing maintenance, monitoring, scaling, troubleshooting, updating systems |
Managing cloud software operations is complex, but thinking in terms of Day-0, Day-1, and Day-2 scheduling brings much-needed structure. With so many critical tasks involved, it’s essential to complete each at the right time. This three-step framework helps standardize how changes move into production, while emphasizing that the work doesn’t end at deployment.
For example, Day-2 operations are easily overlooked when they’re not specifically included in deployment plans. The framework ensures that these vital maintenance, security, and governance tasks are properly designed and implemented, ensuring your application stays stable in production.
Clearly outlining what should happen on Day-0, Day-1, and Day-2 also helps teams understand the full lifecycle of software operations. It strengthens alignment on both pre- and post-launch activities and makes it easier to communicate these steps to non-technical stakeholders who might not otherwise realize how much effort goes into a successful deployment.
Now that we’ve provided an overview of what Day-0, Day-1, and Day-2 operations mean, let’s take a closer look at what’s typically included in each stage. The exact tasks required will naturally vary depending on your specific project, but in general, you’ll be completing the following activities:
Day-0 tasks: Planning and design
Day-0 operations, or pre-deployment planning, focus on building a solid blueprint for infrastructure before any resources are created. It’s where you outline your operations architecture, choose the tools you’ll use, and define the success criteria.
By the end of this stage, you should know what you’ll need from your infrastructure to ensure stable and performant operations.
Properly executed Day-0 operations are critical for achieving streamlined Day-1 (deployment) and Day-2 (operations and maintenance) activities, supporting the full infrastructure lifecycle.
Key Day-0 activities include:
- Planning infrastructure architectures: Choosing the combination of cloud tools and services you’ll use
- Defining security and compliance requirements: Setting your governance needs to meet applicable criteria for your project, such as GDPR or HIPAA
- Establishing success criteria: Ensuring everyone understands how deployment success will be measured
- Anticipating potential Day-1 and Day-2 requirements: Auditing your proposed architecture to identify how it impacts Day-1 and Day-2 activities, such as ensuring cloud databases will be covered by a backup regime
Day-0 can be time-consuming, but it’s a critical step before you start deployment. Having a design agreement from different stakeholders helps prevent mistakes and ensures everyone understands what a successful launch will look like.
Day-0 example
In the cloud-native deployment, Day-0 operations would include:
- Selecting the cloud provider (AWS, Azure, Google Cloud) and services (EKS, AKS, GKE)
- Designing Kubernetes cluster architecture, including control plane sizing, node pool configuration, and multi-region setups
- Deciding network topology, such as VPC setup, subnetting, ingress/egress control, and firewall rules
- Choosing storage solutions, like EBS, Azure Disk, or GCP Persistent Disks, and determining storage classes
- Planning CI/CD pipelines, GitOps strategies, and repository structures
- Defining security and compliance requirements, such as secrets management, RBAC policies, and regulatory needs (e.g., GDPR, HIPAA)
Day-1 tasks: Build and provisioning
Day-1 covers all the tasks involved in actually deploying your service, encompassing everything needed to move a solution from development into production. Based on the plans developed on Day-0, you should provision your infrastructure, deploy your code, and make your app accessible to end users in production.
Typical Day-1 tasks include:
- Provisioning infrastructure components: Use of IaC tools such as Terraform and Pulumi to automate the creation and configuration of infrastructure, including compute nodes, databases, and Kubernetes clusters
- Preparing provisioned infrastructure: Many infrastructure components need further setup before they’re ready for your apps to use, such as databases that require seeding.
- Preparing your code: Building code ready to release, such as by creating an executable binary or container image
- Launching your deployment: Utilizing CI/CD and GitOps tools like Argo CD and Flux to ship your code to your infrastructure
- Initial monitoring and auditing: Ensuring the application is running correctly and meets the security and compliance requirements defined in the Day-0 specification
Automation is critical to ensure Day-1 goes smoothly. IaC tools, CI/CD pipelines, and GitOps-based deployment strategies let you codify your configuration to minimize the risk of errors. These techniques also allow you to rehearse deployments in staging environments and use the same process to bring up your production infrastructure.
Day-1 example
In a cloud-native application deployment, Day-1 operations might involve:
- Provisioning the Kubernetes cluster according to the designed specifications
- Deploying core system components like ingress controllers (e.g., NGINX Ingress) and service meshes (e.g., Istio)
- Installing observability tools such as Prometheus for monitoring and Fluentd for logging
- Deploying application workloads using Helm charts or GitOps workflows
- Configuring autoscalers, storage classes, and network policies
- Conducting initial validation tests, health checks, and security verifications to confirm readiness for production traffic
Day-2 tasks: Scaling and maintenance
Day-2 operations relate to the regular maintenance processes that should continue after launch. Deployments need to be scaled, monitored, and optimized throughout their life to ensure they keep meeting user needs. Day-2 tools and processes facilitate these tasks to help operators stay in control.
The following list outlines some critical Day-2 activities:
- Monitoring system performance: Using observability tools like Prometheus and Grafana to check on activity within the system
- Infrastructure and software updates: Patching infrastructure components and software dependencies to address bugs and security vulnerabilities
- Optimizing scaling settings: Analyzing usage and performance data and making scaling changes such as adding more infrastructure components, deploying new application instances, or rightsizing existing resources
- Incident detection and response: Using services like PagerDuty and Sentry to detect new errors and downtime events; providing developers and operators with real-time outage alerts enables a more timely response
- Cost monitoring: Assessing how infrastructure costs compare to your budget and optimizing to reduce costs: For instance, you could switch to more cost-efficient cloud spot instances or remove redundant resources.
- Creating and testing backups: Ensuring you’re able to recover your operations after a disaster successfully
- Detecting and resolving drift: Adoption of automated IaC-powered tools to find and fix drift in your live infrastructure environments, compared to the expected configured state
Day-2 is always far longer than a single day: You need to keep these processes running for as long as your deployment is in use. Oversights can easily occur here, so ensure all stakeholders know what’s expected from Day-2 and regularly check that operations are still running smoothly.
Automating Day-2 tasks reduces risk by ensuring everything stays running, but team members still need to be alerted to errors, security issues, and detected drift.
Day-2 example
In the same cloud-native deployment example, Day-2 operations would include:
- Monitoring cluster health and application performance with Prometheus, Grafana, or Datadog
- Scaling infrastructure dynamically, using Horizontal Pod Autoscaler or cluster autoscalers
- Applying security patches and upgrades to Kubernetes versions, nodes, and container images
- Managing incidents and outages, using alerting systems like PagerDuty or Opsgenie
- Continuously optimizing resource usage, adjusting CPU/memory limits, and tuning network policies
- Performing backups and disaster recovery tests, ensuring data protection and business continuity
The days framework provides a clear outline of what your release lifecycle should look like. Correctly implementing Day-0, Day-1, and Day-2 operations makes it more likely your software rollouts will be effective, not only at launch but also long-term. Here are some best practices to keep in mind for the best chance of success.
1. Iterate quickly on small changes
Planning, launching, and then optimizing small changes in quick cycles is easier to manage than larger schemes of work. It also makes it less likely that your implementation will differ from the original plans, a risk that could affect your Day-2 maintenance requirements.
2. Holistically plan Day-0, Day-1, and Day-2 tasks
The framework encourages considering Day-0, Day-1, and Day-2 tasks independently, but this doesn’t mean they should be siloed. It’s also important to consider the high-level view of your entire release lifecycle. Consider how tasks for each day may impact other days to prevent maintenance coverage caps from occurring.
3. Use a consistent deployment pipeline for all changes
Deploying all changes using a consistent automated pipeline makes your delivery workflow more efficient. It also gives you an opportunity to ensure that Day-0, Day-1, and Day-2 requirements are met.
For instance, a properly configured CI/CD pipeline could use policy checks to prevent deployments to misconfigured infrastructure that’s not yet ready for use.
4. Ensure seamless communications between teams and individuals
Day-0, Day-1, and Day-2 operations should feel accessible to all the stakeholders involved in your project. Understanding what’s expected on each day will reduce confusion and facilitate more effective collaboration.
Ensure it’s easy for different teams to communicate — changes made silently during planning or development stages can easily impact the operations team’s Day-2 tasks.
5. Automate infrastructure management and configuration processes
Adopting infrastructure-as-code (IaC) and configuration management tools like Terraform, Pulumi, and Ansible makes software operations more manageable throughout Day-0, Day-1, and Day-2.
They allow you to plan and test infrastructure configs before the resources are actually needed and then provision them at the exact time they’re required. These tools also support Day-2 operations, such as easier reversion to a previous state.
6. Use integrated platforms to consolidate processes across different days
Dedicated infrastructure automation platforms make IaC even more powerful. They allow you to consolidate all your infrastructure processes in one place, delivering end-to-end lifecycle management.
For instance, Spacelift runs your IaC tools, enforces governance policies, and gives you clear visibility into your deployed resources. Built-in drift detection and resolution capabilities also ensure your infrastructure stays in its expected state.
Centralized platforms facilitate effective Day-0, Day-1, and Day-2 operations without making you manually connect different tools.
Global payments platform Checkout.com committed itself to the goal of “IaC for everything,” and Spacelift delivered, offering a platform that teams could start using independently with minimal configuration — all within the constraints of the regulated environment Checkout.com operates in.
Spacelift can be used throughout the entire DevOps landscape, as it supports tools such as Terraform, OpenTofu, Pulumi, CloudFormation, Kubernetes, Ansible, and Terragrunt. It provides a default deployment workflow for all of these tools, making it easy for you to handle the CI and CD processes for your infrastructure without needing to write complex workflows.
This default workflow can also be tailored to your needs. You can control what happens between runner phases, making it easy to integrate third-party tools inside your workflows.
If you want to see it in action, check out the video below:
By leveraging Spacelift’s policy-as-code framework based on Open Policy Agent, you can easily build policies that restrict resources or resource parameters, require approvals for runs and tasks, control where to send notifications, or even control what happens when a PR is open or merged. This helps elevate your overall security and governance and minimizes the chances of human errors.
Spacelift’s built-in drift detection and remediation feature will inform you when infrastructure changes are made outside of your IaC processes, allowing you to automatically recover from them.
The quality of your self-service mechanism also influences DevOps maturity, as this is usually one of the greatest bottlenecks that impact software development. With Spacelift, you can build self-service with Blueprints, which are yaml templates for your Spacelift stacks and all associated configurations (policies, contexts, cloud integrations, lifecycle hooks, and more).
In addition, Blueprints can be easily integrated with ServiceNow, meeting your developers where they are and making it easier for them to create infrastructure from the tools they know and use.
If your organization favors Kubernetes, Spacelift also offers its own K8s operator that lets you easily create Spacelift resources from K8s and build workflows for your favorite tools.
Do you plan to implement DevOps in your organization? Or maybe you are seeking ways to improve your processes? Book a demo with our engineering team to discuss your options in more detail.
Day-0, Day-1, and Day-2 operations are the succession of tasks that ensure successful software deployments. Day-0 refers to pre-launch planning, whereas Day-1 is when your release goes live. However, launch day isn’t the end of the software operations lifecycle because Day-2 tasks such as monitoring for errors and applying scalability optimizations are critically important too.
Using integrated infrastructure management platforms that support multiple “days” in one place can help you consolidate your deployment processes. They simplify your DevOps lifecycle and make workflows easier to maintain.
Solve your infrastructure challenges
Spacelift is a flexible orchestration solution for IaC development. It delivers enhanced collaboration, automation, and controls to simplify and accelerate the provisioning of cloud-based infrastructures.