Skip to content

Commit

Permalink
Add canary and shadow deployment stategies #36
Browse files Browse the repository at this point in the history
  • Loading branch information
pintergreg committed Nov 15, 2024
1 parent 872101e commit 1eac985
Show file tree
Hide file tree
Showing 4 changed files with 54 additions and 0 deletions.
35 changes: 35 additions & 0 deletions lectures/16_automatization.md
Original file line number Diff line number Diff line change
Expand Up @@ -398,6 +398,7 @@ also known as daily build
::::::::: {.column width="70%"}
::: {.text-smaller}
- two servers are maintained ("blue" and "green")
- [expensive]{.text-smaller}
- at a given time, only one server is handling public request
- the other can be accessed only from a private network
- changes applied to the non-live server and verified
Expand All @@ -411,6 +412,40 @@ also known as daily build
::::::::::::


## shadow deployment

![](figures/shadow_deployment.drawio.svg){width=650}

- two servers are maintained ("live" and "shadow")
- for testing the performance and stability requirements
- on success, the release can be deployed to the live server as well
- specialized strategy, complex and (relatively) expensive to set up


## canary deployment

:::::::::::: {.columns}
::::::::: {.column width="60%"}
- deployment in an incremental fashion
- starts with a small number of users
- and continues until 100% is reached
- allows to test updates in live environment
- on small groups of users
- before deploying to many users
- may involve telemetry
:::::::::
::::::::: {.column width="40%"}
![](figures/canary_deployment.drawio.svg){width=400}

:::::::::
::::::::::::

::: {.fragment .mt-2}
**A/B testing** is more of a testing approach than a deployment technique, but it works similarly to canary deployment.
It involves reviewing two versions of updates in small set of users to identify which version perform better. [@kazim2023what]
:::


## devops

:::::::::::: {.columns .column-gapless}
Expand Down
4 changes: 4 additions & 0 deletions lectures/figures/canary_deployment.drawio.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 4 additions & 0 deletions lectures/figures/shadow_deployment.drawio.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
11 changes: 11 additions & 0 deletions lectures/references.bib
Original file line number Diff line number Diff line change
Expand Up @@ -927,3 +927,14 @@ @misc{fowler2024continuous
day = {18},
note = {[Accessed 15-11-2024]},
}
@misc{kazim2023what,
author = {Washija Kazim},
title = {What Is Software Deployment? Process and Best Practices},
howpublished = {\url{
https://learn.g2.com/software-deployment
}},
year = {2023},
month = {5},
day = {31},
note = {[Accessed 15-11-2024]},
}

0 comments on commit 1eac985

Please sign in to comment.