Sunday, April 12, 2020

Deployment Patterns very useful in Azure DevOps certification

Traditional approach:

Blue-green deployment pattern

In Azure, creating the Traffic Manager profiles in Azure Traffic loadbalancer and link the endpoints ( Blue, Green ).

Modern approaches :

1. Canary deployment pattern :

Canary release: It comes from the mining industry and in coal mines, miners used to take the canary cage down, it is very sensitive to the toxic gases it could be down the mines and a portion of it would die before the human.

The miners will see this, they will understand there are in trouble.

[ A canary release is a way to identify potential problems as soon as possible without exposing all of your end users to the issue ].

Examples on Canary in coal mines : 






The concept in IT : It is new feature or functionality in the application infront of a small number of ppl, if you find issues with it, we can find out early with the lowest impact.


In this methodology we have three main user types :

    1. Canaries : Users that voluntarily test bleeding edge features as soon as they are available.

                    2.Early adopters: Users that voluntarily preview releases that are considered more refined than canary releases.
3. Users: Consume the products after they pass through the canaries and early adopters.



2.Progressive Exposure Deployments:  Progressive Exposure Deployments also called Ring-based deployment was first discussed in Jez Humbles book "continuous delivery".

They support the production-first DevOps mindset and limit the impact on end users, while deploying and validating changes in production. Impact ( also called the blast radius ) , is  evaluated through observation, testing, analysis of telemetry, and user feedback.

Rings are, in essence, an extension of the canary stage. The canary release releases to a stage to measure the impact. Adding another ring is essentially the same thing.



Scale a Release pipeline to Deploy to Multiple Endpoints.

3. Deploy to Multiple Endpoints and Environments                                                                                                       


Deployment Group : is a logical set of deployment target machines that have agents installed on each one. They can represent normal environments ( Dev, QA, TEST , PROD ). A deployment group is another grouping of agents, much like      an agent pool.















No comments:

Post a Comment