sábado, 16 de junio de 2012

Soluciones de hardware customizado en datacenters


A esta altura, ya podrías saber que al día de hoy es posible construir servers muy fáciles de reemplazar, baratos de reeemplazar a menudo, customizados (personalizados), son "self-made hardware solutions". Si a esos servers self-made se le suma una infraestructura virtualizada, el software se independiza del hardware, y gracias a capabilities como "live migration", ya no deberíamos preocuparnos de qué hardware corre por debajo de la infraestructura virtualizada, o qué tan a menudo hace falta cambiar de server un sistema operativo.

Los grandes usuarios de hardware de datacenter ya dieron el salto a soluciones customizadas de hardware self-made a medida. Técnicamente no todos son self-made. Por ejemplo Google y Facebook compran su hardware al mayoreo, directamente de los mismos fabricantes que ensamblan servers "de marca" para los grandes fabricantes/vendedores. Otros grandes usuarios, como Netflix, tienen específicaciones de hardware self-made que implementan con hardware adquirido en el mercado abierto, es decir, también al mayoreo, pero comprando partes, no servers customizados completos, como hacen Google y Facebook.


La respuesta de los vendors
Los grandes fabricantes de servers ya se dieron de esa tendencia hace un tiempo, dos años o más, y la respuesta fue crear:

- Entornos completos de hardware y software propietario, como Cisco UCS, Oracle RAC y otros similares. Soluciones muy similares en esencia a lo anterior, pero en escala reducida, son las soluciones Blade, que integran fuertemente hardware y software. Para ambas soluciones, el software propietario está tan embebido que corre en gral. directamente como firmware en el hardware, desde ROM y/o memorias flash (estas últimas para guardar los seteos y customizaciones hechas).
- Vender hardware con software de administración de infraestructura incluído, incluyendo licencias de full-capabilities, algo que antes se vendía como opcionales pagos. El resultado es que comprando uno o más servers de algunos grandes fabricantes, tenemos incluído el - anteriormente muy costo - software de gestión de infraestructura (datacenter lifecycle management software, y otros nombres similares, según el fabricante).

Ambas soluciones tienen la consecuencia práctica específica de que dificultan grandemente el añadir hardware de datacenter - servers - self-made, customizados y baratos. Un auténtico vendor lock-in pero para hardware (antes se veía mucho en software). Otra consecuencia es que al unificar la producción del producto, los costos de fabricación bajan, algo estrictamente necesario para competir con el nuevo jugador del mercado, las soluciones customizadas.


Lock-in de vendors de hardware
El lock-in mencionado se da en principio por la posibilidad de "ir, comprar y usar", luego "despreocuparse" del hardware. Eso en realidad lleva a la razón del boom actual de hardware customizado y self-made: luego de 3 a 6 años, se termina el tiempo de soporte del hardware propietario, al par de años se termina el soporte de partes de respuesto, y luego ya hay que comprar forzosamente el hardware de vuelta. Todo el hardware, para reemplazar todo lo que ya no se va a poder reparar más por falta de partes de repuesto.

La idea gral. de gestión de hardware en datacenters era hasta ahora resignarse a verificar cuanto tiempo había desde la compra del nuevo hardware hasta el fin efectivo de todo soporte, ahorrar o prever presupuesto para esa fecha o antes inclusive, intentando realizar una transición ordenada y anticipada del hardware, para que llegado el momento de fin de soporte, todo el software y los sistemas de misión crítica ya estuvieran corriendo en hardware soportado y con partes de repuesto disponibles.

La llegada de las infraestructuras virtuales cambió el escenario anterior completamente, ya que los sistemas operativos corren sobre una capa de software - los hipervisores - que es la que realmente entra en contacto con el hardware de servers. Es decir, para llevar los sistemas operativos de un - hardware - o server físico - a otro hardware - o server físico, solamente necesitamos que el hipervisor pueda correr sobre el nuevo hardware. La migración del software de un server a otro se vuelve increíblemente sencilla, incluso para entornos/ambientes muy complejos y con configuraciones muy díficiles y delicadas de reimplementar en el caso de que hubiera que realizar una instalación desde cero en un nuevo server (inclusive si se hiciera mediante migración vía "imagen" y dump de la imagen al nuevo server).

[La facilidad extendida de lo anterior también es que los sistemas operativos corriendo sobre hipervisores son entidades "compactas", muy similares a una imagen ISO; realmente son solamente archivos dentro de un directorio presente en un filesystem maneja el hipervisor]

[De hecho, si estamos usando una SAN, ni siquiera hace falta copiar los archivos a otros discos, solamente hace falta replicar la configuración del hipervisor en un nuevo hardware físico y conectar ese hardware a la SAN, luego, ya tenemos nuestro nuevo hardware trabajando sobre los viejos sistemas operativos]

El uso de hardware customizado, self-made, permite a una organización salirse efectivamente:
- del viejo método lock-in de hardware: rotación de hardware (renovando cada 4 a 6 años todos los servers, por un alto costo),
- y también del nuevo método de lock-in de hardware: grandes infraestructuras de hardware "consolidadas" e "integrada" (es decir completamente embebidas y únicamente con posibilidad de hacer upgrades o updates significativos comprando de vuelta fabricante de la solución integrada, en este punto, ya sin opción de hacer competir a ese fabricante en precios, ya que solo él vende upgrades para su solución de hardware integrada)

El lock-in nuevo se "solidifica" efectivamente alrededor de la integración de software de gestión de datacenters, con la promesa de disminuir - a futuro - los altos costos de TCO en ese trabajo.


Necesidades organizativas para montar soluciones de hardware customizado
El uso de soluciones de hardware self-made tiene justamente una debilidad en lo que es el punto fuerte de las soluciones integradas: el management de hardware de datacenter.

Hace falta un muy buen equipo de personas, altamente preparadas para realizar la gestión de ese hardware customizado, y dados los menores tiempos de fiabilidad (menores MTBF, MTTF, MTTR, etc.), el lapso de "despreocupación" hasta tener que realizar cambios de hardware (y la consiguiente migración de sistemas operativos de un hardware a otro, incluso usando virtualización y mediante live-migration), es mucho menor.

Con seguridad se requiere una arquitectura de infraestructura altamente redundante,
1) a nivel de hardware (como mínimo por ejemplo, disponer de un hardware nuevo y sin uso, como cold stand-by para reemplazar de inmediato a otro hardware que salga de producción)
2) y a nivel de software (por ejemplo, configurando clusters de SOs y aplicaciones, donde cada nodo - virtualizado o no - esté corriendo sobre hosts de hardware diferentes).


Beneficios de hardware customizado
El fuerte de las soluciones de hardware self-made está
- en el precio/costo: hablamos de poder adquirir no 3 o 4 servers grandes, sino 12 o 15 microservers, por ejemplo.
- y en la accesibilidad/alta disponibilidad del hardware:
* hablamos aquí de poder comprar e instalar hardware customizado en el día o durante la semanas: placas madre, procesadores, memorias, etc. se pueden adquirir de diversos revendedores locales en la misma ciudad, incluso obteniendo cotizaciones inmediatas y competitivas entre ellos, por compras en cantidad (ya suelen vender a consumidor final y sus ventas son de una o muy pocas unidades por vez).
* versus: tener que negociar la compra, precios, ver disponer, entrar en una lista de espera, tener que esperar varias semanas a meses por un delivery de hardware especializado/propietario (que suele tener que ser importado, pasar varias aduanas, etc.).


Capacidad de procesamiento
El otro tema a considerar en pros y contras, para las soluciones de hardware customizado self-made, está dado por las necesidades de procesamiento:

- Las soluciones de hardware comercial/propietario venden fuerte poder de procesamiento por nodo de hardware, incluyendo un alto número de cores de alta capacidad de procesamiento (Intel Xeon, etc.), por nodo de hardware.
- Las soluciones de hardware customizadas self-made, no disponen típicamente de más uno a 8 cores de comparativamente - respecto de lo anterior - baja capacidad de procesamiento (Intel core i3 a i7, etc.).

El "fix" para las soluciones customizadas de hardware es atender necesidades de procesamiento con varios nodos - servers - configurados en cluster (una base de datos Postgresql de 8 nodos en cluster de stream, por ejemplo), aprovechando el bajo costo por nodo de hardware.


Conclusiones
La conclusión gral. es que con una adecuada planificación y gestión contínua del hardware, en conjunto con una adecuada arquitectura de soluciones de software, el TCO a largo plazo puede resultar mucho más bajo que apostando por las distintas soluciones de hardware propietario (mencionadas al principio).

No todos los escenarios organizativos permitirán poder crear arquitecturas de software compatibles con el uso de hardware customizado self-made, así que en esos casos todavía va a ser mandatorio el uso de hardware comercial/propietario.

Para los demás casos, cuando se pueda implementar soluciones de hardware self-made en datacenters, son una buena referencia a investigar en profundidad las grandes infraestructuras de usuarios de alto nivel como Google, Facebook, Netflix, etc. que ya han probado que montar grandes partes de la infraestructura de datacenter sobre soluciones customizadas de hardware self-made es para ellos un escenario win-win en materia de TCO.

No hay comentarios: