- Automation for entire application lifecycle.
- Allows you to detect issues & bugs early on in development lifecycle
- It takes more time for issues to resolved when they are detected too late
- Re-testing needs to be carried out.
- Solution:
- Run tests as soon as developer makes a commit to repository
- Based on a schedule that runs e.g. every day
- E.g.
- Commit -> Version control --triggers--> build ---triggers--> deployed to a test environment --triggers--> test cases are automated --triggered--> final results -> build is marked as success or failure
- Tools are important e.g. Jenkins, Atlassian Bamboo, TeamCity, Azure Pipelines
- Multi-configuration builds
- e.g. build app for both debug and release configurations on both x86 and x64 platforms.
- Compliments your continuous integration process.
- Automates deployment of your changes after build.
- Track of your release process quality
- Visualizations about the quality of all the releases pipeline. e.g. adding a dashboard widget which shows the status of every release.
- Release Notes, functional and technical documentation
- Generate Release Notes Build Task (VSTS)
- WIKI Updater Tasks (VSTS)
- 💡 Treat release documentation & manuals as source-code
- When the product changes, the documentation needs to change as well
- Multi-configuration deployments
- e.g. for different geographic regions.
- Allows you to separate your functional release from your technical release
- Decide to have a feature on runtime; enable/disable a feature based on a boolean
- Gradually deploying and validating changes in production
- Impact
- Also called blast radius
- evaluated through observation, testing, analysis of telemetry, and user feedback
- E.g.:
- Canaries* who voluntarily test bleeding edge features as soon as they are available.
- Early adopter* who voluntarily preview releases, considered more refined than the canary bits.
- Users who consume the products, after passing through canaries and early adopters.
- Deployment slots
- Allows you to create a new deployment for the web app.
- ❗ Requires Standard or higher plan to be able to use deployment slots.
- App content and configurations elements can be swapped between two deployment slots, including the production slot.
- Use-cases:
- Create staging environment easily in Web Apps
- Validate in staging before swapping to production
- You can apply Blue Green deployments
- Zero downtime deployment with a auto swap
- Allows you to ensure that all instances of the slot are warmed up before being swapped into production
- Click on slot => App settings => Auto swap: on
- Create staging environment easily in Web Apps