7

Mamy wiele środowisk ciągłej integracji Hudson z zautomatyzowanymi kompilacjami i testami, jednak nie przeprowadzamy żadnych automatycznych wdrożeń do testowania środowisk.Wdrażanie aplikacji sieci Web ASP.NET z Hudson Build/CI Server

Zastanawiam się, jak inne zespoły wdrażają aplikacje internetowe ASP.NET. Nasze kompilacje pakują artefakty kompilacji z niektórymi skryptami, aby zatrzymać/uruchomić IIS, a następnie musimy przejść do każdego serwera i uruchomić instalator, aby zainstalować aplikację internetową.

To staje się wąskim gardłem w naszym procesie i szukałem sugestii, aby uprościć i/lub zautomatyzować proces bez konieczności logowania się do każdego serwera, aby zainstalować najnowszą wersję.

+1

Czy kiedykolwiek używasz MSDeploy i Hudson? Jeśli tak, możesz podzielić się opiniami na temat sympatii, antypatii i konfiguracji? –

Odpowiedz

4

Jeśli używasz środowiska opartego na systemie Unix/Linux, możesz wypróbować Fabric lub Capistrano. Pozwalają na automatyczne wdrażanie aplikacji internetowych.

Edit:

Jeśli w systemie Windows, może chcesz sprawdzeniu Web Deployment Tool for IIS. Wygląda na to, że wciąż znajduje się w fazie "Przeglądu technologicznego", ale może ci się przydać - sam nie mam osobistego doświadczenia.

+0

Niestety, jesteśmy prawie w całości sklepem z Windows. – jamesaharvey

+1

Kiedy zrobiłem dużo rozwoju ASP.NET, napisaliśmy niestandardowy kod za CruiseControl.NET, aby to zrobić.Możesz chcieć Google "Web Deployment Tool for IIS" - Nie jestem pewien stanu tego projektu Microsoft, ale wiem, że w końcu zrobi to, co chcesz. –

0

Nigdy go nie używałem, ale wygląda na to, że jednym rozwiązaniem może być Cargo.

1

Czy chcesz wdrożyć do jednego środowiska lub chcesz zautomatyzować wdrażanie do całego środowiska?

Jeśli robisz to w jednym środowisku, zazwyczaj łatwo jest skryptować to automatycznie z serwera CI, automatycznie po każdej kompilacji lub w nocy, a nawet na żądanie.

Ale najlepiej byłoby użyć tej samej automatyzacji wdrażania we wszystkich swoich środowiskach, od testowania do produkcji. W takim przypadku warto porozmawiać z ludźmi z ops i dowiedzieć się, jak robią swoje wdrożenia i opracować kilka typowych skryptów. Kiedy (Urbancode/AnthilPro) mówimy o deployment automation, zazwyczaj o tym mówimy i co zalecamy naszym klientom.

Jeśli chcesz przekonać kogoś, że warto zainwestować tę inwestycję, może okazać się przydatny ten dokument: Build & Deployment Automation for the Lean Economy (pdf; rejestracja wymagana). Używamy w tym celu techniki Lean z Value Stream Mapping, aby zilustrować, dlaczego automatyzacja wdrożeń jest tak wielką wygraną dla zespołu. Kiedy zdajesz sobie sprawę, ile "marnotrawstwa" w ręcznych wdrożeniach, które opisujesz, inwestycja w automatyzację jest niczym więcej.

JTF

+0

Mamy ponad 10 środowisk testowych i ponad 100 serwerów produkcyjnych, które ręcznie wdrażamy obecnie. – jamesaharvey

+0

Yikes! Pomyśl o tym, że będziesz wracać z automatyzacji! :) Zalecam, aby edytować swoje pytania, aby opisać technologie, których używasz na swoim serwerze: IIS vs Apache vs JBoss etc, PHP vs .NET vs Java itp. Myślę, że otrzymasz lepsze odpowiedzi z tymi dodatkowymi szczegółami . –

0

Easiets sposobem jest też użyć Hudson/Jenkins też zrobić. Używam prostego pliku deploy.bat, który jest wywoływany przez polecenie wsadowe w kompilacji jenkins.

Skrypt wygląda somthing tak:

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\msbuild.exe /p:DeployOnBuild=true /p:DeployTarget=MSDeployPublish /p:MSDeployPublishMethod=WMSVC /p:MSDeployServiceUrl=https://server:8172/msdeploy.axd /p:AllowUntrustedCertificate=true /p:DeployIisAppPath="Default Web Site" /p:Username=serverinstance\user /p:Password=somepassword /p:VisualStudioVersion=11.0 

Wtedy konfiguracji IIS zbyt umożliwienia połączeń zdalnych. I ty też jesteś dobry!

Powiązane problemy