I have recently setup deployment from Azure DevOps (onprem) to EPiServer-DXP. I have followed this article: https://world.episerver.com/blogs/anders-wahlqvist/dates/2019/10/azure-devops-and-episerver-deployment-api/
- Deploying the package takes about 15 seconds.- Deploying to preproduction takes 25 minutes.
Is 25 minutes reasonable? Or am I doing something wrong?
Deploying to the integration-environment with the "Azure App Service Deploy"-task takes about 1 minute.
My experience is that the deployment can be very slow sometimes. Its both depending on how many other things going on in Azure, but also how long time your application takes to start. I was in a project that had to many available routes specified in the ViewEngine (to handle feature folders) that took very long time to start. When fixing that issue we could deploy the site 10 min faster. So it could also be good to make sure that the site your are building can start fast. But the end of the day... deploying to DXP is not fast. Even if you just move your application from ex Integration to Preproduction. And if you deploy both CMS and Commerce it takes even longer time.
It is also a big difference between deploying a WebPackage via "Azure App Service Deploy" or a NUGET package via Deployment API. NUGET package via Deployment API takes alot longer time. That is because it will setup the application on a slot first before it "move" it to the Integration server. The "Azure App Service Deploy" is faster because it "just install" the WebPackage to the IIS website. I could be wrong but this is how I see it at the moment. But this just rely when deploy to Integration. When you "move" your appliction from ex "Integration" to "Preproduction" there is no difference if you have used WebPackage or Nuget from the begining.
In all my project where we use DXP, we always use WebPackage deployment to Integration because it is mutch faster. Life is short. We don´t have time to wait...right!
A tip if you dont want to create your own PowerShell scripts, to deploy to DXP, is to use Epinova DXP Deployment extension in Azure DevOps. You can install it from VisualStudio marketplace. https://marketplace.visualstudio.com/items?itemName=epinova-sweden.epinova-dxp-deploy-extension
The documentation is found in github: https://github.com/Epinova/epinova-dxp-deployment/tree/master
I have also created a serie of blogpost that describe how to use it: https://www.epinova.se/nyheter-och-blogg/utvecklarbloggen/2020/epinova-dxp-deployment-part-1-introduction/
Thank you very much for your detailed answer. I will have a look at the Epinova extension.
The deployment from DevOps to DXP is very simple and quick to setup.
All you need to do is to create a pipeline and Service connection in project settings. For Service connection, you need service principle information that will be provided by Episerver support. The pipeline is easy to set up against code check-in on a certain branch and deploy on integration environment through this will take roughly around 4 minutes