we have around 30 CI/CD hosted in 3 regions. every time we are triggering CD manually because few of the app service are directly deploying to prod, few of them through app staging slot.
how to automate this one the below one.
we don't want to go individual app service then change the staging slot into prod. FYI- we are having 20 + app service and app slots.
there are 30 CD's, going to individual CD then triggering.
Can someone please suggest any idea to automate or any 3 party tools?
Related
We have created a pipeline to restart multiple VM services in correct order. Within Azure Logic App I can create a release, but want to deploy the same release daily. How can I do this in Logic Apps?
I current use logic apps to shutdown and start VMs daily as they are not used during silent hours but need to deploy restart services pipeline regularly.
From the picture you can see it only creates release not deploys it. I need it to only deploy to CL04 stage daily not all three stages and really don't need a new release every day, just redeploy release 7 to the same environment that the start VM logic app is running on daily.
but want to deploy the same release daily.
You can achieve this if you use Recurrence Trigger in your Logic app workflow.
For complete information you can go through this document.
On Azure Cloud Portal I have one App Service Plan and under that I have one App service in which I have created some Deployment Slots, you can refer the below screen shot.
I have provided traffic % as per the requirement, now what happening is when I am triggering a request to my main App Service which is "wa-45210-jira-stg1-win" then it is routing through properly but when others are trying to trigger the request to same App service then it is getting redirected to other deployment slots like "wa-45210-jira-stg1-win-test". Please refer the screen shot below
Here the expectation are it should redirected to the desired app service for which the request has been triggered so that I can have dedicated deployment slots for particular environment.
I think traffic is getting divided because of the traffic % defined. If one app service is occupied then automatically the request will get redirected to other deployment slot which is not expected.
Can anyone suggest me What should I do in order to achieve this?
My goal is to create some deployment slots or something like that in one single app service so that I can manage Dev, Test & Stage environment related stuff in one App service and therefore I can save the cost.
Can anyone suggest me What should I do in order to achieve this? My
goal is to create some deployment slots or something like that in one
single app service so that I can manage Dev, Test & Stage environment
related stuff in one App service and therefore I can save the cost.
Yes, we can achieve the above requirement . To make sure that you have selected the correct target deployment slot which need to be trigger.
For example:-
Also make sure that ,
production is your target slot and that all settings in the source slot are setup exactly as you want them in production before swapping
an app from a deployment slot to production.
For complete configuration please refer this MICROSOFT DOCUMENTATION|Set up staging environments in Azure App Service
For more information please refer this MS Q&A as suggested by #ajkuma-MSFT.
In azure you can have slots that you can deploy your web app to.
For example you can have Production and Staging slots.
You can deploy to Staging then test if everything is OK and if so swap Staging with Production slot.
I believe that behind the scenes those slots are just 2 sites in IIS.
My idea is to just swap bindings and rename the websites so the Staging slot/website will get http://prod-superapp.com binding and the Production slot/website will get http://stg-superapp.com binding then rename Production website to Staging and Staging to production.
The last step is needed so that when we deploy the next time we deploy to the Staging slot again.
Can you think of anything better than this? Do you find any problems with that approach that I am currently not aware of? I know that there can't be two site with the same binding running at the same time so that scheme will have some downtime while the whole process completes.
I've got few Cloud Services that have both Production and Staging slots. Since I hadn't deploy the environment and I'm not aware of what exactly stands behind them - can I delete the Staging slots to lower the cost because they are billed the same as Production slots? And if I download the config files, would I be able eventually to import them back in Azure?
You can directly deploy to the production slot of a Azure Cloud Service. If you have more than one role instance (you are running multiple role instances to get the stated SLA right?), Azure will automatically upgrade each role instance independently of one another.
While this saves you a little bit of money by not deploying to the staging slot, we found the staging slot deployment to work with our continuous integration strategy better.
Reference : How to Manage Cloud Services
Can I delete the Staging slots to lower the cost because they are
billed the same as Production slots?
You should be able to delete staging slot without impacting the production slot. However if you have some users that are connecting to the staging slot, they will no longer be able to connect to the application once you delete the deployment from staging slot.
And if I download the config files, would I be able eventually to
import them back in Azure?
Merely download the config file is not going to help as you would also need the package file. What you should do instead is invoke Get Deployment Service Management API REST operation. What it will do is copy both the config file and package file in a storage account of your choice.
I'm trying to use webpack with my (fairly large) NodeJS app, deploying as a Windows Azure App Service using Git continuous deployment.
I customized my kudu deploy.sh script to run webpack, but it takes several minutes to webpack on Azure App Service, and the app is unavailable during that time. On my dev laptop, running webpack only takes about 30s (which I could accept as a deployment outage time), but I'm guessing the laptop using an SSD is making this run much faster?
If I was using a deploy script, I'd just run the webpack on my dev machine and push the results to the server, but I'm using git for continuous deployment, and I don't want to commit constantly-changing webpack-generated code to the Git repo.
Is there any way to run webpack-on-deploy with Azure App Service-base NodeJS apps without such a large outage time while deploying?
Instead of reducing deployment outage time try leveraging deployment slot to prevent the app unavailable during that time.
Per Azure's documentation,
Deploying a web app to a slot first and swapping it into production
ensures that all instances of the slot are warmed up before being
swapped into production. This eliminates downtime when you deploy your
web app. The traffic redirection is seamless, and no requests are
dropped as a result of swap operations. This entire workflow can be
automated by configuring Auto Swap when pre-swap validation is not
needed.
How to add a deployment slot to a web app, please refer https://learn.microsoft.com/en-us/azure/app-service-web/web-sites-staged-publishing for details.