2014-12-22 8 views
9

Mam dostosowany plik deploy.cmd, którego używam do wdrażania mojej witryny Azure. Robi kilka niestandardowych rzeczy, takich jak instalowanie nodejsowych wersji Maszynopisu i miniarki, a następnie uruchamianie testów jednostkowych, przed zbudowaniem i wdrożeniem samej witryny.Bardzo wolne wdrożenia Kudu na witrynach Azure

Problem, który napotykam, polega na tym, że uruchomienie tego skryptu zajmuje więcej czasu, przynajmniej na Azure. Na moim dev laptopie uruchomienie skryptu deploy.cmd trwa około 90 sekund. Ale kiedy wypycham go na platformę Azure, trwa to około 15-20 minut (czasem nawet ponad 30-40 minut). Nie dziwię się, że trwa dłużej na serwerze - I am trochę zaskoczony, że trwa to ponad 10 razy dłużej.

Oto okrojona wersja pliku dziennika dla niedawnego rozmieszczenia:

Command: deploy.cmd 
18:54:16.89 - Starting deploy script 
18:54:19.92 - Installing typescript 
18:54:30.90 - Installing minifier 
18:54:44.62 - Restoring Nuget Packages 
18:55:48.25 - Building solution 
18:59:09.12 - Building test projects 
19:04:03.67 - Running Payboard.Common.Tests.dll 
19:04:19.80 - Running Payboard.Model.Tests.dll 
19:04:25.25 - Running Payboard.Services.Tests.dll 
19:06:29.72 - Running Payboard.Integrations.Tests.dll 
19:06:49.46 - Running Payboard.Web.Tests.dll 
19:07:56.99 - Beginning KuduSync 
19:08:03.16 - Finished successfully. 

Oczywiście to dwa etapy budowy, który biorą większość czasu. Przypuszczam, że mógłbym je połączyć w jeden etap kompilacji - choć nie jestem całkowicie pewien, jak to będzie działać z KuduSync.

Jakieś inne sugestie, jak to przyspieszyć? Czy jest to w zasadzie po prostu oczekiwane?

+0

Czy to jest strona internetowa działająca na poziomie podstawowym, podstawowym lub standardowym? Jaki jest rozmiar instancji? Może istnieć wąskie gardło przetwarzania. Więcej szczegółów tutaj: http://azure.microsoft.com/en-us/pricing/details/websites/ –

+0

Jest to standard z pojedynczym rdzeniem. Spróbuję podbić to do podwójnego rdzenia. –

+0

Po prostu do góry. Podnoszenie rozmiaru instancji "Standardowej" do podwójnego rdzenia nie wydawało się pomocne. Moje ostatnie wdrożenie zajęło 30 pełnych minut. –

Odpowiedz

0

Podejrzewam, że ze wzmianką o nodejs, jest kilka pakietów npm pobranych jako część kompilacji. Na twoim komputerze lokalnym są już obecne, ale Kudu za każdym razem przywraca je w czystym folderze.

Po drugie, około 5 minut twojego czasu budowy spędzasz na budowaniu (i prawdopodobnie uruchomieniu) projektów testowych. O ile nie jest to celowe i wymagane w przepływie pracy z wdrożeniem, polecam wyłączyć, jeśli zostanie wyłączone przez flagę.

+0

Tak, lazur nie poradzi sobie z wieloma małymi plikami pakietów węzłów. Jego system pamięci masowej jest wolny. –

Powiązane problemy