Nie jestem pewien, czy jest to właściwy sposób, aby zadać to pytanie, ale w zasadzie oto, co chciałbym zrobić:
1.) Wciśnij zestaw zmian na stronie w IIS.
2.) Nie przeszkadzaj użytkownikom.
3.) Być w stanie wycofać się bez wysiłku.
Tak więc musi zdarzyć się kilka rzeczy:
1.) Sesja Out of Proc - obsłużona
2.) Out of Proc cache - obsłużona
Pozostają więc pytania:
1.) Jak powstrzymać użytkowników przed zakłócaniem? Jeśli po prostu załaduję pliki do kosza, aplikacja uruchomi się ponownie i zajmie ponad 10 sekund, aby wrócić do trybu online
2.) Jak mogę bez problemu cofnąć?
Myślałem, że możliwym rozwiązaniem byłoby utworzenie dwóch witryn w IIS, jednej publicznej i jednej prywatnej. Przesłane filmy przechodzą do prywatnych i rozgrzewają się. Po rozgrzewce strony są zamieniane. Cofanie wymaga tylko zamiany na prywatne bez przesyłania.
To teoretycznie wydaje się rozsądne, ale nie jestem pewien mechaniki. Jakieś pomysły?
Odpowiedzi:
Oto jak podejdę do tego problemu - pamiętaj, że nie robiłem tego wcześniej, to tylko koncepcje, które przetestowałem trochę w moim środowisku programistycznym. Powinieneś być w stanie skonfigurować całkiem solidne środowisko, używając tego i niektórych skryptów w swoim wybranym języku. Zasadniczo zamierzamy skonfigurować środowisko równoważenia obciążenia getta i używać go do przełączania między nową witryną a starą witryną.
Aby go skonfigurować, będziesz potrzebować:
Zainstaluj ARR na początek.
Skonfiguruj 3 strony internetowe w IIS:
http://192.168.1.1/
. To jest także strona ARR. Wystarczy ustawić pusty katalog, aby wskazywał, i umieścić go we własnej puli aplikacji. Skonfiguruj pulę aplikacji, aby nie przekraczała limitu czasu zgodnie z tymi instrukcjami .http://192.168.1.2:8080
ihttp://192.168.1.3:8080
. Powinny także znajdować się we własnych pulach aplikacji i wskazywać na różne katalogi w systemie plików (ale oba katalogi mają zwykle tę samą zawartość)Po zainstalowaniu ARR w Menedżerze IIS pojawi się nowa kategoria o nazwie „Farmy serwerów” - kliknij ją prawym przyciskiem myszy i utwórz nową farmę.
{SERVER_PORT}
nie pasuje do 8080W tym momencie masz podstawy tego, czego potrzebujemy, aby spełnić twoje żądanie. Jeśli przejdziesz do niego
http://192.168.1.1/
, dostaniesz swoją witrynę z witryny 1 lub witryny 2, ale będzie zupełnie bezproblemowo, że istnieją inne witryny.Teraz, co możesz zrobić, gdy chcesz wdrożyć nową wersję aplikacji, to:
Narzędzie do wdrażania sieci wchodzi w grę, gdy mówisz o tym, że chcesz to wszystko napisać. Ułatwia to utworzenie pakietu dla aplikacji i wdrożenie go z wiersza poleceń. Możesz również łatwo wycofać ten pakiet, jeśli występują problemy. ARR jest również skryptowalny przy użyciu
Microsoft.Web.Administration
bibliotek DLL.Jeszcze jedna rzecz - jeśli faktycznie korzystasz z systemu Windows 2008 R2 (czyli IIS 7.5), zapoznaj się z modułem podgrzewania aplikacji - powinno to ułatwić tobie również jego rozgrzewkę.
źródło
MattB wyrzucił go z wody. +1 Odpowiem z większą ilością szczegółów, ale nie chcę brać jego punktów. Dodam do tego, co powiedział.
Mam konfigurację podobną do opisanej przez niego i działa świetnie. ARR to droga, nawet na jednym serwerze.
Chciałbym jednak dodać kilka rzeczy.
Utwórz 2 witryny, jak zalecił Matt. Nazwij ich jak twoja strona.com01 i twoja strona.com02.
Utwórz 2 reguły przepisywania adresów URL. Jeden dla www.twojadomena.com i jeszcze jeden inscenizacja.twojadomena.com. Do produkcji użyj {HTTP_HOST} z wartością (^ www.twojadomena.com $) | (twójIP). (lub dowolne wiązanie, które wolisz) Do przemieszczania użyj {HTTP_HOST} z wartością (^ staging.yourdomain.com $). Zadzwoń do reguł yoursite.com i staging.yoursite.com.
Powiąż regułę = twoja strona.com z witryną = twoja strona.com01 i reguła = staging.twojastrona.com z witryną = twoja strona.com02.
Skonfiguruj FTP na staging.yoursite.com.
Ruch produkcyjny będzie teraz kierowany do reguły = staging.yoursite.com i Site = yoursite.com01. Chwiejność na odwrót.
Możesz wdrożyć do inscenizacji w dowolnym momencie, przetestować, przed spinupem, przetestować innych ludzi itp. Zrób to w ciągu dnia, to nie ma znaczenia. Wdróż za każdym razem na tym samym koncie FTP. Działa świetnie z serwerami kompilacji.
Następnie, gdy będziesz gotowy do uruchomienia, po prostu dokonaj 3 zmian: - przenieś powiązanie FTP z yoursite.com02 na yoursite.com01 - zmień Przepisuj URL Regułę yoursite.com, aby wskazywało na yoursite.com02 - zmień Przepisowanie Przepisuj URL. twoja witryna.com, aby wskazać twoja witryna.com01
Teraz masz zero przestojów, natychmiastowe przełączanie i natychmiastową funkcję wycofywania!
Jedyne, co musisz wziąć pod uwagę, to stan sesji poza procesem. Upewnij się, że serwer stanu akceptuje oba identyfikatory witryn, aby nie stracić stanu sesji podczas wymiany.
Pamiętaj również, że jest to tylko sieć, a nie baza danych.
Do tworzenia skryptów użyj Edytora konfiguracji. Wprowadź odpowiednie zmiany, a następnie kliknij „Wygeneruj skrypt”. Otrzymasz kod C #, appcmd lub AHAdmin.
Mam to już od kilku miesięcy z interfejsem strony do wymiany instancji i nigdy nie patrzę wstecz. To sprawia, że wdrożenia są tak odświeżające w porównaniu do tradycyjnych.
źródło