SlideShare una empresa de Scribd logo
1 de 20
Descargar para leer sin conexión
Whoami
Adrián Breitburd
Technical Director, Big Data & High Performance Solutions Studio
● +15 Años de experiencia en aplicaciones con altos volúmenes de transacciones.
● Responsable Técnico de los proyectos de Google.
● Jefe de trabajos Prácticos de la cátedra de Sistemas Operativos en UTN-FRBA por 9
años.
● Desarrollador en mis tiempos libres.
Agenda
● Arquitectura de un Aplicación Básica
● Escalamiento
● Desarrollo Capa a Capa
● Ejemplo real
● Arquitectura en la nube
● ¿Preguntas?
Aplicaciones Escalables - Típica Aplicación Simple
Pros:
● Esta autocontenido.
● Simple de gestionar.
● Simple de armar el entorno de desarrollo.
● Costos asociados a las instancias al mínimo.
Aplicaciones Escalables - Típica Aplicación Simple
Pros:
● Esta autocontenido.
● Simple de gestionar.
● Simple de armar el entorno de desarrollo.
● Costos asociados a las instancias al mínimo.
Contras:
● Single Point of Failure.
● Competencia por los recursos.
● Si un servicio debe escalar en tamaño, debo
escalar todo junto.
Aplicaciones Escalables - Alternativas para escalar
Verticalmente:
● Simple de ejecutar.
● Típicamente es una migración o un upgrade.
● No requiere desarrollos específicos.
● Tiene un límite.
Aplicaciones Escalables - Alternativas para escalar
Especializar y escalar verticalmente:
● Simple de ejecutar.
● Típicamente es una migración o un upgrade.
● No requiere desarrollos específicos *
● También tiene un límite.
Aplicaciones Escalables - Alternativas para escalar
Escalar Horizontalmente:
● Requiere cuidado en la programación.
● Puede crecer o decrecer, aunque no automáticamente.
● La gestión se vuelve más compleja rápidamente.
● El entorno de desarrollo y testing es más complejo.
● Facilita la tolerancia a caídas
Aplicaciones Escalables - Capa de Http
Consideraciones especiales:
● Puedo sumarle para los archivos estáticos un CDN.
● En esta capa (o en el load balancer) se terminan los pedidos https..
● Sin single point of failure.
● Normalmente es muy sencillo escalarlo horizontalmente.
Aplicaciones Escalables - Capa de Aplicación
● Usualmente se le adiciona un Caché Distribuido.
● En un mundo ideal, las peticiones son independientes y sin estado.
● Es tal vez la capa más difícil de escalar Horizontalmente pero la que mejor lo aprovecha
● Edge side cache es una opción muy atractiva.
Aplicaciones Escalables - Capa de Base de Datos
● Hay muchas variantes de replicas, RW,RO,etc
● Solo se escribe en la master.
● Luego los cambios son propagados a las
réplicas.
● Las réplicas sirven aplicaciones como generación
de reportes, consultas, etc.
● En caso de desastre, se puede promover una
réplica a Master, usualmente con tiempo sin
servicio.
Aplicaciones Escalables - Capa de Base de Datos (cont.)
Particiones o Sharding
● La aplicación puede o no conocer las particiones
● Los datos se alojan en una o varias BD
● La elección del criterio de particionado es
determinante en la performance.
● A toda costa se deben evitar las consultas multi-
partición.
● Plataforma para proceso masivo de SMS para programas de TV (Ej Gran Hermano)
● Debe soportar concursos y Trivias
● La performance de la plataforma impacta directamente en la facturación
● Solo se pueden descartar SMS como última alternativa
● No puede haber un single point of failure, ni caídas del servicio durante el programa en vivo
Aplicaciones Escalables - Ejemplo Real - Contexto
Requerimientos de Performance
● 70M Mensajes/Mes
● Picos de
○ 2M msg/hr
○ 400 msg/sec por operadora
● SMS turnaround time <10 segs
● Picos duran < 15 minutes
Aplicaciones Escalables - Ejemplo Real - Arq alto nivel
Aplicaciones Escalables - Ejemplo Real - Esquema de colas
Aplicaciones Escalables - Apalancando en la nube
● EC2
● Scaling groups
● SQS
● Elastic Load Balancer
● Cache
● RDS
● S3
● Zonas de disponibilidad
Aplicaciones Escalables - Apalancando en la nube
Pros:
● Puedo escalar mi infraestructura a medida que la necesito.
● Es elástica, puede crecer por picos y luego decrecer.
● Se puede escalar tanto verticalmente como Horizontalmente.
● Puedo usar esta plataforma para hacer dimensionamiento de entornos propios.
● Esta probado
Aplicaciones Escalables - Apalancando en la nube
Contras:
● Como el entorno no esta 100% bajo mi control, la performance puede no ser
predecible. “Vecindario Ruidoso”.
● Una vez establecido el dimensionamiento es mas costoso que la infraestructura
propia.
● Todavia, pero no a es dificil migrar de proveedores
Gracias!
Adrian Breitburd @abreitburd
adrian@globant.com

Más contenido relacionado

Destacado

Equipo y trabajo en equipo
Equipo y trabajo en equipoEquipo y trabajo en equipo
Equipo y trabajo en equipo
ezumba1312
 
Modelo de Alto Rendimiento empresarial
Modelo de Alto Rendimiento empresarialModelo de Alto Rendimiento empresarial
Modelo de Alto Rendimiento empresarial
Carlos Guiteras
 
La estructura de los equipos de alto rendimiento. Series: Modelos de negocio
La estructura de los equipos de alto rendimiento. Series: Modelos de negocioLa estructura de los equipos de alto rendimiento. Series: Modelos de negocio
La estructura de los equipos de alto rendimiento. Series: Modelos de negocio
Jorge Edgar Mora Reyes
 
Administracion De Operaciones Ii Exposicion Equipos De Alto Rendimiento
Administracion De Operaciones Ii Exposicion Equipos De Alto RendimientoAdministracion De Operaciones Ii Exposicion Equipos De Alto Rendimiento
Administracion De Operaciones Ii Exposicion Equipos De Alto Rendimiento
Instituto Tecnologico De Pachuca
 
Equipos de alto rendimiento
Equipos de alto rendimientoEquipos de alto rendimiento
Equipos de alto rendimiento
luisj23
 
Equipos de alto rendimiento
Equipos de alto rendimientoEquipos de alto rendimiento
Equipos de alto rendimiento
Ana Gutierrez
 

Destacado (11)

Alto rendimiento organizacional
Alto rendimiento  organizacional  Alto rendimiento  organizacional
Alto rendimiento organizacional
 
PROGRAMA DE ENTRENAMIENTO DE ALTO RENDIMIENTO EMPRESARIAL
PROGRAMA DE ENTRENAMIENTO DE ALTO RENDIMIENTO EMPRESARIALPROGRAMA DE ENTRENAMIENTO DE ALTO RENDIMIENTO EMPRESARIAL
PROGRAMA DE ENTRENAMIENTO DE ALTO RENDIMIENTO EMPRESARIAL
 
Organizaciones De Alto Rendimiento Quinta Semana
Organizaciones De Alto Rendimiento Quinta SemanaOrganizaciones De Alto Rendimiento Quinta Semana
Organizaciones De Alto Rendimiento Quinta Semana
 
Equipo y trabajo en equipo
Equipo y trabajo en equipoEquipo y trabajo en equipo
Equipo y trabajo en equipo
 
Manejo Del Tiempo
Manejo Del TiempoManejo Del Tiempo
Manejo Del Tiempo
 
Modelo de Alto Rendimiento empresarial
Modelo de Alto Rendimiento empresarialModelo de Alto Rendimiento empresarial
Modelo de Alto Rendimiento empresarial
 
La estructura de los equipos de alto rendimiento. Series: Modelos de negocio
La estructura de los equipos de alto rendimiento. Series: Modelos de negocioLa estructura de los equipos de alto rendimiento. Series: Modelos de negocio
La estructura de los equipos de alto rendimiento. Series: Modelos de negocio
 
Administracion De Operaciones Ii Exposicion Equipos De Alto Rendimiento
Administracion De Operaciones Ii Exposicion Equipos De Alto RendimientoAdministracion De Operaciones Ii Exposicion Equipos De Alto Rendimiento
Administracion De Operaciones Ii Exposicion Equipos De Alto Rendimiento
 
Equipos de alto rendimiento
Equipos de alto rendimientoEquipos de alto rendimiento
Equipos de alto rendimiento
 
Characteristics Of High Performance Teams
Characteristics Of High Performance TeamsCharacteristics Of High Performance Teams
Characteristics Of High Performance Teams
 
Equipos de alto rendimiento
Equipos de alto rendimientoEquipos de alto rendimiento
Equipos de alto rendimiento
 

Similar a Desarrollo de aplicaciones altamente escalables

Similar a Desarrollo de aplicaciones altamente escalables (20)

Principios de cloud native
Principios de cloud nativePrincipios de cloud native
Principios de cloud native
 
Introducción al Cloud Computing
Introducción al Cloud ComputingIntroducción al Cloud Computing
Introducción al Cloud Computing
 
Servidores web de altas prestaciones. Tema 2
Servidores web de altas prestaciones. Tema 2Servidores web de altas prestaciones. Tema 2
Servidores web de altas prestaciones. Tema 2
 
Performance Tourism-Anticipación y prevención
Performance Tourism-Anticipación y prevenciónPerformance Tourism-Anticipación y prevención
Performance Tourism-Anticipación y prevención
 
Entrega contínua en la práctica
Entrega contínua en la prácticaEntrega contínua en la práctica
Entrega contínua en la práctica
 
Grails y EC2 - De cero a multinacional
Grails y EC2 - De cero a multinacionalGrails y EC2 - De cero a multinacional
Grails y EC2 - De cero a multinacional
 
Optimización de aplicaciones web con base de datos NoSQL In-Memory
Optimización de aplicaciones web con base de datos NoSQL In-MemoryOptimización de aplicaciones web con base de datos NoSQL In-Memory
Optimización de aplicaciones web con base de datos NoSQL In-Memory
 
Drupal 7 para sitios de alto rendimiento y alta disponibilidad
Drupal 7 para sitios de alto rendimiento y alta disponibilidadDrupal 7 para sitios de alto rendimiento y alta disponibilidad
Drupal 7 para sitios de alto rendimiento y alta disponibilidad
 
Sitios web de alto rendimiento y alta disponibilidad
Sitios web de alto rendimiento y alta disponibilidadSitios web de alto rendimiento y alta disponibilidad
Sitios web de alto rendimiento y alta disponibilidad
 
Go global
Go globalGo global
Go global
 
Real World Agile Roadshow 2013 - Planificación y Arquitectura Ágil
Real World Agile Roadshow 2013 - Planificación y Arquitectura ÁgilReal World Agile Roadshow 2013 - Planificación y Arquitectura Ágil
Real World Agile Roadshow 2013 - Planificación y Arquitectura Ágil
 
Agileload - pruebas de carga
Agileload - pruebas de cargaAgileload - pruebas de carga
Agileload - pruebas de carga
 
Consejos de los expertos para actualizar el Stack ELK
Consejos de los expertos para actualizar el Stack ELKConsejos de los expertos para actualizar el Stack ELK
Consejos de los expertos para actualizar el Stack ELK
 
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...
 
20130329 Patrones de Aplicaciones para La nube #GWAB
20130329 Patrones de Aplicaciones para La nube #GWAB20130329 Patrones de Aplicaciones para La nube #GWAB
20130329 Patrones de Aplicaciones para La nube #GWAB
 
GWAB - Patrones para aplicaciones en la Nube
GWAB - Patrones para aplicaciones en la NubeGWAB - Patrones para aplicaciones en la Nube
GWAB - Patrones para aplicaciones en la Nube
 
Vaadin y Grails Barcamp 2013
Vaadin y Grails Barcamp 2013Vaadin y Grails Barcamp 2013
Vaadin y Grails Barcamp 2013
 
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de desplieguesSecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
 
WPO para proyectos WooComerce
WPO para proyectos WooComerceWPO para proyectos WooComerce
WPO para proyectos WooComerce
 
Terraform Ansible v3.0
Terraform Ansible v3.0Terraform Ansible v3.0
Terraform Ansible v3.0
 

Más de Globant

Navegando el desafío de transformación digital de los servicios financieros
Navegando el desafío de transformación digital de los servicios financierosNavegando el desafío de transformación digital de los servicios financieros
Navegando el desafío de transformación digital de los servicios financieros
Globant
 

Más de Globant (20)

Webinar MLOps: When AA gets serious.
Webinar MLOps: When AA gets serious.Webinar MLOps: When AA gets serious.
Webinar MLOps: When AA gets serious.
 
Google Cloud Spanner y NewSQL
Google Cloud Spanner y NewSQLGoogle Cloud Spanner y NewSQL
Google Cloud Spanner y NewSQL
 
Eventos Asíncronos como estrategia virtual
Eventos Asíncronos como estrategia virtualEventos Asíncronos como estrategia virtual
Eventos Asíncronos como estrategia virtual
 
Cultura y valores 4.0 para líderes 4.0
Cultura y valores 4.0 para líderes 4.0Cultura y valores 4.0 para líderes 4.0
Cultura y valores 4.0 para líderes 4.0
 
Tech Insiders Salesforce: SFDX e Integración Continua
Tech Insiders Salesforce: SFDX e Integración ContinuaTech Insiders Salesforce: SFDX e Integración Continua
Tech Insiders Salesforce: SFDX e Integración Continua
 
Como impulsar tu carrera Salesforce
Como impulsar tu carrera SalesforceComo impulsar tu carrera Salesforce
Como impulsar tu carrera Salesforce
 
3D Programming Basics: WebGL
3D Programming Basics: WebGL3D Programming Basics: WebGL
3D Programming Basics: WebGL
 
Converge augmented report
Converge augmented reportConverge augmented report
Converge augmented report
 
Sistema de recomendación entiempo real usando Delta Lake
Sistema de recomendación entiempo real usando Delta LakeSistema de recomendación entiempo real usando Delta Lake
Sistema de recomendación entiempo real usando Delta Lake
 
Kubeflow: Machine Learning en Cloud para todos
Kubeflow: Machine Learning en Cloud para todosKubeflow: Machine Learning en Cloud para todos
Kubeflow: Machine Learning en Cloud para todos
 
Orquestando Pipelines de Datosen AWS con Step Function y AWS Glue
Orquestando Pipelines de Datosen AWS con Step Function y AWS GlueOrquestando Pipelines de Datosen AWS con Step Function y AWS Glue
Orquestando Pipelines de Datosen AWS con Step Function y AWS Glue
 
Apache Beam: Lote portátil y procesamiento de transmisión
Apache Beam: Lote portátil y procesamiento de transmisiónApache Beam: Lote portátil y procesamiento de transmisión
Apache Beam: Lote portátil y procesamiento de transmisión
 
Navegando el desafío de transformación digital de los servicios financieros
Navegando el desafío de transformación digital de los servicios financierosNavegando el desafío de transformación digital de los servicios financieros
Navegando el desafío de transformación digital de los servicios financieros
 
Converge 2020
Converge 2020 Converge 2020
Converge 2020
 
Converge 2020
Converge 2020Converge 2020
Converge 2020
 
Tendencias de tecnología para el recién egresado
Tendencias de tecnología para el recién egresadoTendencias de tecnología para el recién egresado
Tendencias de tecnología para el recién egresado
 
SRE: ¿Qué es y cómo gestionar el Toil?
SRE: ¿Qué es y cómo gestionar el Toil?SRE: ¿Qué es y cómo gestionar el Toil?
SRE: ¿Qué es y cómo gestionar el Toil?
 
Monitoreo en tiempo real para la mejora continua de una aplicación
Monitoreo en tiempo real para la mejora continua de una aplicaciónMonitoreo en tiempo real para la mejora continua de una aplicación
Monitoreo en tiempo real para la mejora continua de una aplicación
 
¿Cómo automatizar pruebas de infraestructura y no morir en el intento?
¿Cómo automatizar pruebas de infraestructura y no morir en el intento?¿Cómo automatizar pruebas de infraestructura y no morir en el intento?
¿Cómo automatizar pruebas de infraestructura y no morir en el intento?
 
Automatización en AWS con Chatbot Serverless (Amazon Lex)
Automatización en AWS con Chatbot Serverless (Amazon Lex)Automatización en AWS con Chatbot Serverless (Amazon Lex)
Automatización en AWS con Chatbot Serverless (Amazon Lex)
 

Último

Antenas, tipos de antenas, diseño basico de una antena y parámetros.pdf
Antenas, tipos de antenas, diseño basico de una antena y parámetros.pdfAntenas, tipos de antenas, diseño basico de una antena y parámetros.pdf
Antenas, tipos de antenas, diseño basico de una antena y parámetros.pdf
perezreyesalberto10
 
Mapas Conceptuales finales Rubén finales.pptx
Mapas Conceptuales finales Rubén finales.pptxMapas Conceptuales finales Rubén finales.pptx
Mapas Conceptuales finales Rubén finales.pptx
jose880240
 

Último (8)

Antenas, tipos de antenas, diseño basico de una antena y parámetros.pdf
Antenas, tipos de antenas, diseño basico de una antena y parámetros.pdfAntenas, tipos de antenas, diseño basico de una antena y parámetros.pdf
Antenas, tipos de antenas, diseño basico de una antena y parámetros.pdf
 
¡Descubre el Poder del Masaje Holístico en nuestra Primera Sesión del Seminar...
¡Descubre el Poder del Masaje Holístico en nuestra Primera Sesión del Seminar...¡Descubre el Poder del Masaje Holístico en nuestra Primera Sesión del Seminar...
¡Descubre el Poder del Masaje Holístico en nuestra Primera Sesión del Seminar...
 
Corte de luz 2024 Guayaquil Guayas ecuad
Corte de luz 2024 Guayaquil Guayas ecuadCorte de luz 2024 Guayaquil Guayas ecuad
Corte de luz 2024 Guayaquil Guayas ecuad
 
tabla-bacterias-1-0-179241-downloadable-3772106.pdf
tabla-bacterias-1-0-179241-downloadable-3772106.pdftabla-bacterias-1-0-179241-downloadable-3772106.pdf
tabla-bacterias-1-0-179241-downloadable-3772106.pdf
 
P7_E1_DanielPoza.pdf Los avances en los sistemas de comunicascion y su difusi...
P7_E1_DanielPoza.pdf Los avances en los sistemas de comunicascion y su difusi...P7_E1_DanielPoza.pdf Los avances en los sistemas de comunicascion y su difusi...
P7_E1_DanielPoza.pdf Los avances en los sistemas de comunicascion y su difusi...
 
Presentacion Seguridad y Privacidad en la Web
Presentacion Seguridad y Privacidad en la WebPresentacion Seguridad y Privacidad en la Web
Presentacion Seguridad y Privacidad en la Web
 
Mapas Conceptuales finales Rubén finales.pptx
Mapas Conceptuales finales Rubén finales.pptxMapas Conceptuales finales Rubén finales.pptx
Mapas Conceptuales finales Rubén finales.pptx
 
Emprende en SPA Segundo día CENEC Mexico
Emprende en SPA Segundo día CENEC MexicoEmprende en SPA Segundo día CENEC Mexico
Emprende en SPA Segundo día CENEC Mexico
 

Desarrollo de aplicaciones altamente escalables

  • 1.
  • 2.
  • 3. Whoami Adrián Breitburd Technical Director, Big Data & High Performance Solutions Studio ● +15 Años de experiencia en aplicaciones con altos volúmenes de transacciones. ● Responsable Técnico de los proyectos de Google. ● Jefe de trabajos Prácticos de la cátedra de Sistemas Operativos en UTN-FRBA por 9 años. ● Desarrollador en mis tiempos libres.
  • 4. Agenda ● Arquitectura de un Aplicación Básica ● Escalamiento ● Desarrollo Capa a Capa ● Ejemplo real ● Arquitectura en la nube ● ¿Preguntas?
  • 5. Aplicaciones Escalables - Típica Aplicación Simple Pros: ● Esta autocontenido. ● Simple de gestionar. ● Simple de armar el entorno de desarrollo. ● Costos asociados a las instancias al mínimo.
  • 6. Aplicaciones Escalables - Típica Aplicación Simple Pros: ● Esta autocontenido. ● Simple de gestionar. ● Simple de armar el entorno de desarrollo. ● Costos asociados a las instancias al mínimo. Contras: ● Single Point of Failure. ● Competencia por los recursos. ● Si un servicio debe escalar en tamaño, debo escalar todo junto.
  • 7. Aplicaciones Escalables - Alternativas para escalar Verticalmente: ● Simple de ejecutar. ● Típicamente es una migración o un upgrade. ● No requiere desarrollos específicos. ● Tiene un límite.
  • 8. Aplicaciones Escalables - Alternativas para escalar Especializar y escalar verticalmente: ● Simple de ejecutar. ● Típicamente es una migración o un upgrade. ● No requiere desarrollos específicos * ● También tiene un límite.
  • 9. Aplicaciones Escalables - Alternativas para escalar Escalar Horizontalmente: ● Requiere cuidado en la programación. ● Puede crecer o decrecer, aunque no automáticamente. ● La gestión se vuelve más compleja rápidamente. ● El entorno de desarrollo y testing es más complejo. ● Facilita la tolerancia a caídas
  • 10. Aplicaciones Escalables - Capa de Http Consideraciones especiales: ● Puedo sumarle para los archivos estáticos un CDN. ● En esta capa (o en el load balancer) se terminan los pedidos https.. ● Sin single point of failure. ● Normalmente es muy sencillo escalarlo horizontalmente.
  • 11. Aplicaciones Escalables - Capa de Aplicación ● Usualmente se le adiciona un Caché Distribuido. ● En un mundo ideal, las peticiones son independientes y sin estado. ● Es tal vez la capa más difícil de escalar Horizontalmente pero la que mejor lo aprovecha ● Edge side cache es una opción muy atractiva.
  • 12. Aplicaciones Escalables - Capa de Base de Datos ● Hay muchas variantes de replicas, RW,RO,etc ● Solo se escribe en la master. ● Luego los cambios son propagados a las réplicas. ● Las réplicas sirven aplicaciones como generación de reportes, consultas, etc. ● En caso de desastre, se puede promover una réplica a Master, usualmente con tiempo sin servicio.
  • 13. Aplicaciones Escalables - Capa de Base de Datos (cont.) Particiones o Sharding ● La aplicación puede o no conocer las particiones ● Los datos se alojan en una o varias BD ● La elección del criterio de particionado es determinante en la performance. ● A toda costa se deben evitar las consultas multi- partición.
  • 14. ● Plataforma para proceso masivo de SMS para programas de TV (Ej Gran Hermano) ● Debe soportar concursos y Trivias ● La performance de la plataforma impacta directamente en la facturación ● Solo se pueden descartar SMS como última alternativa ● No puede haber un single point of failure, ni caídas del servicio durante el programa en vivo Aplicaciones Escalables - Ejemplo Real - Contexto Requerimientos de Performance ● 70M Mensajes/Mes ● Picos de ○ 2M msg/hr ○ 400 msg/sec por operadora ● SMS turnaround time <10 segs ● Picos duran < 15 minutes
  • 15. Aplicaciones Escalables - Ejemplo Real - Arq alto nivel
  • 16. Aplicaciones Escalables - Ejemplo Real - Esquema de colas
  • 17. Aplicaciones Escalables - Apalancando en la nube ● EC2 ● Scaling groups ● SQS ● Elastic Load Balancer ● Cache ● RDS ● S3 ● Zonas de disponibilidad
  • 18. Aplicaciones Escalables - Apalancando en la nube Pros: ● Puedo escalar mi infraestructura a medida que la necesito. ● Es elástica, puede crecer por picos y luego decrecer. ● Se puede escalar tanto verticalmente como Horizontalmente. ● Puedo usar esta plataforma para hacer dimensionamiento de entornos propios. ● Esta probado
  • 19. Aplicaciones Escalables - Apalancando en la nube Contras: ● Como el entorno no esta 100% bajo mi control, la performance puede no ser predecible. “Vecindario Ruidoso”. ● Una vez establecido el dimensionamiento es mas costoso que la infraestructura propia. ● Todavia, pero no a es dificil migrar de proveedores