A look at possible application deployment strategies.
Modern software development and user experience requirements compel organizations to keep their software offering updated frequently. This can be as fast as application deployments happening daily (or even more frequently). It is critical to employ an appropriate application deployment strategy that suits the needs of app performance, load, high availability requirements, user experience requirements, etc.
Developing an application deployment strategy
An application deployment strategy is a way to change or update an application in a production environment in a controlled manner. This can be important for many reasons, including the following:
- Avoiding application downtime
- Enabling new functionality to be tested in production without impacting customers
- Limiting the impact of potential issues in production to a subset of users
- Enabling rapid rollback to the previous version, if issues are found
There are many possible deployment strategies. In general, they depend on running multiple instances of the application and managing how the various instances are updated. These are three recommended strategies:
- Rolling: Deploy a new release with no downtime by incrementally updating all the instances in a sequential manner.
- Blue-Green: Deploy a new release to an environment identical to — and isolated from — current production for quicker rollbacks and ease of testing.
- Canary: Deploy a new release incrementally to the production environment, gradually replacing the older version of the application with the newer one, gating increments with a test to reducing risks.
App deployment and IBM Cloud Continuous Delivery
IBM Cloud Continuous Delivery supports the rolling, blue-green and canary deployment strategies. You can deploy containerized or non-containerized workloads using these strategies to a Kubernetes cluster or virtual machines (VM), respectively.
The deployment strategies can be configured in a few clicks by using a guided setup to create a toolchain based on a template included with the Continuous Delivery service, which also provides Tekton Pipelines, Git Repos and Issue Tracking, Code Risk Analyzer, DevOps Insights and the Eclipse Orion Web IDE in the Cloud.
The toolchain templates also take advantage of other IBM Cloud services, such as IBM Cloud Secrets Manager, IBM Key Protect for IBM Cloud, IBM Cloud Object Storage and IBM Cloud Container Registry. Users can customize the toolchain to use external tools that enterprises have standardized upon, such as Git providers and artifact stores. Users can also add triggers, policies under pipelines and configuring quality metrics as per your requirements.
- Learn more about IBM Cloud Continuous Delivery.
- Tutorial to develop and deploy an application on Kubernetes using deployment strategies, with detailed steps.
- Tutorial to develop and deploy an application on virtual machines using deployment strategies, with detailed steps.
- Discover IBM Cloud Continuous Delivery toolchain templates, including Developing and Deploying a secure app with DevSecOps best practices.
- If you have any questions, get help directly from the IBM Cloud development teams by joining us on Slack.