Virtualizar incluso un único servidor
Me resulta muy habitual, en las conversaciones que involucran la virtualización, que el concepto de consolidación —que, en el contexto de la virtualización de servidores, se refiere a colocar múltiples cargas de trabajo antes físicas en una única máquina física, con la separación gestionada por las barreras de la máquina virtual— se trate como el principio rector y la característica fundamental de la virtualización. Sin lugar a dudas, la consolidación de cargas de trabajo representa una oportunidad extraordinaria con la virtualización, pero es sumamente importante no confundir el valor de la virtualización con el valor de la consolidación. Con demasiada frecuencia he comprobado que la consolidación se considera el valor clave de la virtualización y la principal justificación para ella, pero no es así. La consolidación es una característica adicional, pero nunca debería ser necesaria para justificar la virtualización. La virtualización debería ser una conclusión casi inevitable, mientras que la consolidación debe evaluarse y, en muchas ocasiones, no se utilizaría. El que ciertas cargas de trabajo no deban consolidarse nunca debería conducir a la creencia de que esas cargas de trabajo no deban ser virtuales. Me gustaría explorar el espacio de decisión de la virtualización para ver cómo deberíamos enfocar este punto.
La virtualización debe concebirse como abstracción del hardware, ya que eso es realmente lo que es, en un sentido práctico. La virtualización encapsula el hardware y presenta un conjunto de hardware predecible e impoluto a los sistemas operativos invitados. Esto puede sonar como si añadiera complicación pero, en realidad, simplifica muchas cosas tanto para los fabricantes de sistemas operativos y controladores como para los profesionales de TI que diseñan sistemas. Es precisamente porque los ordenadores, los periféricos de ordenador y los sistemas operativos son criaturas tan complejas que esta capa adicional acaba, en realidad, eliminando complejidad del sistema al crear interfaces estándar. De la estandarización surge la simplicidad.
Este mismo concepto de presentar una máquina virtual estándar a una capa de software existe también en otras áreas de la informática, como en la forma en que se implementan muchos lenguajes de programación. Se trata de un modelo informático muy maduro y fiable.
La abstracción del hardware y la estabilidad que aporta son, por sí solas, razón suficiente para estandarizar la virtualización en todos los ámbitos, pero la naturaleza práctica de la abstracción del hardware, tal como la implementan todos los productos de virtualización empresarial disponibles hoy en día, nos aporta características aún más importantes. Sin duda, la mayoría de los beneficios de la virtualización pueden conseguirse de algún otro modo, pero rara vez de forma tan completa, fiable, sencilla o gratuita como con la virtualización.
El mayor conjunto de características adicionales suele provenir de la abstracción del almacenamiento y la memoria, que permite la capacidad de tomar instantáneas del almacenamiento o incluso de todo el estado en ejecución de una máquina virtual, es decir, de capturar una imagen del sistema en funcionamiento y almacenarla en un archivo. Esta capacidad da lugar a muchas posibilidades muy importantes, como la de tomar una instantánea del sistema antes de instalar software nuevo, cambiar configuraciones o aplicar parches, lo que permite reversiones extremadamente rápidas si algo sale mal. Esta característica, en apariencia menor, puede aportar gran tranquilidad y una fiabilidad general del sistema. También facilita mucho las pruebas de funcionalidades y la reversión, o las pruebas repetidas, en entornos que no son de producción.
La capacidad de tomar instantáneas desde la capa de abstracción también da lugar a la posibilidad de realizar «copias de seguridad basadas en imágenes», es decir, copias de seguridad tomadas mediante el mecanismo de instantáneas en una capa de dispositivo de bloques, en lugar de hacerlo desde la capa del sistema de archivos del sistema operativo. Esto permite mecanismos de copia de seguridad agnósticos respecto al sistema operativo y copias de seguridad que incluyen todo el conjunto de almacenamiento del sistema de una sola vez. Las copias de seguridad de imágenes permiten lo que tradicionalmente se conocía como «restauraciones desde cero» (bare metal restores): todo el sistema puede restaurarse a un estado plenamente operativo sin interacción adicional, de forma sencilla y muy rápida. No todos los fabricantes de hipervisores incluyen esta capacidad, ni la incluyen en igual medida, de modo que, aunque conceptualmente es una característica importante, resulta fundamental considerar caso por caso hasta qué punto existe o está licenciada (cabe destacar que HyperV la incluye plenamente, XenServer la incluye de forma parcial y VMware vSphere solo la incluye con niveles de licencia no gratuitos). Cuando están disponibles, las copias de seguridad basadas en imágenes permiten una recuperación extremadamente rápida, a velocidades impensables con otras metodologías de copia de seguridad. ¡Es posible restaurar sistemas en cuestión de minutos, del desastre a la recuperación!
La capacidad de tratar las máquinas virtuales como archivos (al menos cuando no están en ejecución activa) proporciona beneficios adicionales relacionados con los beneficios de copia de seguridad mencionados anteriormente. En concreto, la capacidad de migrar de forma rápida y sencilla entre hosts físicos, e incluso de pasar entre hardware dispar. Tradicionalmente, las actualizaciones o sustituciones de hardware suponían un proceso de migración complicado y plagado de peligros. Con la virtualización moderna, pasar del hardware existente a hardware nuevo puede ser un proceso fiable y no destructivo, con opciones de retroceso seguras y poco tiempo de inactividad, o posiblemente incluso ninguno. Tareas que son poco frecuentes pero que antes resultaban muy arriesgadas a menudo pueden volverse triviales hoy en día.
A menudo, este es el verdadero beneficio de la virtualización y de los mecanismos de abstracción. No es, necesariamente, mejorar las operaciones cotidianas de un sistema, sino reducir el riesgo y aportar flexibilidad y opciones de cara al futuro. Prepararse para incógnitas que, o bien son impredecibles, o bien simplemente se ignoran en la mayoría de las situaciones habituales. Rara vez se hace tal planificación, para gran disgusto de los departamentos de TI que se quedan con actualizaciones difíciles y peligrosas que podrían haberse mitigado con facilidad.
Existen muchas características de la virtualización que solo son aplicables a escenarios especiales. Muchos productos de virtualización incluyen herramientas de migración en vivo para mover cargas de trabajo en ejecución entre hosts, o posiblemente incluso entre dispositivos de almacenamiento, sin tiempo de inactividad. A menudo están disponibles opciones de alta disponibilidad y tolerancia a fallos, que permiten que algunas cargas de trabajo se recuperen de forma rápida, o incluso transparente, de un fallo de hardware del sistema, pasando del hardware averiado al hardware redundante sin intervención del usuario. Aunque se trata más bien de un beneficio de nicho y, desde luego, no debe incluirse en una lista de por qué «casi todas las cargas de trabajo» deberían ser virtuales, conviene señalarlo como un ejemplo destacado de funciones que a menudo están disponibles y que podrían añadirse más adelante si surge la necesidad, siempre que se utilice la virtualización desde el principio. De lo contrario, sería necesaria una migración a la virtualización antes de poder aprovechar tales funciones.
Los productos de virtualización suelen incluir numerosas características adicionales que solo importan en determinados casos. Una gran cantidad de ellas entra dentro de un amplio grupo de «por si hay necesidad en el futuro». Posiblemente la mayor de todas ellas sea el concepto de consolidación, como mencioné al principio de este artículo. Al igual que otras características avanzadas como la alta disponibilidad, la consolidación no es un valor central de la virtualización, pero a menudo se confunde con él. Las cargas de trabajo que no tienen intención de aprovechar la alta disponibilidad o la consolidación deberían virtualizarse igualmente, sin lugar a dudas. Pero estas características son tan potencialmente valiosas como opciones de futuro, incluso para escenarios en los que no se utilizarán hoy, que merece la pena mencionarlas de todos modos.
La consolidación puede ser extremadamente valiosa y resulta fácil comprender por qué tanta gente simplemente da por sentado que se utilizará, dado que con tanta frecuencia es tan valiosa. La disponibilidad de esta posibilidad una vez que la infraestructura está implantada es un punto clave de flexibilidad para gestionar las incógnitas de las cargas de trabajo futuras. Incluso cuando la consolidación resulta completamente innecesaria hoy, hay muchas probabilidades, incluso en las empresas más pequeñas, de que sea útil en algún momento desconocido del futuro. La virtualización nos brinda una cobertura frente a lo desconocido al preparar nuestros sistemas para una flexibilidad máxima. Uno de los aspectos más importantes de cualquier decisión de TI es gestionar y reducir el riesgo. La virtualización hace precisamente eso.
La virtualización tiene que ver con la estabilidad, la flexibilidad, la estandarización, la facilidad de gestión y el seguimiento de las mejores prácticas. No hay ningún producto importante de virtualización empresarial que no esté disponible, al menos en alguna forma, de manera gratuita hoy en día. Cualquier compra requeriría, por supuesto, un análisis cuidadoso del valor frente al desembolso. Sin embargo, con excelentes opciones empresariales disponibles de forma gratuita en las cuatro líneas de productos clave de este ámbito en la actualidad (Xen, KVM, HyperV y VMware vSphere), no necesitamos hacer tal análisis. Solo necesitamos demostrar que la implementación no es algo negativo.
Lo que facilita la toma de decisiones es que, cuando consideramos el caso nominal —el mínimo indispensable que proporciona toda virtualización empresarial, esto es, los beneficios de coste cero, abstracción, encapsulación y almacenamiento—, encontramos que tenemos un pequeño beneficio en prácticamente todos los casos, ningún inconveniente mensurable y un beneficio potencial muy grande procedente de los ámbitos de la flexibilidad y la cobertura frente a necesidades futuras. Esto nos deja con una victoria clara y una decisión sencilla: que la virtualización, siendo gratuita y sin inconvenientes esenciales por sí misma, debería utilizarse en cualquier caso en que sea posible (lo que, a estas alturas, abarca esencialmente todas las cargas de trabajo). Las características adicionales no centrales, como la consolidación y la alta disponibilidad, deberían evaluarse por separado y solo después de que la decisión de virtualizar ya se haya consolidado. La ausencia de necesidad de esas características ampliadas no sugiere, en modo alguno, que no deba elegirse la virtualización en función de sus propios méritos.
Esto es, sencillamente, una explicación de las mejores prácticas vigentes en la industria, que durante muchos años han consistido en virtualizar todas las cargas de trabajo posibles. No es nada nuevo ni un cambio de rumbo. El simple hecho de que la virtualización generalizada haya sido una mejor práctica de la industria durante casi una década demuestra qué metodología tan probada y aceptada es esta. Siempre habrá cargas de trabajo que, por una razón u otra, sencillamente no puedan virtualizarse, pero estas deberían ser muy escasas y contadas, y deberían motivar una revisión profunda para averiguar por qué es así.
Al decidir si virtualizar o no, el enfoque debería ser siempre dar por sentado que la virtualización es una conclusión inevitable y apartarse de ello únicamente si una razón técnica sólida y defendible lo hace imposible. Casi todos los argumentos en contra de la virtualización parten de una posición de incomprensión, con la creencia de que la consolidación, la alta disponibilidad, el almacenamiento externo, el coste de las licencias y otros conceptos vagamente relacionados o no relacionados son, de algún modo, intrínsecos a la virtualización. No lo son y no deberían incluirse en una decisión de despliegue virtual frente a físico. Son aspectos independientes y deberían evaluarse como opciones independientes.
Cabe señalar que, dado que la consolidación no forma parte de nuestra matriz de decisión a la hora de establecer el valor base de la virtualización, todas las razones que estamos utilizando se aplican por igual tanto a los despliegues uno a uno (es decir, una única máquina virtual en un único dispositivo físico) como a las cargas de trabajo consolidadas (es decir, múltiples máquinas virtuales en un único dispositivo físico). No existe ninguna situación en la que una carga de trabajo sea «demasiado pequeña» para ser virtualizada. Si acaso, es lo contrario: solo en las cargas de trabajo más grandes, normalmente con una sensibilidad extrema a la latencia, persiste todavía un escenario de nicho de no virtualización como caso límite, pero incluso esos casos están desapareciendo rápidamente a medida que mejoran las latencias en la virtualización y las capacidades totales de carga de trabajo. Estos casos son tan raros y se desvanecen tan deprisa que incluso tomarse el tiempo de mencionarlos es probablemente poco prudente, ya que sugiere que las excepciones, basadas en necesidades de capacidad, son lo bastante comunes como para tenerlas en cuenta, cosa que no es así, y mucho menos en el mercado de las pymes. Cuanto más pequeña es la carga de trabajo, más idónea resulta para la virtualización, pero esto solo sirve para reforzar que las pequeñas empresas, con cargas de trabajo únicas, son el caso más idóneo para la virtualización en todos los ámbitos, en lugar de una excepción a las mejores prácticas; no para sugerir que las empresas más grandes deberían buscar excepciones por su cuenta.

