Pytanie
Czy istnieje uzasadniony powód, aby NIE używać SVN do wdrożeń produkcyjnych, czy jest to tylko przypadek osobistych preferencji i nie ma prawdziwego argumentu przeciwko SVN?
tło
Moje miejsce pracy ma kulturę oznaczania wersji w SVN, a następnie wdrażanie tych wersji bezpośrednio na różnych serwerach internetowych przy użyciu svn co
lub svn switch
bezpośrednio do produkcji.
Osobiście mam z tym problem, ponieważ uważam, że bez użycia skryptu kompilacji i wdrażania lub jakiejkolwiek formy lub wdrożenia automatycznego tracisz ustawienia środowiska integracji, ponieważ są one nieudokumentowane. Co więcej, mam przeczucie, że może istnieć ukryte niebezpieczeństwo zrobienia tego, co zostało przeoczone, czegoś, co jeszcze nie pochyliło swojej brzydkiej głowy.
Podniosłem swoje obawy dotyczące personelu operacyjnego, który jest odpowiedzialny za wdrażanie kodu w różnych środowiskach (inscenizacja, pre-prod, produkcja) itp. Ich argumenty były dość duże, że jak dotąd działał całkiem dobrze, bez powodu, aby to zmieniać.
Edytować:
Co mam na myśli mówiąc o kompilacji i wdrożeniu:
Na przykład, jeśli programista wymaga ustawienia web.config dodanego dla określonego środowiska. Web.config zasadniczo nie jest przechowywany w svn, dlatego te pliki są aktualizowane ręcznie bez jakiejkolwiek formy skryptu automatycznej kompilacji. Więc jeśli zostaną zgubione lub OPS zapomni dodać pola do pliku web.config dla wydania, masz problemy.
Skrypt kompilacji, który mówi, że używa XMLPoke do automatycznego generowania pliku web.config odpowiedniego dla określonego środowiska, jest idealny, ponieważ masz skrypt z możliwością aktualizacji, który dokumentuje wszystkie zmiany niezbędne dla każdego z twoich środowisk.
Bieżąca metoda kompilacji i wdrożenia
W przypadku omawianego projektu deweloper buduje wydanie ręcznie, w innych projektach etap kompilacji jest zautomatyzowany za pomocą NANT lub MSBuild, co jest w porządku.
Migracje baz danych dla większości projektów odbywają się za pomocą skryptów DB lub skryptów migracji (Migrator.NET) lub pakietów CMS.
CI jest zwykle wykonywane przez Team City na podstawie odprawy, mamy proces sprawdzania kodu, że wszystkie bilety są wykonywane w oddziałach, a następnie sprawdzane pod kątem weryfikacji i poprawności / jakości przed sprawdzeniem w bagażniku (działa dobrze).
Jednak rzeczywiste wdrażanie kodu odbywa się prawie zawsze za pośrednictwem SVN, albo poprzez pobranie oznaczonego wydania lub, bardziej ogólnie, Przełącznik SVN. Jest to dla mnie dziwne, że używamy naszego repozytorium w ramach procesu wdrażania.
Konfiguracja zazwyczaj nie zmienia się bardzo często, jedyne, co będzie w plikach konfiguracyjnych, to informacje specyficzne dla środowiska. Cała reszta jest w db.
Nie zrozum mnie źle, to działa, działa dobrze. Jednak chcę spróbować naciskać na automatyczną kompilację i wdrożenie. Użyłem tego z Railsami i Capistrano oraz do osobistych projektów wykorzystujących Cygwin, Nant i SSH.
Co ważniejsze, potrzebuję bardzo konkretnych, ważnych argumentów, aby zachęcić moich kolegów do korzystania z zautomatyzowanej kompilacji i wdrożenia.
Czy też nie ma ŻADNYCH prawdziwych argumentów przeciwko używaniu SVN specjalnie do wdrożenia w produkcji?