In this requirement. Dedicated Application Gateways and App services are needed without the usage of staging slots as multiple hardening rules have to be tested where a dedicated application gateway is chosen so that no one will mess with the production application gateway for testing.
Pipelines are integrated with GitHub Repo for CI / CD, and it deploys to UAT where they can be tested if it gets approved after testing it will be deployed to Production.
- Implementing Application Gateway with Web Application Firewall – Azure365Pro.com
- Restricting App Service through Application Gateway – Azure365Pro.com
![](https://www.azure365pro.com/wp-content/uploads/2022/10/Copy-of-WordPress-feature-image-1024x536.png)
Let’s get started with a service connection. So that pipelines can have full permission over the subscription to modify resources in this case.
![](https://www.azure365pro.com/wp-content/uploads/2023/04/image-1-1024x721.png)
![](https://www.azure365pro.com/wp-content/uploads/2023/04/image-2-1024x484.png)
![](https://www.azure365pro.com/wp-content/uploads/2023/04/image-3-1024x476.png)
![](https://www.azure365pro.com/wp-content/uploads/2023/04/image-4-1024x624.png)
Add a Service Connection for GitHub –
![](https://www.azure365pro.com/wp-content/uploads/2023/04/image-7-1024x454.png)
Let’s create a new release pipeline.
![](https://www.azure365pro.com/wp-content/uploads/2023/04/image-6-1024x458.png)
Utilizing Source Type GitHub Artifact
![](https://www.azure365pro.com/wp-content/uploads/2022/10/image-33.png)
For UAT App Service Deployment
![](https://www.azure365pro.com/wp-content/uploads/2023/04/image-21-1024x496.png)
Post Deployment Approval is set
![](https://www.azure365pro.com/wp-content/uploads/2022/10/image-36-1024x471.png)
Scenario #1 – For Production App Service Deployment ( PHP 8.0- Web Application is used in this scenario)
![](https://www.azure365pro.com/wp-content/uploads/2022/10/image-83-1024x590.png)
Scenario #2 – For Production App Service Deployment (Yii PHP Framework Web Application is used in this scenario collecting the files published from Artifact)
![](https://www.azure365pro.com/wp-content/uploads/2022/10/image-82-1024x581.png)
Let’s see how to Publish Artifacts So that Azure Pipelines can pick from above
![](https://www.azure365pro.com/wp-content/uploads/2022/10/image-84-1024x545.png)
Installing composer for YII framework to use
composer install
composer dump-autoload
![](https://www.azure365pro.com/wp-content/uploads/2022/10/image-85-1024x502.png)
![](https://www.azure365pro.com/wp-content/uploads/2022/10/image-86-1024x531.png)
![](https://www.azure365pro.com/wp-content/uploads/2022/10/image-89-1024x289.png)
![](https://www.azure365pro.com/wp-content/uploads/2022/10/image-87-1024x485.png)
Scenario #3 – For Production App Service Deployment (Node Js Web Application Front End is used in this scenario)
![](https://www.azure365pro.com/wp-content/uploads/2022/10/image-81-1024x579.png)
Let’s see how to Publish Artifacts So that Azure Pipelines can pick from above
![](https://www.azure365pro.com/wp-content/uploads/2022/10/image-90-1024x402.png)
![](https://www.azure365pro.com/wp-content/uploads/2022/10/image-91-1024x418.png)
![](https://www.azure365pro.com/wp-content/uploads/2022/10/image-93-1024x499.png)
![](https://www.azure365pro.com/wp-content/uploads/2022/10/image-94-1024x433.png)
$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
![](https://www.azure365pro.com/wp-content/uploads/2022/10/image-95-1024x476.png)
![](https://www.azure365pro.com/wp-content/uploads/2022/10/image-96-1024x433.png)
The artifact location and zip name can be found here.
![](https://www.azure365pro.com/wp-content/uploads/2022/10/image-97-1024x418.png)
You can see releases shown below ,
![](https://www.azure365pro.com/wp-content/uploads/2022/10/image-32-1024x419.png)
Now if you create a new release
First, it deploys to UAT, and after approval, it gets to the Prod App service
![](https://www.azure365pro.com/wp-content/uploads/2022/10/image-37-1024x231-1.png)