projectkudu / kudu

Kudu is the engine behind git/hg deployments, WebJobs, and various other features in Azure Web Sites. It can also run outside of Azure.
Apache License 2.0
3.12k stars 655 forks source link

Add support for better compression formats in zipdeploy API #3486

Closed prvyk closed 5 months ago

prvyk commented 1 year ago

Current zipdeploy API uses ZIP archives which are far from optimal or modern compression. In particular, ZIP files compress files individually. Using a more modern format which allows for compressing multiple files together ('solid archiving' or 'deduping') allows for massive space/network traffic savings. For example, a webjob heavy deployment of mine could reduce artifact size from >220M to <9M if 7z is used instead of zip **.

This is in line with ecosystem support and recent developments:

https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/archive-files-v2?view=azure-pipelines#inputs

https://blogs.windows.com/windowsdeveloper/2023/05/23/bringing-the-power-of-ai-to-windows-11-unlocking-a-new-era-of-productivity-for-customers-and-developers-with-windows-copilot-and-dev-home/

** Comparing default Azure devops artefact to 7-zip compression with maximal settings. 7zip beats zip however on every setting. RAR maximal settings is about 8M too.

jvano commented 5 months ago

Hi

If the problem persists and is related to running it on Azure App Service, please open a support incident in Azure: https://learn.microsoft.com/en-us/azure/azure-portal/supportability/how-to-create-azure-support-request

This way we can better track and assist you on this case

Thanks,

Joaquin Vano Azure App Service