Cómo configurar entornos de desarrollo, preparación, producción y control de calidad


8

Estoy en el proceso de configurar nuevos servidores para una organización. ¿Cuáles son los estándares o las mejores prácticas para configurar un nuevo entorno con Desarrollo, Pruebas, Puesta en Escena y Producción (o estoy abierto a otros niveles con los que no estoy familiarizado)? Además, he oído hablar de organizaciones que están dividiendo servidores en SQL, aplicaciones, servidores web, etc. ¿Dónde puedo encontrar buenos ejemplos de posibles soluciones para la configuración del servidor?

¿Es una buena práctica virtualizar estos entornos entre unas pocas cajas físicas?

He buscado en línea algunas ideas de cómo otras organizaciones tienen configurado su entorno, pero no encuentro nada específicamente útil. Doy la bienvenida a cualquier enlace que me puedan señalar que discuta la construcción de una solución empresarial completa para una empresa pequeña a mediana.

Acabo de encontrar este enlace: http://dltj.org/article/software-development-practice/ Me gustaría encontrar más artículos como este si alguien sabe de alguno bueno que puedan señalarme.

Antes de rechazar mi pregunta, publique comentarios para permitirme intentar explicar más. Es posible que no sepa lo suficiente como para hacer las preguntas correctas.


2
Creo que lo primero que debe hacer es explicar la tarea real que debe cumplir. ¿Para qué es la aplicación? ¿Cuánta carga tendrá? ¿Qué cambios crees que obtendrás? (Como: ¿Necesita 4 niveles, Dev, Prueba, Etapa, Prod)
MichelZ

1
El requisito es alojar muchas (menos de 50) aplicaciones de Intranet personalizadas. Todos estos están en la pila de Microsoft. Actualmente estamos utilizando un servidor SQL de desarrollo y servidores web locales para el desarrollo y un servidor SQL y un servidor web independientes que alojan nuestros entornos de prueba y producción. Sé que las cosas se podrían hacer mucho mejor que lo que estamos haciendo actualmente, por eso publiqué esta pregunta. Simplemente no necesito saber cuál es el "mejor" con mi experiencia.
TreK

2
No es una respuesta per se, así que lo pondré como comentario. Una cosa de la que desea asegurarse es que tiene un mecanismo (por ejemplo, clave API, validación de IP) para garantizar que sus entornos de prueba no puedan acceder a su entorno de producción.
HTTP500

Respuestas:


8

Esta es una pregunta bastante cargada. Mi consejo general es centrar su atención en la gestión de la complejidad y permitir que el sistema crezca orgánicamente.

Virtualización:

Realmente desea evitar la expansión del servidor, y en estos días, todo está virtualizado. Elija una plataforma que le permita agregar servidores virtuales rápidamente, así como administrarlos de manera eficiente. Una tendencia que he visto es tener dos (por ejemplo) clústeres AIX o VMWare, uno para prod, uno para no prod. El que no es de producción se usa para todos los entornos de desarrollo, prueba y preparación. Estos entornos son perfectos para servidores web o servidores de aplicaciones, pero trataría de evitar poner grandes bases de datos de producción en crecimiento como VM (al menos en Windows).

Bases de datos

Estos pueden salirse de control fácilmente cuando necesiten compartir recursos con otros servidores. Siempre tenga bases de datos ejecutándose en un sistema operativo dedicado, nunca compartido con una aplicación o servidor web a menos que haya una buena razón para ello. Si usa una VM o hardware es la única pregunta.

Desea una infraestructura escalable que no lo limite si alguna vez necesita, por ejemplo, pasar a una solución en clúster. Muchas bases de datos estarán bien en una máquina virtual, pero para las pocas que eventualmente necesitarán más potencia de la que es conveniente proporcionar en un entorno de máquina virtual, deseará ponerlas en hardware sin formato .

Si no está hablando de Windows, algunas de estas pautas no serán relevantes. Es una práctica común aceptada poner grandes bases de datos en crecimiento como LPAR en un hipervisor AIX, por ejemplo.

Almacenamiento

No puede tener una virtualización real (con movilidad de VM y agrupación de host) sin almacenamiento compartido. Los servidores de producción, desarrollo, pruebas y control de calidad tienen el mismo aspecto para su almacenamiento, sin embargo, es posible que desee invertir algo de tiempo en encontrar una manera de priorizar su producción. Es una muy mala idea, por ejemplo, tener una base de datos prod fuertemente gravada que comparta discos (conjuntos de incursiones, grupos, lo que sea) con un servidor de desarrollo. El desarrollador puede golpear los discos con tanta fuerza como la producción, a veces, y lo último que necesita es averiguar si algún tipo de prueba es lo que está frenando su producción.

Pídale a alguien que conozca su almacenamiento que se siente y analice todos los posibles cuellos de botella (puertos, caché, controladores, disco, etc.) y haga todo lo posible para evitar la contención de la mayor cantidad posible entre prod y no prod.

Dicho esto, a veces las personas de la aplicación necesitan ejecutar puntos de referencia de desarrollo para ayudar a cuantificar los efectos de un nuevo parche o algo así. En esta situación, es posible que deba poder ofrecerles cantidades de potencia de almacenamiento similares (o al menos cuantificablemente diferentes).


1

¿Para qué necesitas este entorno? ¿El software del proveedor o su organización están haciendo su propio desarrollo?

No sé si esto ayudará, pero tanto HP como Dell caerían por su cuenta para evaluar su centro de datos actual y darle una recomendación para renovar o crear desde cero. Los lectores del foro pueden dar buenas respuestas cercanas, pero sin ver "lo que tienes y dónde estás para lo que quieres y dónde debes estar" será difícil darte una respuesta sólida. Hágase un favor y quédese con un proveedor de hardware por razones administrativas

Tenemos nuestro centro de datos orientado con esto en mente (tenemos el hardware para hacerlo)

Entorno VMWare C7000 Hp carcasa de blade con backend SAN EMC, conexión de fibra de 8 gig.

Esto nos permite limitar los costos de spawl, uso de electricidad y aire acondicionado. Se utilizaría para máquinas de prueba, servidores de prueba de concepto, servidores de producción que no necesitan hardware exclusivo de la aplicación (dongles USB, tarjetas de fax, etc.)

Entorno físico del servidor blade Blade C7000 Hp Blade con 16 blades HBA conectados al backend SAN EMC a través de fibra de 8 gig.

Estos serían para máquinas que requieren una gran cantidad de RAM y CPU pero que no tienen adiciones de hardware únicas. Las máquinas virtuales están bien, excepto cuando requieren una gran cantidad de CPU o RAM. VMWare permite que vmotion mueva el vmserver a una máquina host para equilibrar el uso de hardware. La propiedad de VM solo es rentable cuando se usa al máximo. Es decir, más máquinas más pequeñas en lugar de unas pocas grandes. Esto también depende del sistema que intente pararse.

Servidor físico (1U a 5U)

HP DL360 - Servidores DL 5xx. Hardware especial como CPUS 4x8 core y 256 Gigs ram, tarjetas de serie para interfaces de telecomunicaciones o tarjetas de fax de alta gama conectadas a múltiples líneas telefónicas. En este grupo se incluirían servidores que el proveedor ha requerido un gran almacenamiento local.

Este es un ejemplo pero no una respuesta completa. En serio, hable con un proveedor de hardware y deje que le den una idea de dónde se encuentra y cómo hacerlo mejor / más eficiente.


0

¿Cuáles son las prácticas recomendadas o estándar para configurar un nuevo entorno con Desarrollo, Pruebas, Puesta en Escena y Producción?

Esto depende del presupuesto, entre otras consideraciones. No estoy seguro de si hay estándares, pero querrá mantener el sistema operativo y el otro software en todos los cuadros. Use herramientas de automatización como Puppet para automatizar y estandarizar sus compilaciones.

¿Visualizar este entorno entre algunas cajas físicas es una buena práctica?

Virtualización? Si. Gran practica. Pero necesita validar sus configuraciones si están bien para ejecutarse como máquinas virtuales.

He oído hablar de organizaciones dividiendo servidores en SQL, Aplicación, Servidor Web, etc. ¿Dónde puedo encontrar buenos ejemplos de posibles soluciones para la configuración del servidor?

Probablemente otros puedan intervenir, pero en mi opinión, querrás instalar diferentes componentes en diferentes servidores por múltiples razones entre las actualizaciones y la disponibilidad del sistema operativo y las aplicaciones.


1
Todo depende del tamaño de su proyecto. No creo que necesites nada de eso para tu base de datos privada de películas caseras ... :) Creo que necesitamos más información de OP
MichelZ
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.