Presentación de PowerPoint - Uniandes
Transcript of Presentación de PowerPoint - Uniandes
![Page 1: Presentación de PowerPoint - Uniandes](https://reader031.fdocuments.ec/reader031/viewer/2022013001/61cadd14211fa021943424e7/html5/thumbnails/1.jpg)
Construcción de una línea de producto de aplicaciones que serán
ofrecidas a través de un marketplace en forma de Software como
Servicio (SaaS)
Harold Castro, [email protected]
Director del Departamento de Ingeniería de Sistemas y ComputaciónUniversidad de los Andes
Bogotá, Colombia
![Page 2: Presentación de PowerPoint - Uniandes](https://reader031.fdocuments.ec/reader031/viewer/2022013001/61cadd14211fa021943424e7/html5/thumbnails/2.jpg)
¿Cómo desarrollar, mantener y comercializar soluciones de software parapequeñas y medianas empresas en Colombia sin que estas empresas tengan querealizar grandes inversiones en infraestructura de TI y que al mismo tiempo elproveedor pueda desarrollar modelos de negocio y ofrecer eficientementesoluciones que puedan llegar a tener alcance e impacto a nivel nacional, regionaly/o mundial?
Principal problema a resolver
![Page 3: Presentación de PowerPoint - Uniandes](https://reader031.fdocuments.ec/reader031/viewer/2022013001/61cadd14211fa021943424e7/html5/thumbnails/3.jpg)
Para empezar a trabajar sobre cada uno de los frentes de trabajo se definió como prototipo de trabajo un simulador de créditos bancarios.
Definición de un prototipo SaaS
![Page 4: Presentación de PowerPoint - Uniandes](https://reader031.fdocuments.ec/reader031/viewer/2022013001/61cadd14211fa021943424e7/html5/thumbnails/4.jpg)
Cada empresa (tenant) crea una cuenta enla aplicación y configura unos parámetrosbásicos del simulador créditos.
Cientos de usuarios internos (con usuario ypassword) de cada empresa (tenant)ingresan a la aplicación a realizarsimulaciones.
Un usuario puede consultar y guardar losdiferentes planes de pago generados (tantoparámetros de entrada como parámetrosde salida).
La generación de un plan de pagos puedetomar un tiempo de procesamiento
considerable, entre 5 y 30 segundos.
DEFINICIÓN DE UN ESCENARIO DE ESCALABILIDAD Y MULTITENANCY
![Page 5: Presentación de PowerPoint - Uniandes](https://reader031.fdocuments.ec/reader031/viewer/2022013001/61cadd14211fa021943424e7/html5/thumbnails/5.jpg)
¿Cómo reducir los costos de desarrollo de aplicaciones individuales?
RETO 1
FRENTE DE TRABAJO 1
Entendimiento del dominio y desarrollo de una línea de productos bajo el modelo SaaS
Las problemáticas abordadas
![Page 6: Presentación de PowerPoint - Uniandes](https://reader031.fdocuments.ec/reader031/viewer/2022013001/61cadd14211fa021943424e7/html5/thumbnails/6.jpg)
Definición de una línea de producto de software (SPL) bajo el modelo SaaS
Las problemáticas abordadas
![Page 7: Presentación de PowerPoint - Uniandes](https://reader031.fdocuments.ec/reader031/viewer/2022013001/61cadd14211fa021943424e7/html5/thumbnails/7.jpg)
¿Cómo desarrollar aplicaciones escalables bajo el modelo SaaS (arquitecturas, tecnologías,
etc.)?
RETO 2
FRENTE DE TRABAJO 2
Selección y evaluación de arquitecturas y tecnologías para construir aplicaciones
escalables
La problemática a solucionar
![Page 8: Presentación de PowerPoint - Uniandes](https://reader031.fdocuments.ec/reader031/viewer/2022013001/61cadd14211fa021943424e7/html5/thumbnails/8.jpg)
J2EE
JBOSS
WebServer
PostgreSQL
DB
InternetUsers
Availability Zone
Migrar una aplicación monolítica tradicional a un modelo SaaS requiere decambios a nivel de arquitectura.
EVOLUCIÓN DE LA ARQUITECTURA 1
APLICACIÓN ACTUAL J2EE
![Page 9: Presentación de PowerPoint - Uniandes](https://reader031.fdocuments.ec/reader031/viewer/2022013001/61cadd14211fa021943424e7/html5/thumbnails/9.jpg)
J2EE
WebServer
Prototype
J2EE
Payment Plan
Generator
PostgreSQL
DB
InternetUsers
Availability Zone
Load
Balancer
Availability Zone
Load
Balancer
Desacoplando las tareas de intensivas en cómputo de las tareas con tiempo derespuesta cortos.
EVOLUCIÓN DE LA ARQUITECTURA 2
DESACOPLANDO LA GENERACIÓN DE PLANES DE PAGO
![Page 10: Presentación de PowerPoint - Uniandes](https://reader031.fdocuments.ec/reader031/viewer/2022013001/61cadd14211fa021943424e7/html5/thumbnails/10.jpg)
Jax-RS
WebServer
Internet
Availability Zone
Load
Balancer
S3
Availability Zone
Backbone AssetsMemcache
PostgreSQL
DB
Jax-RS + JPA
WebServer
Availability Zone
BILLING SERVICES
Users
Availability Zone
PostgreSQL
DB
Jax-RS + JPA
WebServer
Availability Zone
PAYMENT PLAN STORE SERVICES
Jax-RS + JPA
WebServer
Availability Zone
PAYMENT PLAN GENERATION SERVICES
PostgreSQL
DB
Jax-RS + JPA
WebServer
Availability Zone
RISK PROFILE SERVICES
BACK-END SERVICES
(GATEWAY)
Migrando hacia un modelo de micro-servicioscon Jax-RS.
EVOLUCIÓN DE LA ARQUITECTURA 3
UN MODELO DE MICRO-SERVICIOS
CON Jax-RS
![Page 11: Presentación de PowerPoint - Uniandes](https://reader031.fdocuments.ec/reader031/viewer/2022013001/61cadd14211fa021943424e7/html5/thumbnails/11.jpg)
EVOLUCIÓN DE LA ARQUITECTURA 3
UN MODELO DE MICRO-SERVICIOS CON Grails
Grails
WebServer
Internet
Availability Zone
Load
Balancer
S3
Availability Zone
Backbone AssetsMemcache
PostgreSQL
DB
Grails + JPA
WebServer
Availability Zone
BILLING SERVICES
Users
Availability Zone
PostgreSQL
DB
Grails + JPA
WebServer
Availability Zone
PAYMENT PLAN STORE SERVICES
Grails
WebServer
Availability Zone
PAYMENT PLAN GENERATION SERVICES
PostgreSQL
DB
Grails + JPA
WebServer
Availability Zone
RISK PROFILE SERVICES
BACK-END SERVICES
(GATEWAY)
Migrando hacia un modelo de micro-servicioscon Grails.
![Page 12: Presentación de PowerPoint - Uniandes](https://reader031.fdocuments.ec/reader031/viewer/2022013001/61cadd14211fa021943424e7/html5/thumbnails/12.jpg)
Play/Scala
WebServer
Internet
Availability Zone
Load
Balancer
S3
Availability Zone
Backbone AssetsMemcache
PostgreSQL
DB
Play/Scala + Slick
WebServer
Availability Zone
BILLING SERVICES
Users
Availability Zone
PostgreSQL
DB
Play/Scala + Slick
WebServer
Availability Zone
PAYMENT PLAN STORE SERVICES
Play/Scala
WebServer
Availability Zone
PAYMENT PLAN GENERATION SERVICES
PostgreSQL
DB
Play/Scala + Slick
WebServer
Availability Zone
RISK PROFILE SERVICES
BACK-END SERVICES
(GATEWAY)
Migrando hacia un modelo de micro-servicioscon Play/Scala.
EVOLUCIÓN DE LA
ARQUITECTURA 3
UN MODELO DE MICRO-
SERVICIOS CON Play/Scala
![Page 13: Presentación de PowerPoint - Uniandes](https://reader031.fdocuments.ec/reader031/viewer/2022013001/61cadd14211fa021943424e7/html5/thumbnails/13.jpg)
Play/Java
WebServer
Internet
Availability Zone
Load
Balancer
S3
Availability Zone
Backbone AssetsMemcache
PostgreSQL
DB
Play/Java + Ebeans
WebServer
Availability Zone
BILLING SERVICES
Users
Availability Zone
PostgreSQL
DB
Play/Java + Ebeans
WebServer
Availability Zone
PAYMENT PLAN STORE SERVICES
Play/Java
WebServer
Availability Zone
PAYMENT PLAN GENERATION SERVICES
PostgreSQL
DB
Play/Java + Ebeans
WebServer
Availability Zone
RISK PROFILE SERVICES
BACK-END SERVICES
(GATEWAY)
Migrando hacia un modelo de micro-servicioscon Play/Java.
EVOLUCIÓN DE LA
ARQUITECTURA 3
UN MODELO DE MICRO-
SERVICIOS CON Play/Java
![Page 14: Presentación de PowerPoint - Uniandes](https://reader031.fdocuments.ec/reader031/viewer/2022013001/61cadd14211fa021943424e7/html5/thumbnails/14.jpg)
REST/HTTP
WebSockets
WebServer
Internet
Availability Zone
Load
Balancer
S3
Availability Zone
Backbone AssetsMemcache
PostgreSQL
DB
REST/HTTP
WebServer
Availability Zone
BILLING SERVICES
Users
Availability Zone
PostgreSQL
DB
REST/HTTP
WebServer
Availability Zone
PAYMENT PLAN STORE SERVICES
REST/HTTP
WebServer
Availability Zone
PAYMENT PLAN GENERATION SERVICES
PostgreSQL
DB
REST/HTTP
WebServer
Availability Zone
RISK PROFILE SERVICES
BACK-END SERVICES
(GATEWAY)
Colas de Mensajes
Availability Zone
Integrando un modelo de procesamiento enbackground y real-time.
EVOLUCIÓN DE LA
ARQUITECTURA 4
UN MODELO DE MICRO-
SERVICIOS + COLAS +
REALTIME
![Page 15: Presentación de PowerPoint - Uniandes](https://reader031.fdocuments.ec/reader031/viewer/2022013001/61cadd14211fa021943424e7/html5/thumbnails/15.jpg)
Las labores de tunning de cada stack tecnológico y las pruebas de rendimientoconsumen bastante tiempo.
Servidor de aplicaciones
Manejo de threads
Gestión de respuestas HTTP
Gestión de conexiones a DB
Procesamiento de tareas intensivas en
cómputo
Framework de desarrollo
Configuración por defecto
Gestión de threads y paralelismo
Ejecución asíncrona de llamados REST
Manejador de persistencia (EclipseLink,
Hibernate, Slick, ebeans, etc.)
Gestión de estados
Librerías utilizadas
LECCIONES APRENDIDAS
![Page 16: Presentación de PowerPoint - Uniandes](https://reader031.fdocuments.ec/reader031/viewer/2022013001/61cadd14211fa021943424e7/html5/thumbnails/16.jpg)
Hacer un buen diseño de APIs REST para aplicaciones basadas en micro-serviciosrequiere un modelo de desarrollo y despliegue diferente.
Servicios de DB
Servicios para
tareas intensivas
en cómputo
API aplicación web
API aplicaciones
móviles
LECCIONES APRENDIDAS
![Page 17: Presentación de PowerPoint - Uniandes](https://reader031.fdocuments.ec/reader031/viewer/2022013001/61cadd14211fa021943424e7/html5/thumbnails/17.jpg)
LECCIONES APRENDIDAS
Nuevos frameworks como Play, lenguajes de back-end como Scala (por serfuncional) y modelos de actores basados en mensajes como Akka requieren unacurva de aprendizaje considerables.
![Page 18: Presentación de PowerPoint - Uniandes](https://reader031.fdocuments.ec/reader031/viewer/2022013001/61cadd14211fa021943424e7/html5/thumbnails/18.jpg)
LECCIONES APRENDIDAS
Frameworks web MVC de lado del cliente (browser) como Backbone.js y Angularrequieren de una curva de aprendizaje considerable y de nuevas habilidades porparte de los desarrolladores de Front-end (HTML, CSS y Javascript).
LECCIONES APRENDIDAS
![Page 19: Presentación de PowerPoint - Uniandes](https://reader031.fdocuments.ec/reader031/viewer/2022013001/61cadd14211fa021943424e7/html5/thumbnails/19.jpg)
LAS PROBLEMÁTICAS ABORDADAS
¿Cuál solución de IaaS/PaaS utilizar y cómo hacer uso eficiente de estás soluciones para
desplegar las aplicaciones SaaS?
RETO 3
FRENTE DE TRABAJO 3
Evaluación y selección de proveedores IaaS/PaaS
![Page 20: Presentación de PowerPoint - Uniandes](https://reader031.fdocuments.ec/reader031/viewer/2022013001/61cadd14211fa021943424e7/html5/thumbnails/20.jpg)
Plataformas cloud (PaaS) como Herokuproveen un rendimiento muy variablepor lo cual medir el rendimiento en unelemento de la aplicación es complejo.
Plataforma cloud (PaaS) como Herokuexponen todas las aplicaciones a Internetlo cual hace más complejo el desplieguede servicios privados (que no deben estarexpuestos a Internet).
El despliegue de aplicaciones sobresoluciones como Amazon Web Servicesrequiere de tareas complejas deautomatización para el despliegue deapps basadas en micro-servicios..
USO DE SOLUCIONES IaaS/PaaS
![Page 21: Presentación de PowerPoint - Uniandes](https://reader031.fdocuments.ec/reader031/viewer/2022013001/61cadd14211fa021943424e7/html5/thumbnails/21.jpg)
¿Cómo aprovisionar las aplicaciones bajo el modelo de auto-servicio a través de un
marketplace?
RETO 4
FRENTE DE TRABAJO 4
Desarrollo de un marketplace para el aprovisionamiento de aplicaciones
LAS PROBLEMÁTICAS ABORDADAS
![Page 22: Presentación de PowerPoint - Uniandes](https://reader031.fdocuments.ec/reader031/viewer/2022013001/61cadd14211fa021943424e7/html5/thumbnails/22.jpg)
¿Cuál debe ser el modelo de negocio y la estrategia de marketing para comercializar las
aplicaciones?
RETO 5
FRENTE DE TRABAJO 5
Definición de un modelo de negocio y una estrategia de marketing
LAS PROBLEMÁTICAS ABORDADAS
![Page 23: Presentación de PowerPoint - Uniandes](https://reader031.fdocuments.ec/reader031/viewer/2022013001/61cadd14211fa021943424e7/html5/thumbnails/23.jpg)
Harold Castro, [email protected]
Director del Departamento de Ingeniería de Sistemas y ComputaciónUniversidad de los Andes
Bogotá, Colombia
![Page 24: Presentación de PowerPoint - Uniandes](https://reader031.fdocuments.ec/reader031/viewer/2022013001/61cadd14211fa021943424e7/html5/thumbnails/24.jpg)
¿Cómo reducir los costos de desarrollo de aplicaciones individuales?
¿Cómo desarrollar aplicaciones escalables bajo el modelo SaaS (arquitecturas, tecnologías, etc.) ?
¿Cuál solución de IaaS/PaaS utilizar y cómo hacer uso eficiente de estás soluciones para desplegar las aplicaciones SaaS?
¿Cómo aprovisionar las aplicaciones bajo el modelo de auto-servicio a través de un marketplace?
¿Cuál debe ser el modelo de negocio y la estrategia de marketing para comercializar las aplicaciones?
RETOS
Entendimiento del dominio y desarrollo de una línea de productos bajo el modelo SaaS
Selección y evaluación de arquitecturas y tecnologías para construir aplicaciones escalables
Evaluación y selección de proveedores IaaS/PaaS
Desarrollo de un marketplace para el aprovisionamiento de aplicaciones
Definición de un modelo de negocio y una estrategia de marketing
FRENTES DE TRABAJO