Tabla de contenido:
La virtualización abarca varias tecnologías informáticas y se puede lograr tanto a nivel de hardware como a nivel de software. En una empresa, la virtualización puede mejorar la capacidad de los servicios de software, especialmente las aplicaciones SaaS. También es la forma más efectiva para que las empresas reduzcan sus costos de TI. Pero si combina la virtualización y SaaS, es posible que tenga una combinación ganadora.
¿Qué es el SaaS?
El software como servicio (SaaS) es un modelo de licencia de software en el que el software se licencia por suscripción y está alojado centralmente por un proveedor o un proveedor de servicios. Estas aplicaciones de software distribuido se ponen a disposición de los clientes a través de Internet.
SaaS se está volviendo popular en todas las tecnologías que admiten arquitectura orientada a servicios (SOA) o servicios web. SaaS viene con una serie de ventajas. Los más comunes son:
- Administración fácil
- Actualizaciones fáciles y administración de parches
- Compatibilidad (todos los usuarios tendrán la misma versión del software)
- Accesibilidad global
- Gestión de la tecnología de la información como servicio (ITMaaS)
Virtualización y entrega de software
El concepto de virtualización ha sido adoptado y aceptado correctamente en la comunidad de desarrollo de software. Tiene la capacidad de proporcionar mecanismos de desarrollo y prueba más rápidos al crear entornos de desarrollo y prueba rápidamente.
VMware y VBox son la tecnología más utilizada y permiten que múltiples usuarios se ejecuten en diferentes sistemas operativos, versiones e instancias. La mayoría de las empresas de desarrollo de software adoptan la técnica de virtualización adoptando primero el mecanismo de virtualización de software y luego avanzando gradualmente hacia la virtualización de hardware.
Virtualización y SaaS
A pesar de tener tantas ventajas, SaaS aún no ha recibido el debido crédito. Hay muchos factores que son responsables de esto. Éstos incluyen:- Gran costo inicial: los ingresos invertidos en la configuración se recuperan durante un período de años.
- Puede violar los principios del software libre: el activista por la libertad del software Richard Stallman se refiere a SaaS como "servicio como un sustituto de software (SaaSS)", y lo considera una violación de los principios del software libre.
"Con SaaS, los usuarios no tienen una copia del archivo ejecutable: está en el servidor, donde los usuarios no pueden verlo ni tocarlo. Por lo tanto, es imposible para ellos determinar lo que realmente hace, y es imposible cambiarlo. "SaaS le da al operador del servidor el poder de cambiar el software en uso, o los datos de los usuarios que están siendo operados", escribió Stallman en el sitio web de GNU.
Si nos centramos más allá de la infraestructura y el costo de inicio, una vez implementada, una plataforma de aplicación SaaS solo debería preocuparse por la reproducibilidad. Todas y cada una de las aplicaciones basadas en SaaS deben ser idénticas entre sí. Debe haber diferencias mínimas para mantener el comportamiento constante de cada instancia de aplicación para cada cliente y para el equipo de soporte. Esto se hace para que tengan una base uniforme para resolver cualquier problema, si es necesario. Al ingeniero de soporte no le gustaría descubrir un problema causado por la falta de un módulo de biblioteca para una sola instancia de cliente. Del mismo modo, a un cliente tampoco le gustaría saber que podría haber un problema en cada aplicación solicitada porque la empresa basada en SaaS no puede reproducir el problema utilizando los mismos pasos para cada pedido. Todo el proceso debe ser automatizado para obtener consistencia y beneficios de costos.
Complejidad creciente
Es importante comprender la naturaleza compleja de la implementación para las aplicaciones actuales, ya sea el modelo SaaS o el modelo tradicional. Incluso la aplicación web más simple ya no es responsable de administrar la capa de almacenamiento de datos subyacente. La práctica estándar es tener una base de datos, por ejemplo, MySQL, Oracle, DB2 o SQL Server. La combinación de estos con las típicas pilas web como Java, Ninja, Grails, Rails, etc., conduce a una arquitectura de varios niveles que exige una implementación escalable. Por ejemplo, al configurar un entorno Rails, usamos MySQL.
La naturaleza ágil de las aplicaciones, que permite actualizaciones fáciles del software a través de complementos, parches, macros y mashups, se puede integrar fácilmente en el modelo SaaS. Se desarrolla una extensión o un parche para un problema menor, la mayoría de las veces una corrección de errores, que debe entregarse como un parche en el software existente. Por lo general, a un cliente no le gustaría saber que se produjo un problema debido a una restricción de recursos u otras circunstancias, o que es creado por otro cliente.
Según Wikipedia, la separación de preocupaciones es la premisa para dividir una aplicación en características distintas, lo que minimiza la superposición de funciones. Con la virtualización en su lugar, este concepto se puede aplicar a la infraestructura. La separación se puede aplicar a la base por aplicación, por cliente y / o por clúster. Si bien sigue utilizando el hardware a su máxima capacidad, proporciona la capacidad de escalar horizontal y verticalmente. Esto es beneficioso para las aplicaciones de un solo inquilino que desean ingresar al mercado de SaaS. La multitenencia instantánea en el hardware subyacente con un cambio de código cercano a cero se puede lograr con facilidad.
Hay dos modelos de implementación implementados en la plataforma SaaS de Contegix. El factor diferenciador depende de cómo se desarrolle la aplicación:
- Para admitir un solo cliente por implementación, o
- Para admitir múltiples clientes en una sola implementación
Independientemente del modelo de implementación, es muy importante separar el sistema operativo y la instalación de la aplicación de los datos de la aplicación. Esto lleva a discusiones sobre cómo se procesan y manejan las actualizaciones. El sistema operativo y la instalación de la aplicación deben tener en cuenta la cantidad de datos volátiles, que deben poder reemplazarse en cualquier momento con una copia actualizada o una nueva versión.