2009-12-22 5 views
6

Może dziwne pytanie. Mamy wiele prostych narzędzi napisanych w domu, które muszą być uruchamiane automatycznie. Są to: , a nie tworzenie zadań. Po prostu takie rzeczy jak uruchamianie SendOutHourlyEmailAlarms.exe, KeepFoldersInSynch.exe i takie. Normalnie ustawilibyśmy te rzeczy jako proste polecenia zaplanowanych zadań/AT (lub usługę systemu Windows, jeśli potrzebna jest bardziej szczegółowa kontrola nad harmonogramem), ale współpracownik ustawił wiele z tych zadań jako projekty kompilacji w CruiseControl. Serwer NET. Zapytałem go, dlaczego tak je przygotował, a jego odpowiedzią było to, że egzekucje (i ich dzienniki, wartości zwracane, wyrzucone wyjątki) były śledzone i rejestrowane, a informacje te były dostępne za pośrednictwem zorganizowanego interfejsu na stronie serwera kompilacji. Nie mogłem się z tym kłócić.Czy CruiseControl.NET należy używać do obsługi zadań niezwiązanych ze źródłem budynku?

Ale to ma tylko zapach, którego nie potrafię zidentyfikować. Czy to właściwe wykorzystanie CruiseControl.NET? Jeśli nie, jakie są zagrożenia? Nawet jeśli może to pasować do rachunku, czy inne produkty lepiej nie pasują do tego typu rzeczy?

+0

Podoba mi się zalety korzystania z CC.NET. W przypadku jakichkolwiek zastrzeżeń dotyczących mieszania zadań innych niż kompilacja i kompilacja, łatwym zadaniem byłoby wdrożenie osobnej instancji CC.NET dla takich zadań, które nie są kompilowane. – hitec

Odpowiedz

6

Mamy różne rodzaje zadań nie związanych z kompilacją z dokładnie tego samego powodu, co twój współpracownik, chcę jedno miejsce, aby wyszukać wszystkie potrzebne mi zadania.

niektóre przykłady naszych projektów CC.NET:

  • FTP instalatorzy do odległych QA

  • Tworzenie kodu źródłowego Documentation

  • Tworzenie VM z zainstalowanych dla instalatorów QA w rano

  • Instalatorzy archiwizacji

Prawie wszystko, co muszę zrobić ręcznie, więcej niż raz, staje się projektem. IMHO jest o wiele lepszy niż zaplanowane zadanie z jeszcze jednego powodu. Nasze pliki konfiguracyjne są kontrolowane przez źródło, więc mamy 1 miejsce do wprowadzenia poprawek. Nie musimy logować się na wiele serwerów i wprowadzać zmian lub zastanawiać się, który serwer to zrobił.

+0

Jeśli faktyczne wykonanie jednego z tych zadań musi znajdować się w innym polu niż serwer kompilacji (np. Ładowanie zbiorcze na serwerze bazy danych, działające na jedynej maszynie z konkretnymi sterownikami itd.), Czy istnieje tam eleganckie rozwiązanie ? Czy jest to tylko dla plików wykonywalnych, które można uruchomić bezpośrednio na polu kompilacji? –

+0

Robimy to dokładnie z agentami Bamboo i Remote. Działa bardzo dobrze. – leonm

+0

Mamy dziesiątki serwerów, zazwyczaj tego typu rzeczy są wykonywane na serwerach bez kompilacji. Twój pulpit nawigacyjny może wskazywać na wiele serwerów, więc nie ma znaczenia. – Alex

1

Sam fakt, że narzędzie zostało zaprojektowane w celu rozwiązania konkretnego problemu, nie oznacza, że ​​nie będzie miał równego dostępu do rozwiązywania podobnych problemów wykraczających poza zakres pierwotnie otrzymany przez twórcę narzędzi. Jeśli CruiseControl.NET rozwiązuje te problemy dobrze, to jest absolutnie odpowiednie narzędzie do użycia.

2

Myślę, że twój współpracownik przedstawił dobry argument. Jeśli te zadania są związane z procesem rozwoju, umieszczenie ich w projekcie CruesControl.Net jako projekcie wydaje się możliwe do zaakceptowania. Byłbym jednak skłonny użyć serwera programistycznego do uruchomienia procesów produkcyjnych. Chociaż prawdą jest, że "jeśli jedynym narzędziem, które posiadasz jest młotek, masz tendencję do postrzegania każdego problemu jako gwóźdź", nie oznacza to, że młot nie jest w stanie rozwiązać wielu problemów!

+0

Wydaje mi się, że proces budowania/kąt procesu produkcyjnego był tym, co uderzyło mnie jako "zapach". –