Cámara de Comercio de Bogotá – Centro Empresarial Chapinero
S o f t w a r e c o m o S e r v i c i o ( S a a S )
M a r i o V i l l a m i z a r – H a r o l d C a s t r o U n i v e r s i d a d d e l o s A n d e s
{m j . v i l l a m i z a r 2 4, h c a s t r o } @ u n i a n d e s . e d u . c o
Agenda
Introducción al Software como Servicio (SaaS) y Cloud Consideraciones de un Modelo de Negocio SaaS
Consideraciones Técnicas Para Implementar un SaaS Desarrollo Técnico de una Solución SaaS
Aprendizaje Continuo, Mediciones y Mejoras El Ciclo de Vida de una Compañía SaaS
Agenda
Introducción al Software como Servicio (SaaS) y Cloud Consideraciones de un Modelo de Negocio SaaS
Consideraciones Técnicas Para Implementar un SaaS Desarrollo Técnico de una Solución SaaS
Aprendizaje Continuo, Mediciones y Mejoras El Ciclo de Vida de una Compañía SaaS
¿Qué es el Software como Servicio (SaaS)?
Un Nueva Manera de Adquirir Aplicaciones Bajo un
Modelo de Suscripción
Cambio de Mentalidad
Los usuarios/clientes pagan una suscripción anual
por el uso del servicio (no por la licencia)
Ejemplo de Soluciones SaaS – Sales Cloud
Se paga con base en el número de usuarios y las
funcionalidades requeridas.
Ejemplo de Soluciones SaaS – Survey Monkey
Se paga con base en el número de transacciones,
acciones, cantidad de datos, etc.
Cientos de Soluciones Bajo el Modelo SaaS
Cientos de startups, ISVs, empresas de tecnología
y fábricas de software se han movido a crear SaaS.
Principales Beneficios Para los Usuarios/Clientes
La mayor parte del presupuesto de TI se gasta mantener la operación y no se invierte en el negocio.
Principales Beneficios Para los Usuarios/Clientes
• Mejorar la productividad y reducir los costos requeridos para desarrollar y mantener aplicaciones.
• Reducción de CAPEX.
• Más enfoque de TI en el negocio.
Eficiencia
• Agilizar el aprovisionamiento de aplicaciones.
• Soportar los picos en la demanda de las aplicaciones.
• Respuesta rápida a nuevas necesidades del negocio.
Agilidad
• Uso de nuevas tecnologías: dispositivos móviles,
tabletas, análisis de datos (BI), big data, redes sociales, campañas de marketing online, etc.
• Generar una cultura de emprendimiento.
Innovación
Consideraciones al Adquirir SaaS/Cloud
¿Por Qué Crear un SaaS?
Permitir que cientos o millones de clientes usen el
SaaS bajo un esquema de economías de escala.
Agenda
Introducción al Software como Servicio (SaaS) y Cloud Consideraciones de un Modelo de Negocio SaaS
Consideraciones Técnicas Para Implementar un SaaS Desarrollo Técnico de una Solución SaaS
Aprendizaje Continuo, Mediciones y Mejoras El Ciclo de Vida de una Compañía SaaS
Encontrar un Problema
Identificar un problema/oportunidad que pueda ser
resuelto/aprovechada a través de un SaaS.
Definir el Mercado
Definir el tipo de cliente o empresa que va a pagar
por el SaaS.
Definir la Industria
Definir la industria donde están los clientes o
empresas que va a pagar por el SaaS.
Identificar las Necesidades Específicas del Mercado
Definir cuáles son los principales servicios o funcionalidades que debe ofrecer el SaaS.
Entrevistas Grupos de Trabajo
Refinar el Perfil Final del Cliente y del Producto
Seleccionar las funcionalidades más comunes
para una gran cantidad de clientes.
Limitar El Desarrollo del Producto
Evitar hacer cientos de funcionalidades
“Pequeñas” (es un SaaS!!!).
Esta es la estimación de
una pequeña funcionalidad.
Esta es la
implementación de una pequeña funcionalidad.
Definir los Paquetes Que Serán Ofrecidos
Esquema Inicial de Suscripción
• Freemium (Limitaciones).
• Prueba por X días.
Definir el Portal de Auto Servicio
¿Qué pasos debe hacer un nuevo cliente para
registrarse y hacer la configuración inicial?
Modelo de Negocio
¿Cómo se van a recibir los pagos?
• Tarjeta de crédito (pagos mensuales / anuales).
• A través de facturas (por consignación).
Dispositivos de los Clientes
Identificar los dispositivos desde donde se podrá
acceder al SaaS y el orden de las implementaciones.
Ubicación de los Clientes
Identificar la ubicación geográfica de los clientes
(rendimiento, legales, seguridad, etc.).
¿Cuántos Usuarios/Clientes Van a Acceder?
Con base en el número de usuarios esperados se
debe diseñar una solución que pueda escalar.
Usuarios?
Es importante analizar si el SaaS debería integrarse
con productos ya existentes (APIs, REST, etc.).
Agenda
Introducción al Software como Servicio (SaaS) y Cloud Consideraciones de un Modelo de Negocio SaaS
Consideraciones Técnicas Para Implementar un SaaS Desarrollo Técnico de una Solución SaaS
Aprendizaje Continuo, Mediciones y Mejoras El Ciclo de Vida de una Compañía SaaS
El Esquema de Aprovisionamiento Tradicional
Cada cliente paga por instalar, configurar, operar, escalar, administrar y monitorear su propia aplicación.
Cliente A
Cliente B
Cliente C
Cliente D
El Esquema de Aprovisionamiento SaaS
Cada cliente configura, usa y monitorea una aplicación compartida y paga de acuerdo a lo que requiere.
Multi-Arrendamiento a Nivel de Aplicación
¿Cómo se van a entregar los servidores de
aplicaciones Web/APIs a diferentes clientes (tenants)?
Servidores Web/APIs
Máquina Física o Virtual
Multi-Arrendamiento a Nivel de DB
¿Cómo se van a almacenar los datos (DBs) de los diferentes clientes (tenants)?
El Esquema Multi-Arrendamiento (Multi-tenancy)
¿Cuánto cuesta entregar los servidores Web y de BD?
¿Cómo hago la administración de forma eficiente?
Eficiencia Flexibilidad
alta baja baja
alta
Niveles de Personalización a Ofrecer
Cada cliente ¿Qué va a poder personalizar?
• Diseño (logo, emails, etc.)
• Variables globales
• Nuevos campos
• Niveles de acceso
• Métodos de autenticación
• Notificaciones
• Workflows
• Etc.
¿A Dónde Se Va a Ejecutar el SaaS?
Usar Un Centro de Datos Propio
Usar el Cloud:
IaaS/PaaS
Consideraciones a Tener en Cuenta
Usar Un Centro de Datos Propio
Usar el Cloud:
IaaS/PaaS
Importante Temas Legales y de Seguridad
Usar Un Centro de Datos Propio
Usar el Cloud:
IaaS/PaaS
Nivel de Administración Requerido IaaS/PaaS
Packaged Software
Storage Storage Servers Servers
Networking Networking
O/S O/S Middleware Middleware
Virtualization Virtualization
Data Data Applications Applications
Runtime Runtime
You manage
Infrastructure
(as a Service)
Storage Storage Servers Servers
Networking Networking
O/S O/S Middleware Middleware
Virtualization Virtualization
Data Data Applications Applications
Runtime Runtime
You manage Managed by vendor
Platform
(as a Service)
You manage
Storage Storage Servers Servers
Networking Networking
O/S O/S Middleware Middleware
Virtualization Virtualization Applications Applications
Runtime Runtime
Data Data
Managed by vendor
Software
(as a Service)
Storage Storage Servers Servers
Networking Networking
O/S O/S Middleware Middleware
Virtualization Virtualization Applications Applications
Runtime Runtime
Data Data
Managed by vendor
¿Qué administra el proveedor de IaaS/PaaS?
¿Qué tengo que administrar para desplegar el SaaS?
Proveedores de Infraestructura como Servicio (IaaS)
Ofrecen mayores niveles de personalización.
Las labores de administración son más complejas.
Infrastructure
(as a Service)
Storage Storage Servers Servers
Networking Networking
O/S O/S Middleware Middleware
Virtualization Virtualization
Data Data Applications Applications
Runtime Runtime
You manage Managed by vendor
Ofrecen menores niveles de personalización.
Las labores de administración son más simples.
Proveedores de Plataforma como Servicio (PaaS)
Platform
(as a Service)
You manage
Storage Storage Servers Servers
Networking Networking
O/S O/S Middleware Middleware
Virtualization Virtualization Applications Applications
Runtime Runtime
Data Data
Managed by vendor
¿Qué Servicios Necesita el SaaS Para Ejecutarse?
• Web/API Servers
• Workers/Colas
• Crons
• Databases
• Caching
• Blob Storage
• Monitoring
• Utilidades (SMS,
Email, Logs, etc.)
Definir el Lenguaje de Programación/Framework
Es importante revisar como el lenguaje/framework a utilizar en el Back-End es soportado por el IaaS/PaaS.
Definir el Motor de Bases de Datos A Utilizar
Es importante revisar cómo el motor de base de datos SQL/No-SQL a utilizar es soportado por el IaaS/PaaS.
SQL
No-SQL
Definir una Arquitectura Escalable Para la Aplicación
• Web/API Servers
• Workers/Colas
• Crons
• Databases
• Caching
• Blob Storage
• Monitoring
• Utilidades (SMS,
Email, Logs, etc.)
Escalabilidad de los Web/API Servers
Los proveedores IaaS/PaaS cobran
por hora de cómputo
Escalabilidad de la Base de Datos - SQL
Los proveedores IaaS/PaaS cobran
por el tipo de base de datos a
consumir
Escalabilidad de la Base de Datos – No-SQL
Los proveedores IaaS/PaaS o proveedores externos cobran por el tipo de base de datos a consumir.
Escalabilidad del Contenido (Imágenes/Videos)
Si los servidores Web aparecen y desaparecen, ¿Dónde se deben almacenar los archivos (imágenes, etc.)?
Sistemas de Almacenamiento
Externo Blob Storage
Caching y Datos de Sesión
Si los servidores Web aparecen y desaparecen, ¿Dónde se deben almacenar los datos de sesión?
Almacenamiento Llave/Valor en
Memoria
Sistema de Caching
Procesos en Background – Workers/Colas
Las solicitudes HTTP/JSON deben responderse en menos de 30/60 segundos, sino deben procesarse en background.
Los proveedores
IaaS/PaaS cobran por hora de cómputo y por uso de
las colas.
Distribución del Contenido (CDNs)
Es buena idea colocar el contenido (video, imágenes, archivos, etc.) cerca al origen de los usuarios.
Integración con Servicios (SaaS) Internos/Externos del IaaS/PaaS de Apoyo Para La Solución SaaS
• Email transaccional.
• Logs.
• Excepciones.
• Análisis de uso a nivel del negocio.
• Notificaciones PUSH.
• Crons.
• SSL.
• Load Testing.
• SMS.
• Etc.
Monitoreo de la Solución SaaS
¿Cómo monitorear la aplicación una vez ha sido desplegada? Ya hay herramientas externas de apoyo.
Monitoreo de la Solución SaaS
Monitoreo de los diferentes servicios internos del IaaS/PaaS y los servicios externos utilizados.
Arquitectura de una Aplicación Web Escalable
¿Cuál es la disponibilidad de
cada servicio?
Es Importante Revisar la Disponibilidad de los Servicios
¿Cómo Mejorar La Disponibilidad de la Aplicación?
Importante revisar las políticas de disponibilidad
del proveedor IaaS/PaaS para ver si es posible hacer
configuraciones que incrementar la disponibilidad.
¿Cuánto Cuestan Los Servicios Consumidos (PaaS/IaaS/SaaS) Mensual/Anualmente?
• Web/API Servers
• Workers/Colas
• Crons
• Databases
• Caching
• Blob Storage
• Monitoring
• Utilidades (SMS, Email, Logs, etc.)
Valor de los S
Servicios
Ajustes a la Estructura de Costos/Paquetes
Agenda
Introducción al Software como Servicio (SaaS) y Cloud Consideraciones de un Modelo de Negocio SaaS
Consideraciones Técnicas Para Implementar un SaaS Desarrollo Técnico de una Solución SaaS
Aprendizaje Continuo, Mediciones y Mejoras El Ciclo de Vida de una Compañía SaaS
Desarrollo Ágil – Despliegues Continuos
Desarrollar el Producto (SaaS) de Forma Iterativa e
Ir Probando Con Posibles Clientes
Conocimientos del Equipo de Desarrollo
Importante Que Todo El Equipo de Desarrollo Conozca los IaaS/PaaS Utilizados
• Desarrollo
• Gestión
• Operación
Configuración de los Entornos de Desarrollo
Definir los Entornos Locales Para El Grupo de
Desarrollo (Development/Testing)
Configuración de los Entornos de Desarrollo
Configuración de los Diferentes Servicios en el Entorno Local
• Web/API Servers
• Workers/Colas
• Crons
• Databases
• Caching
• Blob Storage
• …..
Desarrollo Directamente en el Cloud
Ya hay IDEs que están disponibles directamente en
el cloud como servicio.
Desarrollo de los Componentes de la Solución SaaS
Diseño / Presentación
Identidades (local, LDAP, SN)
Funcionalidades Core
Funcionalidades Opcionales
Información (DBs)
Paquetes de Servicios
Monetización / Facturación
Integraciones con el IaaS/PaaS
Integraciones con Servicios
Externos
APIs y Apps Nativas
Despliegue de las Aplicaciones
Operación y Monitoreo
Despliegue a Entornos en el Cloud
Despliegue a los Ambientes Configurados
(pre-staging, staging, production) en el IaaS/PaaS
Despliegue a Entornos en el Cloud
Los despliegues del SaaS sobre el IaaS/PaaS se
hacen a través del IDE o CLI.
Agenda
Introducción al Software como Servicio (SaaS) y Cloud Consideraciones de un Modelo de Negocio SaaS
Consideraciones Técnicas Para Implementar un SaaS Desarrollo Técnico de una Solución SaaS
Aprendizaje Continuo, Mediciones y Mejoras El Ciclo de Vida de una Compañía SaaS
Comenzar a Aprender de los Primeros Clientes
los Clientes: Una Prioridad
Estar disponible cuando el cliente lo necesite.
Crear una base de contenido y conocimientos.
Desarrollar un Mínimo Producto Viable (MVP)
Los Primeros Clientes
Hacer los cambios y refinar el perfil del cliente que
va a adquirir el SaaS (para escalar el negocio).
Medir Cómo Los Primeros Clientes Usan El
SaaS
Enfocarse en Una Sola Métrica
• Cuántos usuarios están iniciando sesión diariamente/semanalmente.
• Cuantos usuarios están ejecutando la acción X.
• Cuántos usuarios están ejecutando la acción X y
luego la acción Y.
Solo Agregar Las Funcionalidades Solicitadas por La Mayoría de Clientes
Limitar las funcionalidades para que la solución
sea Simple, Amigable, Útil y Escalable.
Estrategias Para Atraer Más Clientes
Es posible comenzar a pensar en estrategias para atraer más clientes y comenzar a probar el mercado.
Estrategias de Marketing Para Dar a Conocer el SaaS
¿Cuánto cuesta que un cliente conozca el SaaS?
¿Cuánto cuesta que un cliente se registre?
• Self-service
• Social (implícito, explícito)
• Fuerza de ventas
• Publicidad online (Google, FB, TW, LI, Ads Networks)
• Publicidad offline
• Partners de distribución
• Red de afiliados
Medir el Uso del Producto
Definir las Principales Métricas de
Éxito/Fracaso
Elaborar un Tablero con los Principales PKIs
¿Cuántos usuarios nuevos hay?
¿Cuántos cancelaron la suscripción?
¿Es viable que el modelo de negocio escale?
Es Importante Medir el Churn Rate y el CLV
¿Es viable que el modelo de negocio
escale?
Ejemplo para el mes de febrero:
El Científico de datos Steven H de Shopify describe el churn rate como:
El churn rate para febrero:
El 2.5% de los clientes se van cada mes. El cliente promedio permanece alrededor de 40 meses (100/2.5).
El Customer Lifetime Value (CLV) es:
40 meses x Ingreso Mensual Por usuario
# cancelaciones del período
# de clientes al inicio del período
26 usuarios perdidos
1035 usuarios pagaban al iniciar el periodo X100
Cohort Analysis
Es importante analizar el comportamiento de los usuarios con base en los cambios realizados (nuevas
funcionalidades, cambio en precios, nuevos paquetes, etc.)
Hacer los Cambios Necesarios Para Escalar
Agenda
Introducción al Software como Servicio (SaaS) y Cloud Consideraciones de un Modelo de Negocio SaaS
Consideraciones Técnicas Para Implementar un SaaS Desarrollo Técnico de una Solución SaaS
Aprendizaje Continuo, Mediciones y Mejoras El Ciclo de Vida de una Compañía SaaS
El Ciclo de Vida de Una Compañía SaaS
El Ciclo de Vida de Una Compañía SaaS
En Conclusión Desarrollar Un SaaS Escalable Implica:
• Nuevos modelos de negocio.
• Uso de patrones de arquitecturas escalables.
• Uso de soluciones cloud computing IaaS/PaaS.
• Iteraciones continuas del producto.
• Nuevas estrategias de comercialización (auto-servicio).
• Análisis continuo de métricas para escalar el negocio.
• Cambiar la mentalidad del cliente y mostrar los beneficios.
GRACIAS POR SU ATENCIÓN
M a r i o V i l l a m i z a r – H a r o l d C a s t r o U n i v e r s i d a d d e l o s A n d e s
{m j . v i l l a m i z a r 2 4, h c a s t r o } @ u n i a n d e s . e d u . c o
@ m a r i o c l o u d