Cloud Computing es un modelo que está siendo adoptado por muchas empresas a nivel mundial ya que los más grandes proveedores de software y vendedores de software independiente (ISVs) de todos los tamaños han empezado a diseñar sus aplicaciones para que sean consumidas bajo el modelo cloud computing de Software como Servicio (SaaS). El diseño de soluciones de Software como Servicio involucra grandes retos a nivel técnico incluyendo aspectos como la escalabilidad
de la soluciones, los niveles de personalización, el modelo multi-arrendatario, el acceso desde múltiples dispositivos, la seguridad y el desarrollo sobre servicios PaaS e IaaS son algunos de los temas abordados en esta presentación realizada en el XXXIII Salón de Informática realizado en la ciudad de Bogotá, Colombia (2013).
Desarrollo de Soluciones Escalables de Software como Servicio (SaaS)
1. Desarrollo de Soluciones Escalables de
Software como Servicio (SaaS)
Mario Villamizar – Harold Castro
Universidad de los Andes
{mj.villamizar24, hcastro}@uniandes.edu.co
Cámara de Comercio de Bogotá – Centro Empresarial Chapinero
2. XXXIII Salón de Informática ACIS
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
3. XXXIII Salón de Informática ACIS
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
4. XXXIII Salón de Informática ACIS
¿Qué es el Software como Servicio (SaaS)?
Un Nueva Manera de Adquirir Aplicaciones Bajo un
Modelo de Suscripción
5. XXXIII Salón de Informática ACIS
Cambio de Mentalidad
Los usuarios/clientes pagan una suscripción anual
por el uso del servicio (no por la licencia)
6. XXXIII Salón de Informática ACIS
Ejemplo de Soluciones SaaS – Sales Cloud
Se paga con base en el número de usuarios y las
funcionalidades requeridas.
7. XXXIII Salón de Informática ACIS
Ejemplo de Soluciones SaaS – Survey Monkey
Se paga con base en el número de transacciones,
acciones, cantidad de datos, etc.
8. XXXIII Salón de Informática ACIS
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.
9. XXXIII Salón de Informática ACIS
Cientos de Soluciones Bajo el Modelo SaaS
www.tiendacloud.co
10. XXXIII Salón de Informática ACIS
Principales Beneficios Para los Usuarios/Clientes
La mayor parte del presupuesto de TI se gasta en mantener la
operación y no se invierte en el negocio.
11. XXXIII Salón de Informática ACIS
Principales Beneficios Para los Usuarios/Clientes
Eficiencia
Agilidad
Innovación
• 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.
• Agilizar el aprovisionamiento de aplicaciones.
• Soportar los picos en la demanda de las aplicaciones.
• Respuesta rápida a nuevas necesidades del negocio.
• 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.
12. XXXIII Salón de Informática ACIS
Consideraciones al Adquirir SaaS/Cloud
13. XXXIII Salón de Informática ACIS
¿Por Qué Crear un SaaS?
Permitir que cientos o millones de clientes usen el
SaaS bajo un esquema de economías de escala.
14. XXXIII Salón de Informática ACIS
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
15. XXXIII Salón de Informática ACIS
Encontrar un Problema
Identificar un problema/oportunidad que pueda ser
resuelto/aprovechada a través de un SaaS.
16. XXXIII Salón de Informática ACIS
Definir el Mercado
Definir el tipo de cliente o empresa que va a pagar
por el SaaS.
17. XXXIII Salón de Informática ACIS
Definir la Industria
Definir la industria donde están los clientes o
empresas que va a pagar por el SaaS.
18. XXXIII Salón de Informática ACIS
Identificar las Necesidades Específicas del Mercado
Entrevistas
Grupos de Trabajo
Definir cuáles son los principales servicios o
funcionalidades que debe ofrecer el SaaS.
19. XXXIII Salón de Informática ACIS
Refinar el Perfil Final del Cliente y del Producto
Seleccionar las funcionalidades más comunes
para una gran cantidad de clientes.
20. XXXIII Salón de Informática ACIS
Limitar El Desarrollo del Producto
Esta es la
estimación de
una pequeña
funcionalidad.
Esta es la
implementación de
una pequeña
funcionalidad.
Evitar hacer cientos de funcionalidades
“Pequeñas” (es un SaaS!!!).
21. XXXIII Salón de Informática ACIS
Definir los Paquetes Que Serán Ofrecidos
22. XXXIII Salón de Informática ACIS
Esquema Inicial de Suscripción
•
Freemium (Limitaciones).
•
Prueba por X días.
23. XXXIII Salón de Informática ACIS
Definir el Portal de Auto Servicio
¿Qué pasos debe hacer un nuevo cliente para
registrarse y hacer la configuración inicial?
25. XXXIII Salón de Informática ACIS
¿Cómo se van a recibir los pagos?
•
Tarjeta de crédito
(pagos mensuales /
anuales).
•
A través de facturas
(por consignación).
26. XXXIII Salón de Informática ACIS
Dispositivos de los Clientes
Identificar los dispositivos desde donde se podrá
acceder al SaaS y el orden de las implementaciones.
27. XXXIII Salón de Informática ACIS
Ubicación de los Clientes
Identificar la ubicación geográfica de los clientes
(rendimiento, legales, seguridad, etc.).
28. XXXIII Salón de Informática ACIS
¿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.
29. XXXIII Salón de Informática ACIS
¿Qué Integraciones Serían Útiles Para los
Usuarios?
Es importante analizar si el SaaS debería integrarse
con productos ya existentes (APIs, REST, etc.).
30. XXXIII Salón de Informática ACIS
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
31. XXXIII Salón de Informática ACIS
El Esquema de Aprovisionamiento Tradicional
Cliente C
Cliente A
Cliente B
Cliente D
Cada cliente paga por instalar, configurar, operar,
escalar, administrar y monitorear su propia aplicación.
32. XXXIII Salón de Informática ACIS
El Esquema de Aprovisionamiento SaaS
Cada cliente configura, usa y monitorea una aplicación
compartida y paga de acuerdo a lo que requiere.
33. XXXIII Salón de Informática ACIS
Multi-Arrendamiento a Nivel de Aplicación
Servidores Web/APIs
Máquina Física o
Virtual
¿Cómo se van a entregar los servidores de
aplicaciones Web/APIs a diferentes clientes (tenants)?
34. XXXIII Salón de Informática ACIS
Multi-Arrendamiento a Nivel de DB
¿Cómo se van a almacenar los datos (DBs) de los
diferentes clientes (tenants)?
35. XXXIII Salón de Informática ACIS
El Esquema Multi-Arrendamiento (Multi-tenancy)
baja
alta
Eficiencia
alta
Flexibilidad
baja
¿Cuánto cuesta entregar los servidores Web y de BD?
¿Cómo hago la administración de forma eficiente?
36. XXXIII Salón de Informática ACIS
Niveles de Personalización a Ofrecer
•
Diseño (logo, emails, etc.)
•
Variables globales
•
Nuevos campos
•
Niveles de acceso
•
Métodos de autenticación
•
Notificaciones
•
Workflows
•
Etc.
Cada cliente ¿Qué va a poder personalizar?
37. XXXIII Salón de Informática ACIS
¿A Dónde Se Va a Ejecutar el SaaS?
Usar el Cloud:
IaaS/PaaS
Usar Un Centro de
Datos Propio
38. XXXIII Salón de Informática ACIS
Consideraciones a Tener en Cuenta
Usar Un Centro de
Datos Propio
Usar el Cloud:
IaaS/PaaS
39. XXXIII Salón de Informática ACIS
Importante Temas Legales y de Seguridad
Usar el Cloud:
IaaS/PaaS
Usar Un Centro de
Datos Propio
40. XXXIII Salón de Informática ACIS
Nivel de Administración Requerido IaaS/PaaS
Packaged
Software
Applications
Applications
Software
Applications
Applications
Data
Data
Runtime
Runtime
Runtime
Middleware
Middleware
Middleware
Middleware
O/S
O/S
O/S
Virtualization
Virtualization
Servers
Servers
Storage
Storage
Networking
Networking
You manage
You manage
Runtime
Data
Managed by vendor
Virtualization
Servers
Storage
Networking
O/S
Virtualization
Servers
Managed by vendor
(as a Service)
(as a Service)
Managed by vendor
(as a Service)
Data
You manage
Platform
Infrastructure
Storage
Networking
¿Qué administra el proveedor de IaaS/PaaS?
¿Qué tengo que administrar para desplegar el SaaS?
41. XXXIII Salón de Informática ACIS
Proveedores de Infraestructura como Servicio (IaaS)
Infrastructure
You manage
(as a Service)
Applications
Data
Runtime
Middleware
O/S
Servers
Storage
Networking
Managed by vendor
Virtualization
Ofrecen mayores niveles de personalización.
Las labores de administración son más complejas.
42. XXXIII Salón de Informática ACIS
Proveedores de Plataforma como Servicio (PaaS)
You manage
Platform
(as a Service)
Applications
Data
Runtime
O/S
Virtualization
Servers
Storage
Managed by vendor
Middleware
Networking
Ofrecen menores niveles de personalización.
Las labores de administración son más simples.
44. XXXIII Salón de Informática ACIS
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.
45. XXXIII Salón de Informática ACIS
Definir el Motor de Bases de Datos A Utilizar
SQL
No-SQL
Es importante revisar cómo el motor de base de datos
SQL/No-SQL a utilizar es soportado por el IaaS/PaaS.
46. XXXIII Salón de Informática ACIS
Definir una Arquitectura Escalable Para la Aplicación
•
•
•
•
•
•
•
•
Web/API Servers
Workers/Colas
Crons
Databases
Caching
Blob Storage
Monitoring
Utilidades (SMS,
Email, Logs, etc.)
47. XXXIII Salón de Informática ACIS
Escalabilidad de los Web/API Servers
Los proveedores
IaaS/PaaS cobran
por hora de
cómputo
48. XXXIII Salón de Informática ACIS
Escalabilidad de la Base de Datos - SQL
Los proveedores
IaaS/PaaS cobran
por el tipo de
base de datos a
consumir
49. XXXIII Salón de Informática ACIS
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.
50. XXXIII Salón de Informática ACIS
Escalabilidad del Contenido (Imágenes/Videos)
Sistemas de
Almacenamiento
Externo
Blob Storage
Si los servidores Web aparecen y desaparecen, ¿Dónde
se deben almacenar los archivos (imágenes, etc.)?
51. XXXIII Salón de Informática ACIS
Caching y Datos de Sesión
Almacenamiento
Llave/Valor en
Memoria
Sistema de Caching
Si los servidores Web aparecen y desaparecen, ¿Dónde
se deben almacenar los datos de sesión?
52. XXXIII Salón de Informática ACIS
Procesos en Background – Workers/Colas
Los proveedores
IaaS/PaaS cobran por hora
de cómputo y por uso de
las colas.
Las solicitudes HTTP/JSON deben responderse en menos de
30/60 segundos, sino deben procesarse en background.
53. XXXIII Salón de Informática ACIS
Distribución del Contenido (CDNs)
Es buena idea colocar el contenido (video, imágenes,
archivos, etc.) cerca al origen de los usuarios.
54. XXXIII Salón de Informática ACIS
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.
55. XXXIII Salón de Informática ACIS
Monitoreo de la Solución SaaS
¿Cómo monitorear la aplicación una vez ha sido
desplegada? Ya hay herramientas externas de apoyo.
56. XXXIII Salón de Informática ACIS
Monitoreo de la Solución SaaS
Monitoreo de los diferentes servicios internos del
IaaS/PaaS y los servicios externos utilizados.
57. XXXIII Salón de Informática ACIS
Arquitectura de una Aplicación Web Escalable
¿Cuál es la
disponibilidad de
cada servicio?
58. XXXIII Salón de Informática ACIS
Es Importante Revisar la Disponibilidad de los Servicios
59. XXXIII Salón de Informática ACIS
¿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.
60. XXXIII Salón de Informática ACIS
¿Cuánto Cuestan Los Servicios Consumidos
(PaaS/IaaS/SaaS) Mensual/Anualmente?
Valor de los
Servicios
S
•
•
•
•
•
•
•
•
Web/API Servers
Workers/Colas
Crons
Databases
Caching
Blob Storage
Monitoring
Utilidades (SMS,
Email, Logs, etc.)
61. XXXIII Salón de Informática ACIS
Ajustes a la Estructura de Costos/Paquetes
62. XXXIII Salón de Informática ACIS
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
63. XXXIII Salón de Informática ACIS
Desarrollo Ágil – Despliegues Continuos
Desarrollar el Producto (SaaS) de Forma Iterativa e
Ir Probando Con Posibles Clientes
64. XXXIII Salón de Informática ACIS
Conocimientos del Equipo de Desarrollo
• Desarrollo
• Gestión
• Operación
Importante Que Todo El Equipo de Desarrollo
Conozca los IaaS/PaaS Utilizados
65. XXXIII Salón de Informática ACIS
Configuración de los Entornos de Desarrollo
Definir los Entornos Locales Para El Grupo de
Desarrollo (Development/Testing)
66. XXXIII Salón de Informática ACIS
Configuración de los Entornos de Desarrollo
•
•
•
•
•
•
•
Web/API Servers
Workers/Colas
Crons
Databases
Caching
Blob Storage
…..
Configuración de los Diferentes Servicios en el
Entorno Local
67. XXXIII Salón de Informática ACIS
Desarrollo Directamente en el Cloud
Ya hay IDEs que están disponibles directamente en
el cloud como servicio.
68. XXXIII Salón de Informática ACIS
Desarrollo de los Componentes de la Solución
SaaS
Diseño /
Identidades
Presentación
(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
69. XXXIII Salón de Informática ACIS
Despliegue a Entornos en el Cloud
Despliegue a los Ambientes Configurados
(pre-staging, staging, production) en el IaaS/PaaS
70. XXXIII Salón de Informática ACIS
Despliegue a Entornos en el Cloud
Los despliegues del SaaS sobre el IaaS/PaaS se
hacen a través del IDE o CLI.
71. XXXIII Salón de Informática ACIS
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
72. XXXIII Salón de Informática ACIS
Comenzar a Aprender de los Primeros Clientes
73. XXXIII Salón de Informática ACIS
Manejar Buenas Relaciones y El Soporte Con
los Clientes: Una Prioridad
Estar disponible cuando el cliente lo necesite.
Crear una base de contenido y conocimientos.
74. XXXIII Salón de Informática ACIS
Desarrollar un Mínimo Producto Viable (MVP)
75. XXXIII Salón de Informática ACIS
Iterar Hasta Tener Un Producto Que Le Guste A
Los Primeros Clientes
Hacer los cambios y refinar el perfil del cliente que
va a adquirir el SaaS (para escalar el negocio).
76. XXXIII Salón de Informática ACIS
Medir Cómo Los Primeros Clientes Usan El
SaaS
77. XXXIII Salón de Informática ACIS
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.
78. XXXIII Salón de Informática ACIS
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.
79. XXXIII Salón de Informática ACIS
Estrategias Para Atraer Más Clientes
Es posible comenzar a pensar en estrategias para
atraer más clientes y comenzar a probar el mercado.
80. XXXIII Salón de Informática ACIS
Estrategias de Marketing Para Dar a Conocer el
SaaS
•
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
¿Cuánto cuesta que un cliente conozca el SaaS?
¿Cuánto cuesta que un cliente se registre?
82. XXXIII Salón de Informática ACIS
Definir las Principales Métricas de
Éxito/Fracaso
83. XXXIII Salón de Informática ACIS
Elaborar un Tablero con los Principales PKIs
¿Es viable que el
modelo de
negocio escale?
¿Cuántos usuarios nuevos hay?
¿Cuántos cancelaron la suscripción?
84. XXXIII Salón de Informática ACIS
Es Importante Medir el Churn Rate y el CLV
Ejemplo para el mes de febrero:
El Científico de datos Steven H de Shopify
describe el churn rate como:
# cancelaciones del período
# de clientes al inicio del período
El churn rate para febrero:
26 usuarios perdidos
X 100
1035 usuarios pagaban al iniciar el periodo
El 2.5% de los clientes se van cada mes. El
cliente promedio permanece alrededor de 40
meses (100/2.5).
¿Es viable que el
modelo de negocio
escale?
El Customer Lifetime Value (CLV) es:
40 meses x Ingreso Mensual Por usuario
85. XXXIII Salón de Informática ACIS
Cohort Analysis
Es importante analizar el comportamiento de los usuarios
con base en los cambios realizados (nuevas
funcionalidades, cambio en precios, nuevos paquetes, etc.)
86. XXXIII Salón de Informática ACIS
Hacer los Cambios Necesarios Para Escalar
87. XXXIII Salón de Informática ACIS
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
88. XXXIII Salón de Informática ACIS
El Ciclo de Vida de Una Compañía SaaS
89. XXXIII Salón de Informática ACIS
El Ciclo de Vida de Una Compañía SaaS
90. XXXIII Salón de Informática ACIS
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.
91. XXXIII Salón de Informática ACIS
GRACIAS POR SU ATENCIÓN
Mario Villamizar – Harold Castro
Universidad de los Andes
{mj.villamizar24, hcastro}@uniandes.edu.co
@mariocloud