OK, więc ponieważ wszyscy odrzucają odpowiedź, którą napisałem w 2008 roku * ...
Powiem Ci, jak robimy to teraz w 2014 roku. Nie używamy już witryn sieci Web, ponieważ używamy teraz ASP.NET MVC.
Z pewnością nie potrzebujemy do tego modułu równoważenia obciążenia i dwóch serwerów, to dobrze, jeśli masz 3 serwery na każdą utrzymywaną witrynę, ale w przypadku większości witryn jest to całkowita przesada.
Nie polegamy też na najnowszym kreatorze firmy Microsoft - jest on zbyt wolny i zawiera zbyt wiele ukrytej magii oraz jest zbyt podatny na zmianę nazwy.
Oto jak to robimy:
Mamy krok po kompilacji, który kopiuje wygenerowane biblioteki DLL do folderu „bin-pub”.
Używamy Beyond Compare (co jest doskonałe **) do weryfikacji i synchronizacji zmienionych plików (przez FTP, ponieważ jest to szeroko obsługiwane) do serwera produkcyjnego
Na naszej stronie mamy bezpieczny adres URL zawierający przycisk, który kopiuje wszystko z „bin-pub” do „bin” (najpierw wykonuje kopię zapasową, aby umożliwić szybkie przywrócenie). W tym momencie aplikacja uruchomi się ponownie. Następnie nasz ORM sprawdza, czy są jakieś tabele lub kolumny, które należy dodać i tworzy je.
To tylko milisekundy przestoju. Ponowne uruchomienie aplikacji może zająć sekundę lub dwie, ale żądania ponownego uruchomienia są buforowane, więc przestoje są praktycznie zerowe.
Cały proces wdrażania trwa od 5 sekund do 30 minut, w zależności od tego, ile plików zostało zmienionych i ile zmian do przejrzenia.
W ten sposób nie musisz kopiować całej witryny do innego katalogu, ale tylko do folderu bin. Masz również pełną kontrolę nad procesem i dokładnie wiesz, co się zmienia.
** Zawsze szybko przyglądamy się wprowadzanym zmianom - w ostatniej chwili sprawdzamy dwukrotnie, dzięki czemu wiemy, co przetestować i jeśli coś się zepsuje, jesteśmy gotowi. Używamy Beyond Compare, ponieważ umożliwia łatwe porównywanie plików przez FTP. Nigdy nie zrobiłbym tego bez BC, nie masz pojęcia, co nadpisujesz.
* Przewiń w dół, aby to zobaczyć :( Przy okazji nie polecałbym już witryn internetowych, ponieważ są wolniejsze w tworzeniu i mogą powodować poważne awarie z częściowo skompilowanymi plikami tymczasowymi. Używaliśmy ich w przeszłości, ponieważ pozwalały na bardziej zwinne pliki po pliku Wdrażanie. Bardzo szybkie rozwiązanie drobnego problemu i możesz dokładnie zobaczyć, co wdrażasz (oczywiście jeśli używasz Beyond Compare - w przeciwnym razie zapomnij o tym).