IIS / Web Applications ha sido un problema complicado en las tiendas en las que he trabajado con el tiempo.
Por un lado, IIS es un servicio integrado en el servidor (en general) y generalmente es responsabilidad de los administradores del servidor mantenerlo y configurarlo. Cuando surge un problema, saben lo que debe suceder, o al menos pueden diagnosticar hasta el punto en que dicen: "Algo está mal con la aplicación web" y hacen que el desarrollador depure su código.
Sin embargo, cada aplicación web en el servidor es única y tiene muchos matices que pueden ser complejos en función de los problemas en cuestión.
Por otro lado, cada aplicación web es única en muchos aspectos y tenía problemas específicos que deben abordarse y el desarrollador es la persona que más sabe sobre la aplicación. Si el archivo web.config necesita ser modificado para la depuración, o un IIS comienza a generar problemas a la aplicación web, el desarrollador debe saber dónde se encuentra el problema y solucionarlo en consecuencia, ya sea debido a IIS o la aplicación misma.
Sin embargo, permitir que un desarrollador entre y modifique IIS por su cuenta se convierte en un problema grave porque algunas configuraciones / optimizaciones pueden afectar seriamente el rendimiento y la estabilidad del servidor.
Entonces, ¿dónde está el equilibrio? ¿Deben los administradores del servidor ser gurús de IIS y manejar todos esos problemas y simplemente envío los archivos del sitio durante la implementación, o el desarrollador debe asumir la responsabilidad del servidor y los problemas de IIS y tratarlos en consecuencia?
fuente
Respuestas:
Parece que lo que realmente necesita es alguien con experiencia en ambos lados de la cerca.
fuente
En mi experiencia (con empresas de menor tamaño), el personal de TI / administrador del sistema no tiene el tiempo, el interés o el conocimiento específico de la aplicación web para mantener adecuadamente las configuraciones de IIS. Llevarán las cosas hasta el sistema operativo y me entregarán IIS, el desarrollador.
Obviamente, necesito ser "más que un simple codificador" para que esto funcione correctamente; Tengo que estar al tanto de los problemas a nivel del sistema (seguridad y demás). He estado haciendo administración de sistemas de bajo nivel durante años, así que estoy seguro de este tipo de tarea (de hecho, he enseñado algunas cosas a administradores de sistemas profesionales a lo largo de los años). Sin embargo, no todos los desarrolladores tienen esta capacidad.
Aún así, por lo que he visto, hay más desarrolladores con habilidades de sysadmin que hay sysadmin con habilidades de desarrollo (webapp).
Como siempre, YMMV.
fuente
Personalmente, no quiero que un desarrollador juegue con IIS, especialmente si eso significa que podría causar problemas con otra aplicación con otro desarrollador que tiene que solucionar problemas, una y otra vez.
Si hay problemas con IIS, haga que el SysAdmin lo revise, y si hay un problema con una aplicación en particular, envíelo de vuelta al desarrollador. Si el desarrollador tiene un problema, comuníqueselo al SysAdmin, quien puede intentar tomar una decisión informada sobre si hacer algún cambio y descubrir cómo afectará a todos.
fuente
Nosotros (los administradores de sistemas) tratamos a nuestros desarrolladores de la misma forma que lo haríamos con un proveedor externo: cuando quieren que implementemos una aplicación, tienen que proporcionar documentación si esperan que sea compatible. Esto incluye rutinas comunes de solución de problemas y una ruta de escalado de soporte (requisitos de tiempo de actividad combinados con una responsabilidad documentada del desarrollador en el caso de una interrupción inaceptable).
Obviamente no es en blanco y negro, pero se ha hecho mucho para aliviar la tensión entre desarrolladores y administradores. Los desarrolladores ahora se dan cuenta de que tienen que proporcionar un software de una calidad inversamente proporcional a su disposición a ser buscados después de horas, y los desarrolladores ahora tienen herramientas y documentos para pasar sin sentirse en el gancho de herramientas que no crearon.
Entonces, en su escenario, eso significaría que los desarrolladores crean su aplicación en su propio servidor IIS y luego proporcionan el software y la documentación para que los administradores los instalen en el servidor de producción.
fuente
Respuesta: encuentre a una persona y únala "WSA" (Administrador del servidor web) . Podrían ser un administrador o un desarrollador; Realmente no importa. Pero deben sumergirse en ambos aspectos del trabajo, y el resto del equipo (en ambos lados) debe respetar su experiencia.
No es diferente de cómo los DBA se ubican en la línea entre IT / dev. Dada la importancia de los servidores web en una organización con un producto basado en la web, creo que este es un rol crítico, y a menudo pasado por alto.
Dado que la web todavía es joven (en comparación con las bases de datos), es difícil reclutar a este individuo. Lo más probable es que necesites hacer crecer / preparar a alguien para el puesto.
fuente
Con nuevas utilidades como la Herramienta de implementación web (que se convertirá en la forma estándar de publicar una aplicación web a partir de Visual Studio 2010), Microsoft parece estar encaminado a permitir que los desarrolladores o al menos los ingenieros de instalación elijan cosas como la configuración de IIS ( certs, configuración del grupo de aplicaciones, etc.). Se integran en el paquete de instalación de msdeploy y se aplican automáticamente al servidor IIS cuando el paquete se implementa en los servidores.
Parece un compromiso razonable. Los desarrolladores no anulan manualmente la configuración en los servidores de producción en vivo, y los administradores del sistema no tienen que tener el conocimiento específico de la aplicación web. Y, sin embargo, la configuración de IIS deseada es claramente visible para los administradores de sistemas que desean comprender lo que sucederá antes de instalar el paquete.
fuente