Kto jest odpowiedzialny za utrzymanie IIS dla aplikacji internetowych?

15

Aplikacje IIS / Web były trudnym problemem w sklepach, w których pracowałem od dłuższego czasu.

Z jednej strony, IIS jest usługą wbudowaną w serwer (ogólnie) i zazwyczaj administratorzy serwerów są odpowiedzialni za ich utrzymanie i konfigurację. Kiedy pojawia się problem, wiedzą, co musi się wydarzyć, lub przynajmniej zdiagnozują do tego stopnia, że ​​mówią „Coś jest nie tak z aplikacją internetową” i każą programistom debugować kod.

Jednak każda aplikacja internetowa na serwerze jest unikalna i ma wiele niuansów, które mogą być złożone w zależności od bieżących problemów.

Z drugiej strony każda aplikacja internetowa jest wyjątkowa na wiele sposobów i miała określone problemy, które należy rozwiązać, a programista jest osobą, która wie najwięcej o aplikacji. Jeśli plik web.config wymaga modyfikacji w celu debugowania lub IIS zaczyna żałować aplikacji sieci web, programista powinien wiedzieć, gdzie leży problem i odpowiednio go naprawić, albo z powodu IIS, albo samej aplikacji.

Jednak zezwolenie programistom na samodzielne dostosowanie się do usług IIS staje się poważnym problemem, ponieważ niektóre ustawienia / optymalizacje mogą poważnie pogorszyć wydajność i stabilność serwera.

Gdzie więc leży równowaga? Czy administratorzy serwera powinni być guru IIS i zajmować się wszystkimi tymi problemami, a ja po prostu wysyłam pliki witryny podczas wdrażania, czy też deweloper powinien ponosić odpowiedzialność za problemy z serwerem i IIS i odpowiednio sobie z nimi radzić?

Dillie-O
źródło
Świetne pytanie. Jest to, według IMHO, jedna z najważniejszych decyzji, z którymi musi zmierzyć się firma średniej wielkości .NET. Kto zostaje guru IIS?
Portman
Byliśmy też na tej drodze; wciąż nie znalazłem idealnego rozwiązania.
SqlACID
haha Właśnie pisałem to pytanie i pomyślałem: „nie, to zbyt subiektywne”. Cieszę się, że przestałem, bo już o to pytano
Aaron Powell

Odpowiedzi:

5

Wygląda na to, że naprawdę potrzebujesz kogoś z doświadczeniem po obu stronach ogrodzenia.

Chris Upchurch
źródło
+1. Potrzebujesz administratora sieci zainteresowanego platformą .NET lub inżyniera oprogramowania, który jest zainteresowany serwerem.
Portman
4

Z mojego doświadczenia (z mniejszymi firmami) pracownicy IT / sysadmin nie mają czasu, zainteresowania ani wiedzy na temat aplikacji internetowych, aby właściwie utrzymywać konfiguracje IIS. Zabiorą wszystko do systemu operacyjnego i przekażą IIS deweloperowi.

Oczywiście muszę być „czymś więcej niż tylko programistą”, aby to działało poprawnie; Muszę zdawać sobie sprawę z problemów na poziomie systemu (bezpieczeństwo i tak dalej). Od lat zajmuję się zarządzaniem systemami niskiego poziomu, więc jestem pewny tego rodzaju zadań (w rzeczywistości nauczyłem profesjonalnych sysadminów przez kilka lat). Jednak nie każdy programista ma taką możliwość.

Jednak z tego, co widziałem, jest więcej programistów z umiejętnościami sysadmin niż sysadmin z umiejętnościami programowania (webapp).

Jak zawsze YMMV.

Craig Walker
źródło
3

Osobiście nie chciałbym, aby programista zadzierał z usługami IIS, szczególnie jeśli oznaczałoby to, że może to powodować problemy z inną aplikacją, a inny programista musiałby robić kłopoty, bez przerwy.

Jeśli występują problemy z usługami IIS, poproś SysAdmin, aby to sprawdził, a jeśli występuje problem z konkretną aplikacją, odeślij ją do dewelopera. Jeśli deweloper ma problem, powiadom go o tym SysAdmin, który może podjąć świadomą decyzję, czy wprowadzić zmiany i dowiedzieć się, jak wpłynie to na wszystkich.

TheTXI
źródło
3

My (sysadmins) traktujemy naszych programistów tak, jakbyśmy byli zewnętrznym dostawcą - kiedy chcą, abyśmy wdrożyli aplikację, muszą dostarczyć dokumentację, jeśli oczekują, że będzie obsługiwana. Obejmuje to typowe procedury rozwiązywania problemów i ścieżkę eskalacji wsparcia (wymagania dotyczące czasu pracy w połączeniu z udokumentowaną odpowiedzialnością programisty w przypadku nieakceptowalnego wyłączenia).

Oczywiście nie jest czarno-biały, ale zrobiono wiele, aby złagodzić napięcie między deweloperami i administratorami. Twórcy zdają sobie teraz sprawę, że muszą dostarczyć oprogramowanie o jakości odwrotnie proporcjonalnej do ich gotowości do stronicowania po godzinach, a deweloperzy mają teraz narzędzia i dokumenty do przejścia bez obawy o narzędzia, których nie stworzyli.

W twoim scenariuszu oznaczałoby to, że twórcy aplikacji utworzą aplikację na własnym serwerze IIS, a następnie dostarczą oprogramowanie i dokumentację do zainstalowania na serwerze produkcyjnym przez administratorów.

jj33
źródło
„deweloperzy mają teraz narzędzia i dokumenty do przejścia bez szukania narzędzi, których nie stworzyli”?
silnik szeregowy
3

Czy administratorzy serwera powinni być guru IIS i zajmować się wszystkimi tymi problemami, a ja po prostu wysyłam pliki witryny podczas wdrażania, czy też deweloper powinien ponosić odpowiedzialność za problemy z serwerem i IIS i odpowiednio sobie z nimi radzić?

Odpowiedź: znajdź jedną osobę i namaszcz ją „WSA” (administrator serwera WWW) . Mogą być administratorem lub programistą; to naprawdę nie ma znaczenia. Muszą jednak zanurzyć się w oba aspekty pracy, a reszta zespołu (po obu stronach) musi szanować swoją wiedzę fachową.

Nie różni się niczym od tego, jak DBA pokonują linię między IT / dev. Biorąc pod uwagę znaczenie serwerów sieciowych w organizacji z produktem opartym na sieci, myślę, że jest to kluczowa i często pomijana rola.

Ponieważ sieć jest wciąż młoda (w porównaniu do baz danych), trudno jest zrekrutować tę osobę. Najprawdopodobniej będziesz musiał wyhodować / uwodzić kogoś do roli.

Portman
źródło
0

Dzięki nowym narzędziom, takim jak narzędzie Web Deployment Tool (które stanie się standardowym wbudowanym sposobem publikowania aplikacji sieci Web od Visual Studio 2010), Microsoft wydaje się zmierzać w kierunku umożliwienia programistom lub przynajmniej inżynierom instalacyjnym wybrania takich ustawień, jak ustawienia IIS ( certyfikaty, ustawienia puli aplikacji itp.). Są one wbudowane w pakiet instalacyjny msdeploy i automatycznie stosowane na serwerze IIS po wdrożeniu pakietu na serwerach.

Wydaje się to rozsądnym kompromisem. Deweloperzy nie robią ręcznego tłumienia ustawień na serwerach produkcyjnych na żywo, a administratorzy sys nie muszą mieć wiedzy na temat aplikacji internetowych. A jednak pożądane ustawienia IIS są wyraźnie widoczne dla administratorów, którzy chcą zrozumieć, co się stanie przed zainstalowaniem pakietu.

Erv Walter
źródło
Słuszna uwaga. Nawet dzisiaj ustawienie konfiguracji <system.webserver> w IIS7 zaciera tradycyjny wiersz: programiści mogą podejmować decyzje typu „sysadmin” w swoim pliku web.config.
Portman