Table of Contents

    Release Strategy and Pipeline Implementation

    Releasing Application
    • Create a release strategy.

    • Plan the first release.

    • Release the application.

    Release Strategy

    Details to be present in the strategy are:

    • Asset and configuration management strategy

    • Technology details

    • Deployment pipeline implementation plan

    • Test environment details

    • Steps to manage configuration

    • External system interface details (how and at what stage are they tested).

    Release Strategy...
    • Disaster recovery plan

    • Service-level agreements

    • Production sizing and capacity planning

    • Archiving strategy

    • Steps to handle defects

    • Ways to handle upgrades, including data migration

    • Application support management

    Release Plan

    Release plan details the steps to:

    • Deploy the application first time.

    • Smoke-test the application and its services.

    • Back out changes, if the deployment goes wrong.

    • Backup and restoration of the application’s state.

    Release plan details the steps to:

    • Upgrade without disturbing current state.

    • Restart or redeploy when the application fails.

    • Monitor the application.

    • Perform data migrations.

    Release plan contains:

    • Information on the location of the logs.

    • Description of the information maintained in logs.

    • Issue log of problems and solutions from previous deployments.

    Enabling Application Release

    To ensure the application is releasable at any given time:

    • Hide new functionality until changes are done.

    • Perform incremental changes, that is releasable.

    • Define components that change at a different phase.

    • Use branch by abstraction to make large-scale changes.

    Implementing Pipeline

    To implement a pipeline:

    • Identify the value stream (the processes of a project).

    • Automate build and deployment process.

    • Automate code analysis and tests.

    • Evolve the pipeline, based on the metrics collected.

    Pipeline Practices
    • Build the binaries only once.

    • Create a script for each stage in the pipeline.

    • Choose right technology to deploy the application.

    • Deploy in the same way to all environments.

    Pipeline Practices...
    • Deployments must be smoke-tested.

    • Deploy into a production-like environment.

    • Each change should propagate to the pipeline instantly.

    • If any part of the pipeline fails, stop the line.

    • Developers and operations must collaborate on deployment process.

    • Evolve your deployment system incrementally.

    Check if Project Uses CD?

    Ways to determine if a project is using the concepts of CD:

    • At any given time, a particular version of the software can be deployed to any environment (ready to deploy software).

    • Automated feedback received on any change made.