2009-08-31 11 views
9

Mam więc stronę ASP.NET MVC, którą tworzę i nigdy nie miałem przyzwoitej strategii wdrażania, więc wprowadzanie zmian, w szczególności te schematy bazy danych mogą wymagać wielu kroków i czasu.Pomóż mi wymyślić strategię wdrażania

Oto kroki, na które patrzę do zrobienia i chciałbym sugestie, jak to zrobić lub narzędzia (najlepiej za darmo). Możesz wskazać wszystkie brakujące kroki lub rzeczy, które robię źle.

Edit: będę lista narzędzi użyłem rozwiązać każdym etapie

  1. Sprawdź wszystkie kodu z kontroli źródła (z konieczności)
  2. kompilacji debugowania i wersji relese. Wersja wydania wymaga różnych ciągów połączeń w pliku web.config. (MSBUILD)
  3. Wykonaj wszystkie testy jednostkowe
  4. Dla każdej strony (aspx) połącz wszystkie wymienione pliki JS i wbudowany kod w jeden plik. To samo z css
  5. Wykasuj wspomniane pliki JS i CSS.
  6. schematu tworzenia kopii zapasowych bazy danych na żywo i danych
  7. Wdrażanie zmiany schematu bazy danych do serwera żyją
  8. przesłać wszystkie pliki, które są nowe lub zostały zmienione na serwerze.
  9. Wykonaj kopię zapasową całego kodu i mojego depozytu kontrolnego źródła na dysk zewnętrzny i prawdopodobnie online.

Mam szczęście, że moja witryna nie będzie miała odwiedzających od 1 do 16, więc wszystko to można zrobić bez potrzeby przemieszczania serwerów itp.?

Wiem, że moje pytanie jest długie, ale prawdopodobnie pomogłoby to wielu ludziom.

Odpowiedz

2

MSBuild (lub prawdopodobnie jakakolwiek inna technologia budowy) jest prawdopodobnie najlepszym rozwiązaniem do automatycznego wykonywania tych wszystkich zadań.

Możesz użyć MSBuild do zrobienia od 1 do 4 bez żadnych problemów. Mamy update our web configs with MSBuild using an XMLUpdate task, a także uruchamiamy niektóre skrypty awk, aby rozszerzyć niektóre z wygenerowanych przez nas kodów, korzystając z Exec task.

Dla # 5 i # 6, ponownie prawdopodobnie będziesz chciał użyć Exec do wykonania skryptu, aby uzyskać pliki kopii zapasowych i uruchomić je w instancjach produkcyjnych, jednak nie jestem administratorem SQL, więc nie mam pojęcia jeśli jest to najlepszy sposób, lub jeśli istnieją już zadania MSBuild do tego.

Dla rzeczywistego kopiowania plików istnieje zadanie Copy i prawdopodobnie inne, ale może być konieczne skorzystanie z xcopy lub niestandardowego skryptu.

Zarządzanie konstrukcją produktu to wielka robota, ale to właśnie dlatego stworzono technologie takie jak MSBuild i Ant.

0

Próbowałem następujących dla wdrożenia na serwerze produkcyjnym, przy użyciu NAnt do obsługi logiki:

1) Sprawdź folder z najnowszej kompilacji wersji dla numeru wersji.

Jeśli nowsza wersja jest dostępna:

2) Pobierz plik z opracowanej strony internetowej i skryptów bazy danych (patrz niżej).

3) Weź stronę internetową w trybie offline (dodaj app_offline.htm).

4) Zastosuj skrypty bazy danych (patrz poniżej).

5) Umieść stronę internetową (usuń app_offline_pl.htm).


Jeśli chodzi o wdrażanie zmian w schemacie bazy danych, zainspirował mnie some posts by K. Scott Allen. Krótka ich wersja to:

1) Skryptuj każdą nową zmianę do schematu bazy danych (tabele, indeksy, dane źródłowe) i zapisz każdą nową zmianę w osobnych plikach (np. schema-001.0001.sql, schema-001.0002.sql itd.). Przechowuj te pliki w oddzielnym folderze, np. sql\schema.

2) Script misc. obiekty (procedura składowana, funkcje, wyzwalacze i widoki) w osobnych plikach w oddzielnych folderach, np. sql\procedures\uspGetProducts.sql, sql\procedures\uspUpdateProduct.sql, sql\functions\, sql\triggers\, sql\views\

3) Podczas wdrażania: a) Usuń wszystkie misc. obiekty z części 2, b) zastosować zmiany schematu z części 1, które nie zostały wcześniej zastosowane, c) i ostatecznie odtworzyć wszystkie misc. obiekty z części 2.

Te skrypty mogą być wdrażane automatycznie przez np. Brak skryptów na serwerze produkcyjnym.

Powiązane problemy