¿Qué es un Software como Servicio?
Se conoce como Software como Servicio (SaaS por sus siglas en inglés) al modelo que permite a un usuario suscribirse y utilizar una aplicación informática desde la nube. Actualmente, en la nube se brindan servicios que permiten a los negocios suscribirse a una gran gama de SaaS, como son: aplicaciones para Recursos Humanos, gestión de proyectos, gestión de ventas, mercadotecnia, contabilidad entre otros. Además, los SaaS dan la posibilidad a los usuarios de personalizar las aplicaciones en función de sus necesidades y hacer uso de ellas desde cualquier dispositivo y lugar del mundo.
Las aplicaciones SaaS se construyen con los últimos avances en tecnología y están diseñadas para ser seguras en cada capa de la nube. La inteligencia artificial y la inteligencia orientada a los datos forman parte intrinseca de estas aplicaciones.
Ventajas de una aplicación SaaS
Para los desarrolladores de software, las aplicaciones SaaS son un mecanismo de obtener ganancias recurrentes y brindan tiempos de despliegue más rápidos que las aplicaciones desplegadas localmente.
En el caso de los clientes, las aplicaciones SaaS ofrecen a las pequeñas empresas, la oportunidad de explorar los mercados existentes mientras aprovechan los modelos de pago ventajoso que ofrecen este tipo de soluciones.
Como principales ventajas de las aplicaciones SaaS podríamos mencionar las siguientes:
- Accesibilidad: Una de las ventajas más fuertes de cualquier aplicación SaaS es la capacidad de ejecutarse a través de un navegador web. Esto implica que no importa el sistema operativo o arquitectura que se utilice para acceder a ella. Las aplicaciones SaaS están diseñadas en su gran mayoría para ser compatibles con dispositivos móviles, de modo que puedan usarse en una amplia gama de situaciones y circunstancias.
- Actualizaciones y parches: Otra ventaja importante de las aplicaciones SaaS es que los proveedores pueden actualizar el software centralmente sin el inconveniente de afectar las operaciones de los usuarios. Esto en contraste a lo que ocurre con las aplicaciones instaladas de forma local, donde ser requiere cierto grado de pruebas de compatibilidad y seguridad incluso antes que parches o actualizaciones rutinarias sean aplicadas.
El modelo SaaS por tanto, evita los contratiempos de las pruebas que pueden ralentizar los ciclos de desarrollo y acceso a nuevas funcionalidades por parte de los usuarios, mientras garantiza que las actualizaciones de seguridad son aplicadas lo antes posible; al contrario de las aplicaciones instaladas localmente que pueden permanecer desactualizadas hasta tanto el equipo de servicio técnico no haya terminado el despliegue en todas las instancias. - Hardware: otra de las grandes ventajas de las aplicaciones SaaS es la falta de una inversión inicial para su uso (en términos de hardware). Para las aplicaciones instaladas localmente, muchas veces no basta conque las estaciones de trabajo tengan configuraciones de hardware y software compatibles. También puede ser necesaria la adquisición de servidores y dispositivos de interconexión adicionales como parte de la inversión necesaria en la infraestructura de la empresa para poder darle soporte al sistema informático a implementar.
SaaS desecha por completo esta necesidad, significando que hasta los negocios más pequeños pueden acceder a herramientas en la nube que antes solo las grandes organizaciones podían costear.
Adicionalmente, SaaS brinda la facilidad de ajustar los planes de pago según las necesidades de infraestructura que se tengan, en función de la demanda (más o menos usuarios accediendo). En el caso de las aplicaciones locales, implicarían la compra de más hardware en caso que se necesite expandir o simplemente subutilizar recursos de cómputo costosos cuando la demanda baja y estos se vuelven redundantes. - Acceso al mercado: Para los proveedores esto significa ser capaces de proveer un servicio de software a la mayoría del mercado y no solo a un limitado segmento del mercado objetivo. Significa que los precios pueden ser más bajos y accesibles a negocios de cualquier tamaño.
Para los usuarios (clientes) esto significa que pueden acceder a servicios que normalmente no estarían disponibles, expandiendo y mejorando los servicios que brindan, su productividad y de manera general, sus oportunidades de negocio. - Almacenamiento de información: El almacenamiento de datos en servidores locales involucra la necesidad de invertir en mecanismos de respaldo confiables como, por ejemplo, almacenamientos en la nube u otro plan de recuperación ante desastres que mitigue cualquier accidente grave en el hardware que pudiese conllevar a una perdida masiva de la información. Sin embargo, con SaaS, la data ya es persistida en la nube. Esto lo hace doblemente ventajoso, no es solo el aspecto de la redundancia sino que los usuarios pueden acceder indistintamente desde diferentes dispositivos sin implicar esto una pérdida en el trabajo realizado.
- Datos y Analíticas: Como todo está corriendo a través de una plataforma centralizada, es fácil capturar datos y proveerlos para su uso en analíticas. Los negocios utilizando aplicaciones SaaS usualmente tienen acceso a herramientas de reportería e inteligencia de negocios que pueden brindar información valiosa sobre las operaciones del negocio. Para el proveedor, dado que el acceso depende de una suscripción, no existe la preocupación sobre la piratería, que de otra forma implicaría daños tanto en el acceso como en los modelos de precios.
Desventajas de una aplicación SaaS
Los inconvenientes de adoptar tecnologías SaaS giran alrededor de la seguridad de los datos y la velocidad de entrega. Debido a que los datos son almacenados en servidores externos, las empresas deben tener garantías sobre la seguridad de los datos y la denegación de accesos a terceros no autorizados.
Las conexiones a internet lentas pueden reducir el rendimiento de las aplicaciones SaaS, sobre todo si los servidores en la nube están siendo accedidos desde distancias lejanas a donde se encuentran físicamente alojados. Las redes internas tienden a ser más rápidas y confiables que las conexiones a internet. Dada su naturaleza remota, las aplicaciones SaaS pueden experimentar pérdidas de control sobre los datos y padecer de falta de personalización, sobre todo si las funcionalidades requeridas afectan la implementación de funcionalidades del núcleo básico.
En resumen:
✔ Ventajas | ✖ Desventajas |
|
|
Funcionalidades y características de una aplicación SaaS
Una buena forma de entender el modelo de Software como servicio es pensar en un banco. Un banco protege la privacidad de cada cliente mientras provee un servicio que es confiable y seguro a una escala masiva. Todos los clientes del banco utilizan la misma tecnología y los mismos sistemas financieros sin tener que preocuparse por accesos sin autorización a su informacion personal. Un banco cumple con las características claves que debe tener una aplicación SaaS.
Muchas de las características y funcionalidades que una aplicación SaaS debe proveer están muy ligadas a las ventajas de utilizar este tipo de arquitecturas; otras adicionan valor agregado que muchos usuarios buscan:
- Modelo multi-inquilino (multi-tenant model): Multi-tenant es un tipo de arquitectura de software en donde un solo despliegue de una aplicación informática provee servicio a múltiples usuarios/clientes. Cada usuario es considerado un inquilino dentro del sistema y la característica más importante es que un inquilino no puede acceder a la data de otro inquilino. Un sistema multi-tenant puede contener funcionalidades que permitan a los usuarios personalizar algunas partes de la aplicación. Hoy en día las aplicaciones se diseñan siguiendo uno de tres modelos:
- Separando la información de cada usuario en diferentes bases de datos (Multi-tenancy a nivel de base de datos).
- Separando la información utilizando diferentes esquemas dentro de una misma base de datos (Multi-tenancy a nivel de esquemas).
- Separando la información utilizando una misma base de datos pero utilizando discriminantes (Multi-tenancy a nivel de tablas).
- Inicio de sesión único: Una organización querría contar con un sistema de identificación único que permita a los usuarios acceder a los diferentes sistemas que necesiten consumir. También es importante para las organizaciones que este proceso ocurra a través de una sola página de autenticación. Por tanto, es importante para una aplicación SaaS ser capaz de integrarse fácilmente con diferentes sistemas de gestión de identidad.
Para las empresas es una gran sobrecarga el almacenamiento y mantenimiento de varias credenciales por sistemas utilizados por sus usuarios. Es por eso que resulta importante que las aplicaciones SaaS brinden la experiencia de “autenticarse una vez y acceder a todos los sistemas”. Usualmente, las aplicaciones SaaS utilizan mecanismos como OpenID o SAML para lograr esta funcionalidad crítica. - Facturación basada en suscripciones: las estrategias de precios de las aplicaciones SaaS no involucran las complejidades de los modelos de pagos de licencias o pagos por actualizaciones. Por lo general, los pagos en las aplicaciones SaaS son basados en suscripciones. Esto permite a los clientes comprar las aplicaciones cuando las necesiten y descontinuar su pago en caso de no requerirlas. Por lo general, las aplicaciones SaaS utilizan un modelo de pago basado en cantidad de usuarios, determinando esto la cantidad de dinero a pagar. Algunas aplicaciones modernas también incorporan la habilidad de cobrar basado en las funcionalidades utilizadas.
Otra característica muy deseada es que las aplicaciones SaaS permitan que los usuarios puedan facturar a sus clientes a través de la aplicación. Es por ello que el soporte de diversos mecanismos de pago es también primordial. - Alta disponibilidad: las aplicaciones SaaS son utilizas por múltiples usuarios y la disponibilidad de este tipo de aplicaciones se espera sea alta. Deben ser accesibles desde cualquier lugar del mundo en cualquier momento y proveer APIs de administración y monitoreo que permitan un chequeo constante de la salud y disponibilidad del servicio.
- Infraestructura variable: el uso de las aplicaciones SaaS por lo general no es predecible, el consumo de los servicios puede variar dramaticamente en cuestión de semanas o meses. La infraestructura donde estas aplicaciones son desplegadas deben tener la capacidad de expandir o reducir los recursos utilizados. En la actualidad, las aplicaciones SaaS son diseñadas de forma tal que son capaces de identificar el comportamiento de la infraestructgura. Agentes de supervisión que residen dentro de los recursos de despliegue informan a los servidores de administración de la infraestructura sobre la disponibilidad de los recursos. Usualmente, se implementan politicas y procedimientos como parte de la arquitectura base, que permiten expandir o reducir los recursos de la infraestructura.
Las aplicaciones basadas en microservicios son un ejemplo clásico. Herramientas como Docker y Kubernetes son utilizadas para manejar la elasticidad de las aplicaciones SaaS. - Seguridad a nivel de datos: garantizar que la información del negocio y los datos son protegidos de accesos no autorizados o la corrupción es muy importante. Ya que las aplicaciones SaaS están diseñadas para ser compartidas por diferentes usuarios, se torna extremadamente importante el cómo se protege la data. Ciertos tipos de datos deben ser encriptados al ser almacenados en determinado espacio y al mismo tiempo no pueden ser accedidos desde un espacio diferente. La implementación o integración con Agentes de Acceso Seguro a la Nube (CASB) y frameworks para la gestión de claves (KMF) se vuelven partes esenciales de las aplicaciones SaaS. También resulta importante para garantizar una adecuada protección de los datos, la implementación de controles de acceso basados en Roles bien fuertes.
- Seguridad a nivel de aplicación: las aplicaciones SaaS deben estar equipadas con protección contra vulnerabilidades. Usualmente deben estar protegidas contra vulnerabilidades identificadas por OWASP/SAMM. También deben implementar fuertes gestores del control de acceso e identidad.
Otros aspectos que pueden hacer a las aplicaciones SaaS seguras son los siguientes: -
- Fuertes manejadores de sesión.
- Identificar sesiones no autorizadas, protección contra multisesiones.
- No almacenar datos sensibles en las cookies,
- Autenticación multifactor.
- Implementaciones que potencien la separación de responsabilidades.
- Protección contra ataques de denegación de servicio (DoS/DDoS).
- Protección contra ataques de sobrecarga de buffers.
- Auditoría: Por lo general, las aplicaciones SaaS proveen registros de auditoría sobre las transacciones realizadas. Esto permite a los usuarios trabajar en estrategias de negocio aplicando inteligencia de negocio sobre los datos recogidos. Estos servicios además deben cumplir con regulaciones gubernamentales y politicas internas de las empresas.
Ejemplos de aplicaciones SaaS
Las aplicaciones de correo y mensajería son el principal ejemplo de SaaS. Aplicaciones usualmente utilizadas como Microsoft Outlook están arraigadas en la cultura de negocios y su accesibilidad desde la nube puede un factor vital. Aunque los correos electrónicos siguen siendo el método de comunicación más utilizado en el mundo, aplicaciones de mensajería como Slack o Telegram están ganando popularidad.
Otras soluciones SaaS mejoran las capacidades para almacenar, organizar y mantener los datos. Herramientas en la nube para la automatización de la mercadotecnia y soluciones para el manejo de relaciones con los clientes (CRM) son grandes ejemplos de como las aplicaciones bajo demanda están ayudando a los negocios a alcanzar sus metas.
Cualquiera sea la solución, los clientes de las aplicaciones SaaS van desde personas atraidas por el aspecto asequible (o gratis) de las aplicaciones, hasta grandes empresas que buscan integrar aplicaciones SaaS en las líneas de negocio de sus departamentos. Ejemplo de aplicaciones SaaS populares incluyen Office 365, Google G Suite, Salesforce y Zoom.
- Office 365 es una experiencia integrada de aplicaciones y servicios ofimáticos como Word, Excel, PowerPoint y otros.
- Google G Suite es la respuesta de Google a los problemas de productividad que enfrentan muchas compañías y organizaciones. En un paquete de herramientas, ofrece soluciones de correo, procesamiento de textos, hojas de cálculo, presentaciones, calendarios compartidos, almacenamiento en la nube y mucho más.
- Salesforce es una solución CRM que acerca a las compañias y sus clientes. Es una plataforma CRM integrada que brinda a todos los departamentos de una organización un vista única y compartida de cada cliente.
- Zoom unifica video conferencias, reuniones en línea y grupos de mensajería en una plataforma en la nube fácil de utilizar.