Arcade Services Rollout: Checklist & Process

by Alex Johnson 45 views

Introduction to the Rollout Process

This document details the Arcade Services repository rollout process, a critical procedure for updating and maintaining the services within the .NET ecosystem. It serves as a comprehensive rollout checklist for the responsible individual, ensuring a smooth and auditable deployment to production. The primary goal is to provide a clear, step-by-step guide, minimizing risks and ensuring the stability of the services. By adhering to this process, we can guarantee a consistent and reliable user experience. The rollout involves several key stages, from initial preparation to final verification, all meticulously documented to maintain a complete audit trail. Each step is designed to be straightforward, allowing for efficient execution and quick identification of potential issues. The ultimate aim is to deliver updates efficiently while preserving service integrity. This structured approach is essential for the continuous improvement and reliability of Arcade Services. The rollout strategy emphasizes the importance of following a well-defined process to minimize disruptions and maintain service quality. This meticulous approach guarantees a smooth transition of updates to the production environment, which is vital for providing reliable services to users.

Build Status Verification: Ensuring a Solid Foundation

The first step in the rollout checklist is to verify the build status of two crucial pipelines: the dotnet-arcade-services-daily and the arcade-services-official. This initial check is paramount to ensure that the codebase is stable and ready for deployment. Checking the build status helps catch potential issues early on, preventing problematic code from reaching production. It involves accessing the Azure DevOps pipelines and reviewing the latest build results. Specifically, the dotnet-arcade-services-daily pipeline provides a daily overview of the build health, indicating any integration problems or breaking changes. The arcade-services-official pipeline represents the most recent, verified build that’s ready for deployment. The goal is to confirm that the builds are successful and free of errors before proceeding with the rollout. Any failures in the builds must be addressed and resolved before the deployment to ensure that the rollout is based on a stable foundation. This proactive approach significantly reduces the risk of deploying faulty code and causing disruptions to the services. Understanding and confirming the build status is the foundation for a successful and stable rollout.

Rollout Preparation: Setting the Stage for Deployment

Rollout preparation is the second critical phase in the rollout checklist. This stage encompasses several critical tasks designed to set the stage for a seamless deployment. It begins with assigning the issue to the appropriate functional area (FR) and the current sprint within the project management system. Next, a rollout pull request (PR) must be created, which involves identifying a specific commit on the main branch to roll out. A new branch, named rollout/YYYY-MM-DD, is created from this commit. This new branch serves as the staging area for the deployment. Subsequently, a pull request (PR) is created on GitHub, targeting the production branch from the newly created rollout/YYYY-MM-DD branch. The PR should be clearly named, following the format [Rollout] Production rollout YYYY-MM-DD. It's crucial to include a link to the original issue in the PR description, establishing a clear link between the task and the change. After creating the PR, the next step is to merge it without squashing. This maintains a clear history of changes and simplifies debugging if any issues arise. Following this merge, it is essential to verify that a production => main PR is opened in the arcade-services repository. This PR should only contain the merge commit, ensuring no additional changes are introduced. Importantly, this PR should not be merged yet. Lastly, confirm that the build is green and that it pauses at the Approval stage. This preparation ensures that the rollout process is correctly set up before starting the actual deployment.

Executing the Rollout: Deployment and Monitoring

The actual rollout involves several key steps to deploy the changes to production and monitor the process for any issues. After the preparation phase is complete, the Approval stage of the rollout build must be approved. This action triggers the deployment process. As the deployment proceeds, continuous monitoring of the rollout build is essential. During the rollout, any failures or issues must be carefully tracked. The provided PCS exceptions query provides valuable insights into potential exceptions and problems. Any encountered issues should be documented in the original issue or a linked, dedicated issue for detailed tracking. Once the deployment build is successful, the production => main PR in arcade-services should be merged without squashing. The final step is to close the original issue. This closing should include a summary of any issues encountered during the rollout. The whole process should be done carefully, ensuring that the services are updated with minimal disruption.

Rollback Procedures: Handling Potential Failures

While the primary goal is a successful rollout, a robust rollback strategy is essential. In the event of a failure, the first step is to announce the issue on the Rollout channel, which is designed to inform the team and other stakeholders immediately. Then the next step is to notify all the partners involved in the deployment. The rollback can then be initiated by re-running a previous rollout's Deploy stage. After the rollback, you should validate that the services are running as expected. Lastly, announce the successful rollback on the Rollout channel and notify partners that the rollback is finished.

Useful Links for Reference


For more detailed information on deployment strategies and best practices, consider visiting the Microsoft Learn website. You'll find extensive resources and documentation related to software deployment and operations. Microsoft Learn offers comprehensive guides and tutorials to enhance your understanding of the process.