SlideShare a Scribd company logo
1 of 36
#GWAB #BOGOTA
Patrones para aplicaciones en la nube
Ricardo González Vargas
Sénior IT Architecture & SD Consultant
Microsoft Regional Director
rgonzalez@androcial.com
rgonzalez@mvps.org
http://twitter.com/rgonv
http://about.me/ricardo.gonzalez
20130329 Patrones de Aplicaciones para La nube #GWAB
#GWAB #BOGOTA
Global bootcamp?
Localización
Ciudades
Países
MVP’s
Asistentes
#GWAB #BOGOTA
Ricardo Gonzalez Vargas
Arquitecto de Soluciones con mas de 15 años de experiencia en diferentes verticales como
Telecomunicaciones, Salud, Banca entre otros.
Especializado en Definición de arquitectura, optimización y diagnostico de sistemas.
Microsoft MVP 2002 – 2011, Regional Director Microsoft 2004 - 2014.
Co-Founder & CEO de Androcial
rgonzalez@androcial.com
rgonzalez@mvps.org
http://twitter.com/rgonv
http://about.me/ricardo.gonzalez
AGENDA
• Patrones para la Nube??
• Clasificaciones
• Patrones para soluciones en
la nube
#GWAB #BOGOTA
Que son los patrones?
Un patrón de diseño en arquitectura y en
informática es una manera formal de
documentar una solución a un problema de
diseño en un determinado contexto.
#GWAB #BOGOTA
Clasificación de los patrones
Los patrones pueden organizarse por múltiples criterios, esto incluyen:
- Por Disciplina: software, economía, música
- Por Dominio: real-time, user interface, comunicaciones, sistemas distribuidos, sistemas
embebidos, etc.
- Por Paradigmas: Orientado a Objetos, Funcional, imperativo
- Por Granularidad: Arquitectónicos, De Diseño, Idiomas
- Por Propósito: De comportamiento, de distribución, de confiabilidad
Por lo general, se utilizan múltiples criterios para organizar un conjunto de patrones.
#GWAB #BOGOTA
Clasificación de patrones para la nube
Se clasifican básicamente por propósito:
Propósito Descripción
Disponibilidad Define la proporción de tiempo que el
sistema esta disponible y trabajando
Administración de datos Clave en las aplicaciones en la nube
Diseño e implementación Consistencia y coherencia en el diseño,
despliegue, mantenibilidad.
Mensajería Conectividad para componentes y
servicios
Administración y monitoreo Exponer información en runtime para
que los operadores y administradores
puedan tomar acciones
#GWAB #BOGOTA
Clasificación de patrones para la nube
Se clasifican básicamente por propósito:
Propósito Descripción
Rendimiento y escalabilidad Indicador de la respuesta del sistema/
capacidad de soportar mas carga sin
afectar el rendimiento
Resiliencia Capacidad para manejar y recuperarse de
fallas.
Seguridad Prevencion de acciones accidentales o
maliciosas fuera del uso esperado para
prevenir divulgación o perdida de
informacion
#GWAB #BOGOTA
Consumidores compitiendo - Problema
En una aplicación que se ejecuta en la nube se puede esperar
manejar un gran número de solicitudes. En lugar de procesar cada
solicitud de forma sincrónica, una técnica común es que la aplicación
pase a través de un sistema de mensajería a otro servicio (un servicio
al consumidor) que los maneja de forma asincrónica. Esta estrategia
ayuda a asegurar que la lógica empresarial de la aplicación no se
bloquea mientras que las solicitudes se están procesando.
#GWAB #BOGOTA
Consumidores Compitiendo - Solución
#GWAB #BOGOTA
Consumidores Compitiendo -
Consideraciones
- Orden de los mensajes
- Diseñar servicios resilientes
- Detección de mensajes malignos
- Manejo de resultados
#GWAB #BOGOTA
Consumidores Compitiendo – Cuando
usar
- La carga de trabajo de una aplicación se divide en tareas que se pueden ejecutar de forma
asincrónica.
- Las tareas son independientes y pueden funcionar en paralelo.
- El volumen de trabajo es muy variable, lo que requiere una solución escalable.
- La solución debe proporcionar una alta disponibilidad, y debe ser resistente si el
procesamiento de una tarea falla.
#GWAB #BOGOTA
Consumidores Compitiendo – Cuando
NO usar
- No es fácil de separar la carga de trabajo de aplicación en tareas discretas, o hay un alto grado
de dependencia entre tareas.
- Las tareas deben ser realizadas de forma sincrónica, y la lógica de la aplicación deben esperar a
que una tarea sea completada antes de continuar.
- Las tareas deben ser realizadas en una secuencia específica.
#GWAB #BOGOTA
Ricardo González Vargas
Sénior IT Architecture & SD Consultant
Microsoft Regional Director
rgonzalez@androcial.com
rgonzalez@mvps.org
http://twitter.com/rgonv
http://about.me/ricardo.gonzalez
Selección de Líder - Problema
• Coordinar las acciones realizadas por un conjunto de instancias de
tareas de colaboración en una aplicación distribuida mediante la
elección de una instancia como el líder que asume la responsabilidad
de la gestión de los otros casos. Este patrón puede ayudar a asegurar
que las instancias de tareas no entren en conflicto entre sí, que no
causen contención de recursos compartidos, o inadvertidamente
interfieran con el trabajo que otras instancias de tareas se están
realizando.
Selección de Líder - Solución
Selección de Líder - Consideraciones
• La elección debe ser resiliente a fallas
• Debe poderse saber si el líder ha fallado o no esta disponible
• Cuando hay autoscaling, el líder puede ser dado de baja
• Cuando se usa un mutex compartido externo, se depende de la
disponibilidad de este
• Se puede usar un líder dedicado, pero si falla, se puede afectar el
rendimiento y la respuesta del sistema
• La implementación manual del algoritmo da mayor flexibilidad
Selección de Líder – Cuando usar
• Use este patrón, cuando las tareas en una aplicación distribuida como
en la nube, requieran cuidadosa coordinación y no exista un líder
natural
Selección de Líder – Cuando NO usar
• Si hay un líder natural
• Si la coordinación de tareas puede realizarse de una manera mas
liviana. (Ej,Locks optimistas o pesimistas)
• Si alguna solución de un tercero es mas adecuada
#GWAB #BOGOTA
Ricardo González Vargas
Sénior IT Architecture & SD Consultant
Microsoft Regional Director
rgonzalez@androcial.com
rgonzalez@mvps.org
http://twitter.com/rgonv
http://about.me/ricardo.gonzalez
Hospedaje de contenido estático - Problema
• Las aplicaciones Web suelen incluir algunos elementos de contenido
estático. Este contenido estático puede incluir páginas HTML y otros
recursos, como imágenes y documentos que están a disposición del
cliente, ya sea como parte de una página HTML (como las imágenes
en línea, hojas de estilos y archivos de JavaScript del lado del cliente)
o como descargas separadas (tales como documentos en formato
PDF).
• Aunque los servidores web están bien afinados para optimizar las
solicitudes a través de la ejecución eficiente de código dinámico de la
pagina y salida utilizando caché, tienen que manejar las solicitudes
para descargar el contenido estático. Esto absorbe los ciclos de
procesamiento que a menudo se podrían poner a un mejor uso.
Hospedaje de contenido estático - Solución
Hospedaje de contenido estático -
Consideraciones
• La implementación debe garantizar permitir la ejecución
local/hospedada
• Se depende no solo de la disponibilidad del servidor web, sino
también del almacenamiento externo
Hospedaje de contenido estático – Cuando
usar
• Cuando los recursos estáticos son considerables (prácticamente
cualquier aplicación web)
Hospedaje de contenido estático– Cuando NO
usar
• Cuando es mas contenido dinámico que contenido estático (PE,
aplicación que expone un WebAPI)
#GWAB #BOGOTA
Ricardo González Vargas
Sénior IT Architecture & SD Consultant
Microsoft Regional Director
rgonzalez@androcial.com
rgonzalez@mvps.org
http://twitter.com/rgonv
http://about.me/ricardo.gonzalez
Otros Patrones
Patron Descripcion
Cache-Aside Cargar datos en cache por demanda
Circuit Breaker Manejar fallas conectándose a recursos remotos
Compensating Transaction Des hacer el trabajo realizado por una serie de pasos
Compute Resource Consolidation Consolidar múltiples tareas en una unidad de computo
Command and Query Responsibility Segregation
(CQRS)
Separar las tareas de consulta de las actualizaciones en
interfaces diferentes
Event Sourcing Usar un store para guardar toda una serie de eventos
External Configuration Store Mover la configuración a un repositorio externo
Federated Identity Delegar la autenticación a un proveedor externo
Gatekeeper Intermediación para proteger los servicios y recursos
Health Endpoint Monitoring Verificaciones funcionales expuestas vía endpoints
Otros Patrones
Patron Descripcion
Index Table Crear tablas de índices para campos que son frecuentemente usados como criterio
Materialized View Generar vistas precargadas sobre los datos en uno o mas almacenamientos
Pipes and Filters Descomponer las tareas complejas en elementos discretos reutilizables
Priority Queue Priorizar las solicitudes para atender mas rápido las solicitudes prioritarias
Queue-Based Load Leveling Utilizar una cola como buffer entre el servicio que invoca y el que ejecuta
Retry Permitirle a la aplicación manejar fallas temporales conectándose a un recurso
Runtime Reconfiguration Diseñar una aplicación de tal manera que se pueda reconfigurar sin reiniciar o redesp
Scheduler Agent Supervisor Coordinar acciones entre servicios remotos manejando fallas
Sharding Dividir el almacén de datos en particiones horizontales
Throttling Controlar el acceso a un recurso por parte de una aplicación, usuario o servicio
Valet Key Use un token para dar acceso directo a un recurso y reducir la carga en la aplicacion
Conclusiones
• No es necesario reinventar las soluciones
• Estos patrones mencionados son enfocados principalmente al
escenario de hospedaje en la nube, pero sus principios pueden
aplicar en otros contextos
• Se complementan con patrones que tienen otros alcances, como
patrones arquitectónicos y de diseño
• Los patrones son una herramienta y como todas las herramientas
deben ser utilizadas para la función que fueron diseñadas
#GWAB #BOGOTA
Global sponsors
#GWAB #BOGOTA
Local sponsors
Colombia
User Group Leaders
www.bdotnet.org
#GWAB #BOGOTA
#GWAB #BOGOTA
@B_DotNet http://www.facebook.com/ComunidadBDotNet
#GWAB #BOGOTA
#GWAB #BOGOTA
Muchas Gracias
Ricardo González Vargas
Sénior IT Architecture & SD Consultant
Microsoft Regional Director
rgonzalez@androcial.com
rgonzalez@mvps.org
http://twitter.com/rgonv
http://about.me/ricardo.gonzalez

More Related Content

What's hot

24 HOP edición Español - Alm para el desarrollo de base de datos sql server -...
24 HOP edición Español - Alm para el desarrollo de base de datos sql server -...24 HOP edición Español - Alm para el desarrollo de base de datos sql server -...
24 HOP edición Español - Alm para el desarrollo de base de datos sql server -...SpanishPASSVC
 
Webinar - Moderniza tu proceso de desarrollo con Oracle Cloud y DevOps
Webinar - Moderniza tu proceso de desarrollo con Oracle Cloud y DevOpsWebinar - Moderniza tu proceso de desarrollo con Oracle Cloud y DevOps
Webinar - Moderniza tu proceso de desarrollo con Oracle Cloud y DevOpsavanttic Consultoría Tecnológica
 
Arquitectura de web components - Plain Concepts Web Day
Arquitectura de web components - Plain Concepts Web DayArquitectura de web components - Plain Concepts Web Day
Arquitectura de web components - Plain Concepts Web DayPlain Concepts
 
Bow tie server informacion
Bow tie server informacionBow tie server informacion
Bow tie server informacionOrlando Villalba
 
Visual Studio App Center: Nuestro centro de operaciones
Visual Studio App Center: Nuestro centro de operacionesVisual Studio App Center: Nuestro centro de operaciones
Visual Studio App Center: Nuestro centro de operacionesNicolas Milcoff
 
Alm como factor diferenciador
Alm como factor diferenciadorAlm como factor diferenciador
Alm como factor diferenciadorRodrigo Corral
 
Digitaliza tus Aprobaciones con Approvals en Microsoft Teams
Digitaliza tus Aprobaciones con Approvals en Microsoft TeamsDigitaliza tus Aprobaciones con Approvals en Microsoft Teams
Digitaliza tus Aprobaciones con Approvals en Microsoft TeamsJuan Carlos Gonzalez
 
Creando y Orquestando APIs en MuleSoft
Creando y Orquestando APIs en MuleSoftCreando y Orquestando APIs en MuleSoft
Creando y Orquestando APIs en MuleSoftLarry Magallanes
 
Que demonios es eso de Devops (y porquedebería interesarme)
Que demonios es eso de Devops (y porquedebería interesarme)Que demonios es eso de Devops (y porquedebería interesarme)
Que demonios es eso de Devops (y porquedebería interesarme)Jacobo García López de Araujo
 
Introducción a desarrollo de micro servicios
Introducción a desarrollo de micro serviciosIntroducción a desarrollo de micro servicios
Introducción a desarrollo de micro servicioswesovi
 
MuleSoft Meetups Panama City 04 - MuleSoft API Manager
MuleSoft Meetups Panama City 04 - MuleSoft API ManagerMuleSoft Meetups Panama City 04 - MuleSoft API Manager
MuleSoft Meetups Panama City 04 - MuleSoft API ManagerLarry Magallanes
 
Visual Studio 2010 Ligthswitch + AZURE + Zero Code
Visual Studio 2010 Ligthswitch + AZURE + Zero CodeVisual Studio 2010 Ligthswitch + AZURE + Zero Code
Visual Studio 2010 Ligthswitch + AZURE + Zero CodeBruno Capuano
 
Mulesoft: Plataforma empesarial de integraciones
Mulesoft: Plataforma empesarial de integracionesMulesoft: Plataforma empesarial de integraciones
Mulesoft: Plataforma empesarial de integracionesLarry Magallanes
 
Asp .Net Ajax: Patrones
Asp .Net Ajax: PatronesAsp .Net Ajax: Patrones
Asp .Net Ajax: Patronesjuliocasal
 

What's hot (20)

24 HOP edición Español - Alm para el desarrollo de base de datos sql server -...
24 HOP edición Español - Alm para el desarrollo de base de datos sql server -...24 HOP edición Español - Alm para el desarrollo de base de datos sql server -...
24 HOP edición Español - Alm para el desarrollo de base de datos sql server -...
 
Webinar - Moderniza tu proceso de desarrollo con Oracle Cloud y DevOps
Webinar - Moderniza tu proceso de desarrollo con Oracle Cloud y DevOpsWebinar - Moderniza tu proceso de desarrollo con Oracle Cloud y DevOps
Webinar - Moderniza tu proceso de desarrollo con Oracle Cloud y DevOps
 
Microservicios - RabbitMQ
Microservicios - RabbitMQMicroservicios - RabbitMQ
Microservicios - RabbitMQ
 
Arquitectura de web components - Plain Concepts Web Day
Arquitectura de web components - Plain Concepts Web DayArquitectura de web components - Plain Concepts Web Day
Arquitectura de web components - Plain Concepts Web Day
 
Bow tie server informacion
Bow tie server informacionBow tie server informacion
Bow tie server informacion
 
Implementacion exitosa soa
Implementacion exitosa soaImplementacion exitosa soa
Implementacion exitosa soa
 
El reto del DevOps agil
El reto del DevOps agilEl reto del DevOps agil
El reto del DevOps agil
 
Tfs 2012 tutorial
Tfs 2012   tutorialTfs 2012   tutorial
Tfs 2012 tutorial
 
Visual Studio App Center: Nuestro centro de operaciones
Visual Studio App Center: Nuestro centro de operacionesVisual Studio App Center: Nuestro centro de operaciones
Visual Studio App Center: Nuestro centro de operaciones
 
Alm como factor diferenciador
Alm como factor diferenciadorAlm como factor diferenciador
Alm como factor diferenciador
 
Digitaliza tus Aprobaciones con Approvals en Microsoft Teams
Digitaliza tus Aprobaciones con Approvals en Microsoft TeamsDigitaliza tus Aprobaciones con Approvals en Microsoft Teams
Digitaliza tus Aprobaciones con Approvals en Microsoft Teams
 
Creando y Orquestando APIs en MuleSoft
Creando y Orquestando APIs en MuleSoftCreando y Orquestando APIs en MuleSoft
Creando y Orquestando APIs en MuleSoft
 
Automatización de la empresa digital: Control M
Automatización de la empresa digital: Control MAutomatización de la empresa digital: Control M
Automatización de la empresa digital: Control M
 
Que demonios es eso de Devops (y porquedebería interesarme)
Que demonios es eso de Devops (y porquedebería interesarme)Que demonios es eso de Devops (y porquedebería interesarme)
Que demonios es eso de Devops (y porquedebería interesarme)
 
Introducción a desarrollo de micro servicios
Introducción a desarrollo de micro serviciosIntroducción a desarrollo de micro servicios
Introducción a desarrollo de micro servicios
 
Una introducción a la Integración continua
Una introducción a la Integración continuaUna introducción a la Integración continua
Una introducción a la Integración continua
 
MuleSoft Meetups Panama City 04 - MuleSoft API Manager
MuleSoft Meetups Panama City 04 - MuleSoft API ManagerMuleSoft Meetups Panama City 04 - MuleSoft API Manager
MuleSoft Meetups Panama City 04 - MuleSoft API Manager
 
Visual Studio 2010 Ligthswitch + AZURE + Zero Code
Visual Studio 2010 Ligthswitch + AZURE + Zero CodeVisual Studio 2010 Ligthswitch + AZURE + Zero Code
Visual Studio 2010 Ligthswitch + AZURE + Zero Code
 
Mulesoft: Plataforma empesarial de integraciones
Mulesoft: Plataforma empesarial de integracionesMulesoft: Plataforma empesarial de integraciones
Mulesoft: Plataforma empesarial de integraciones
 
Asp .Net Ajax: Patrones
Asp .Net Ajax: PatronesAsp .Net Ajax: Patrones
Asp .Net Ajax: Patrones
 

Similar to 20130329 Patrones de Aplicaciones para La nube #GWAB

Gestión de Proyectos Informáticos
Gestión de Proyectos InformáticosGestión de Proyectos Informáticos
Gestión de Proyectos InformáticosPilar Pardo Hidalgo
 
Arquitectura de una aplicación
Arquitectura de una aplicaciónArquitectura de una aplicación
Arquitectura de una aplicaciónuniv of pamplona
 
15-Unidad 4: Introducción a las Arquitecturas Web 4.1 DAO 4.2 MVC
15-Unidad 4: Introducción a las Arquitecturas Web 4.1 DAO 4.2 MVC15-Unidad 4: Introducción a las Arquitecturas Web 4.1 DAO 4.2 MVC
15-Unidad 4: Introducción a las Arquitecturas Web 4.1 DAO 4.2 MVCLuis Fernando Aguas Bucheli
 
Aplicaciones Distribuídas
Aplicaciones DistribuídasAplicaciones Distribuídas
Aplicaciones DistribuídasJavierialv
 
Unidad 1
Unidad 1Unidad 1
Unidad 1mi casa
 
Herramientas CASE
Herramientas CASEHerramientas CASE
Herramientas CASEI R
 
Puntos Clave Seleccion Aplicaciones SaaS - NODOTIC [ES]
Puntos Clave Seleccion Aplicaciones SaaS - NODOTIC [ES]Puntos Clave Seleccion Aplicaciones SaaS - NODOTIC [ES]
Puntos Clave Seleccion Aplicaciones SaaS - NODOTIC [ES]nodotic
 
Mecanismos de Persistencia en Android
Mecanismos de Persistencia en AndroidMecanismos de Persistencia en Android
Mecanismos de Persistencia en AndroidJavier Muñoz
 
Rad (desarrollo rápido de aplicaciones)
Rad (desarrollo rápido de aplicaciones)Rad (desarrollo rápido de aplicaciones)
Rad (desarrollo rápido de aplicaciones)Jenyfer Utitiaja
 
Desarrollo rápido de aplicaciones (rad)
Desarrollo rápido de aplicaciones (rad)Desarrollo rápido de aplicaciones (rad)
Desarrollo rápido de aplicaciones (rad)Jean Carlos Toa
 
Mejorar la toma de decisiones y reducir costes con el Logical Data Warehouse ...
Mejorar la toma de decisiones y reducir costes con el Logical Data Warehouse ...Mejorar la toma de decisiones y reducir costes con el Logical Data Warehouse ...
Mejorar la toma de decisiones y reducir costes con el Logical Data Warehouse ...Denodo
 
2.- Introducción y Tipos de sistemas de información (2).ppt
2.- Introducción y Tipos de sistemas de información (2).ppt2.- Introducción y Tipos de sistemas de información (2).ppt
2.- Introducción y Tipos de sistemas de información (2).pptMatasEnriqueFarasPea
 
Azure Bootcamp Como montar una arquitectura Serverless y aprovechar Azure
Azure Bootcamp Como montar una arquitectura Serverless y aprovechar AzureAzure Bootcamp Como montar una arquitectura Serverless y aprovechar Azure
Azure Bootcamp Como montar una arquitectura Serverless y aprovechar AzureAdrian Diaz Cervera
 

Similar to 20130329 Patrones de Aplicaciones para La nube #GWAB (20)

Gestion de proyectos de SW
Gestion de proyectos de SWGestion de proyectos de SW
Gestion de proyectos de SW
 
Gestión de Proyectos Informáticos
Gestión de Proyectos InformáticosGestión de Proyectos Informáticos
Gestión de Proyectos Informáticos
 
Arquitectura de una aplicación
Arquitectura de una aplicaciónArquitectura de una aplicación
Arquitectura de una aplicación
 
15-Unidad 4: Introducción a las Arquitecturas Web 4.1 DAO 4.2 MVC
15-Unidad 4: Introducción a las Arquitecturas Web 4.1 DAO 4.2 MVC15-Unidad 4: Introducción a las Arquitecturas Web 4.1 DAO 4.2 MVC
15-Unidad 4: Introducción a las Arquitecturas Web 4.1 DAO 4.2 MVC
 
Aplicaciones Distribuídas
Aplicaciones DistribuídasAplicaciones Distribuídas
Aplicaciones Distribuídas
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Herramientas CASE
Herramientas CASEHerramientas CASE
Herramientas CASE
 
Puntos Clave Seleccion Aplicaciones SaaS - NODOTIC [ES]
Puntos Clave Seleccion Aplicaciones SaaS - NODOTIC [ES]Puntos Clave Seleccion Aplicaciones SaaS - NODOTIC [ES]
Puntos Clave Seleccion Aplicaciones SaaS - NODOTIC [ES]
 
FUNCIONES DBA
FUNCIONES DBAFUNCIONES DBA
FUNCIONES DBA
 
Mecanismos de Persistencia en Android
Mecanismos de Persistencia en AndroidMecanismos de Persistencia en Android
Mecanismos de Persistencia en Android
 
Rad (desarrollo rápido de aplicaciones)
Rad (desarrollo rápido de aplicaciones)Rad (desarrollo rápido de aplicaciones)
Rad (desarrollo rápido de aplicaciones)
 
Desarrollo rápido de aplicaciones (rad)
Desarrollo rápido de aplicaciones (rad)Desarrollo rápido de aplicaciones (rad)
Desarrollo rápido de aplicaciones (rad)
 
Mejorar la toma de decisiones y reducir costes con el Logical Data Warehouse ...
Mejorar la toma de decisiones y reducir costes con el Logical Data Warehouse ...Mejorar la toma de decisiones y reducir costes con el Logical Data Warehouse ...
Mejorar la toma de decisiones y reducir costes con el Logical Data Warehouse ...
 
2.- Introducción y Tipos de sistemas de información (2).ppt
2.- Introducción y Tipos de sistemas de información (2).ppt2.- Introducción y Tipos de sistemas de información (2).ppt
2.- Introducción y Tipos de sistemas de información (2).ppt
 
Modelos de software
Modelos de softwareModelos de software
Modelos de software
 
Chapter 9
Chapter 9Chapter 9
Chapter 9
 
Cloud computing y seguridad
Cloud computing y seguridadCloud computing y seguridad
Cloud computing y seguridad
 
DevOps: una breve introducción
DevOps: una breve introducciónDevOps: una breve introducción
DevOps: una breve introducción
 
Azure Bootcamp Como montar una arquitectura Serverless y aprovechar Azure
Azure Bootcamp Como montar una arquitectura Serverless y aprovechar AzureAzure Bootcamp Como montar una arquitectura Serverless y aprovechar Azure
Azure Bootcamp Como montar una arquitectura Serverless y aprovechar Azure
 
Nancy Adilene Gonzalez Sifuentes
Nancy Adilene Gonzalez Sifuentes Nancy Adilene Gonzalez Sifuentes
Nancy Adilene Gonzalez Sifuentes
 

More from Ricardo González

20230812 -AWS Community Day Colombia - ¿Que diablos es el Gobierno de Nube_.pptx
20230812 -AWS Community Day Colombia - ¿Que diablos es el Gobierno de Nube_.pptx20230812 -AWS Community Day Colombia - ¿Que diablos es el Gobierno de Nube_.pptx
20230812 -AWS Community Day Colombia - ¿Que diablos es el Gobierno de Nube_.pptxRicardo González
 
20230511 Seguridad en la nube para Startups: Aprovecha las herramientas de AWS
20230511 Seguridad en la nube para Startups: Aprovecha las herramientas de AWS20230511 Seguridad en la nube para Startups: Aprovecha las herramientas de AWS
20230511 Seguridad en la nube para Startups: Aprovecha las herramientas de AWSRicardo González
 
20230524_Tendencias en Modernizacion , innovacion y transformacion en la nube
20230524_Tendencias en Modernizacion , innovacion y transformacion en la nube20230524_Tendencias en Modernizacion , innovacion y transformacion en la nube
20230524_Tendencias en Modernizacion , innovacion y transformacion en la nubeRicardo González
 
20190427 arquitectura de microservicios con contenedores
20190427 arquitectura de microservicios con contenedores20190427 arquitectura de microservicios con contenedores
20190427 arquitectura de microservicios con contenedoresRicardo González
 
20180520 expertslive ai_and_machine_learning_demistified
20180520 expertslive ai_and_machine_learning_demistified20180520 expertslive ai_and_machine_learning_demistified
20180520 expertslive ai_and_machine_learning_demistifiedRicardo González
 
20180616 r gonzalez_from once per month to multiple times a day b
20180616 r gonzalez_from once per month to multiple times a day b20180616 r gonzalez_from once per month to multiple times a day b
20180616 r gonzalez_from once per month to multiple times a day bRicardo González
 
20180421 gab azure_ai_services
20180421 gab azure_ai_services20180421 gab azure_ai_services
20180421 gab azure_ai_servicesRicardo González
 
Blockchain - Desmitificacion
Blockchain - DesmitificacionBlockchain - Desmitificacion
Blockchain - DesmitificacionRicardo González
 
20170209 dev day-websites_vs_cloudservices_vsservicefabric_scenarios
20170209 dev day-websites_vs_cloudservices_vsservicefabric_scenarios20170209 dev day-websites_vs_cloudservices_vsservicefabric_scenarios
20170209 dev day-websites_vs_cloudservices_vsservicefabric_scenariosRicardo González
 
20160410 despliegue de plantillas de azure resource manager con visual studio...
20160410 despliegue de plantillas de azure resource manager con visual studio...20160410 despliegue de plantillas de azure resource manager con visual studio...
20160410 despliegue de plantillas de azure resource manager con visual studio...Ricardo González
 
20130522 preparando el soporte de aplicaciones empresariales con windows azure
20130522 preparando el soporte de aplicaciones empresariales con windows azure20130522 preparando el soporte de aplicaciones empresariales con windows azure
20130522 preparando el soporte de aplicaciones empresariales con windows azureRicardo González
 
20130427 global azure bootcamp websites vs cloudservices scenarios
20130427 global azure bootcamp websites vs cloudservices scenarios20130427 global azure bootcamp websites vs cloudservices scenarios
20130427 global azure bootcamp websites vs cloudservices scenariosRicardo González
 
20130423 webcast desarrollo en azure con visual studio
20130423 webcast desarrollo en azure con visual studio20130423 webcast desarrollo en azure con visual studio
20130423 webcast desarrollo en azure con visual studioRicardo González
 
20120830 opciones de despliegue en windows azure
20120830   opciones de despliegue en windows azure20120830   opciones de despliegue en windows azure
20120830 opciones de despliegue en windows azureRicardo González
 

More from Ricardo González (20)

20230812 -AWS Community Day Colombia - ¿Que diablos es el Gobierno de Nube_.pptx
20230812 -AWS Community Day Colombia - ¿Que diablos es el Gobierno de Nube_.pptx20230812 -AWS Community Day Colombia - ¿Que diablos es el Gobierno de Nube_.pptx
20230812 -AWS Community Day Colombia - ¿Que diablos es el Gobierno de Nube_.pptx
 
20230511 Seguridad en la nube para Startups: Aprovecha las herramientas de AWS
20230511 Seguridad en la nube para Startups: Aprovecha las herramientas de AWS20230511 Seguridad en la nube para Startups: Aprovecha las herramientas de AWS
20230511 Seguridad en la nube para Startups: Aprovecha las herramientas de AWS
 
20230524_Tendencias en Modernizacion , innovacion y transformacion en la nube
20230524_Tendencias en Modernizacion , innovacion y transformacion en la nube20230524_Tendencias en Modernizacion , innovacion y transformacion en la nube
20230524_Tendencias en Modernizacion , innovacion y transformacion en la nube
 
20190427 arquitectura de microservicios con contenedores
20190427 arquitectura de microservicios con contenedores20190427 arquitectura de microservicios con contenedores
20190427 arquitectura de microservicios con contenedores
 
20180520 expertslive ai_and_machine_learning_demistified
20180520 expertslive ai_and_machine_learning_demistified20180520 expertslive ai_and_machine_learning_demistified
20180520 expertslive ai_and_machine_learning_demistified
 
20180616 r gonzalez_from once per month to multiple times a day b
20180616 r gonzalez_from once per month to multiple times a day b20180616 r gonzalez_from once per month to multiple times a day b
20180616 r gonzalez_from once per month to multiple times a day b
 
20180421 gab azure_ai_services
20180421 gab azure_ai_services20180421 gab azure_ai_services
20180421 gab azure_ai_services
 
Blockchain - Desmitificacion
Blockchain - DesmitificacionBlockchain - Desmitificacion
Blockchain - Desmitificacion
 
20180912 intro toazure
20180912 intro toazure20180912 intro toazure
20180912 intro toazure
 
20170209 dev day-websites_vs_cloudservices_vsservicefabric_scenarios
20170209 dev day-websites_vs_cloudservices_vsservicefabric_scenarios20170209 dev day-websites_vs_cloudservices_vsservicefabric_scenarios
20170209 dev day-websites_vs_cloudservices_vsservicefabric_scenarios
 
Machine learning101
Machine learning101Machine learning101
Machine learning101
 
20160210 microsoft iot
20160210 microsoft iot20160210 microsoft iot
20160210 microsoft iot
 
2016 cloud summit_iot
2016 cloud summit_iot2016 cloud summit_iot
2016 cloud summit_iot
 
20160410 despliegue de plantillas de azure resource manager con visual studio...
20160410 despliegue de plantillas de azure resource manager con visual studio...20160410 despliegue de plantillas de azure resource manager con visual studio...
20160410 despliegue de plantillas de azure resource manager con visual studio...
 
20150415 csharp6.0
20150415 csharp6.020150415 csharp6.0
20150415 csharp6.0
 
20150415 roslyn
20150415 roslyn20150415 roslyn
20150415 roslyn
 
20130522 preparando el soporte de aplicaciones empresariales con windows azure
20130522 preparando el soporte de aplicaciones empresariales con windows azure20130522 preparando el soporte de aplicaciones empresariales con windows azure
20130522 preparando el soporte de aplicaciones empresariales con windows azure
 
20130427 global azure bootcamp websites vs cloudservices scenarios
20130427 global azure bootcamp websites vs cloudservices scenarios20130427 global azure bootcamp websites vs cloudservices scenarios
20130427 global azure bootcamp websites vs cloudservices scenarios
 
20130423 webcast desarrollo en azure con visual studio
20130423 webcast desarrollo en azure con visual studio20130423 webcast desarrollo en azure con visual studio
20130423 webcast desarrollo en azure con visual studio
 
20120830 opciones de despliegue en windows azure
20120830   opciones de despliegue en windows azure20120830   opciones de despliegue en windows azure
20120830 opciones de despliegue en windows azure
 

Recently uploaded

Virus -Josue Cabascango _20240322_194349_0000.pdf
Virus -Josue Cabascango _20240322_194349_0000.pdfVirus -Josue Cabascango _20240322_194349_0000.pdf
Virus -Josue Cabascango _20240322_194349_0000.pdfMiSpotify
 
Simuladores de circuitos electrónicos.pdf
Simuladores de circuitos electrónicos.pdfSimuladores de circuitos electrónicos.pdf
Simuladores de circuitos electrónicos.pdfLeonardoOa4
 
Formato de práctica reflexiva ante una problemática social.docx.pdf
Formato de práctica reflexiva ante una problemática social.docx.pdfFormato de práctica reflexiva ante una problemática social.docx.pdf
Formato de práctica reflexiva ante una problemática social.docx.pdfjuanrubenc78
 
Algoritmos Paralelos - Actividad 14 - UNIBE.pdf
Algoritmos Paralelos - Actividad 14 - UNIBE.pdfAlgoritmos Paralelos - Actividad 14 - UNIBE.pdf
Algoritmos Paralelos - Actividad 14 - UNIBE.pdfdarosario3d
 
02 - RUP_Introduccion_Definicion.pdf
02 - RUP_Introduccion_Definicion.pdf02 - RUP_Introduccion_Definicion.pdf
02 - RUP_Introduccion_Definicion.pdfRodrigo Cerón
 
Herramientas de Mantenimiento_Soporte Técnico_David Andrade.pdf
Herramientas de Mantenimiento_Soporte Técnico_David Andrade.pdfHerramientas de Mantenimiento_Soporte Técnico_David Andrade.pdf
Herramientas de Mantenimiento_Soporte Técnico_David Andrade.pdfdaa100407
 
Los mejores simuladores electrónicos que se pueden utilizar
Los mejores simuladores electrónicos que se pueden utilizarLos mejores simuladores electrónicos que se pueden utilizar
Los mejores simuladores electrónicos que se pueden utilizarjosuesj13
 
03 - RUP_Elaboracion_Construccion_1_2024.pdf
03 - RUP_Elaboracion_Construccion_1_2024.pdf03 - RUP_Elaboracion_Construccion_1_2024.pdf
03 - RUP_Elaboracion_Construccion_1_2024.pdfRodrigo Cerón
 
Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...
Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...
Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...AlexaRamirez39
 

Recently uploaded (9)

Virus -Josue Cabascango _20240322_194349_0000.pdf
Virus -Josue Cabascango _20240322_194349_0000.pdfVirus -Josue Cabascango _20240322_194349_0000.pdf
Virus -Josue Cabascango _20240322_194349_0000.pdf
 
Simuladores de circuitos electrónicos.pdf
Simuladores de circuitos electrónicos.pdfSimuladores de circuitos electrónicos.pdf
Simuladores de circuitos electrónicos.pdf
 
Formato de práctica reflexiva ante una problemática social.docx.pdf
Formato de práctica reflexiva ante una problemática social.docx.pdfFormato de práctica reflexiva ante una problemática social.docx.pdf
Formato de práctica reflexiva ante una problemática social.docx.pdf
 
Algoritmos Paralelos - Actividad 14 - UNIBE.pdf
Algoritmos Paralelos - Actividad 14 - UNIBE.pdfAlgoritmos Paralelos - Actividad 14 - UNIBE.pdf
Algoritmos Paralelos - Actividad 14 - UNIBE.pdf
 
02 - RUP_Introduccion_Definicion.pdf
02 - RUP_Introduccion_Definicion.pdf02 - RUP_Introduccion_Definicion.pdf
02 - RUP_Introduccion_Definicion.pdf
 
Herramientas de Mantenimiento_Soporte Técnico_David Andrade.pdf
Herramientas de Mantenimiento_Soporte Técnico_David Andrade.pdfHerramientas de Mantenimiento_Soporte Técnico_David Andrade.pdf
Herramientas de Mantenimiento_Soporte Técnico_David Andrade.pdf
 
Los mejores simuladores electrónicos que se pueden utilizar
Los mejores simuladores electrónicos que se pueden utilizarLos mejores simuladores electrónicos que se pueden utilizar
Los mejores simuladores electrónicos que se pueden utilizar
 
03 - RUP_Elaboracion_Construccion_1_2024.pdf
03 - RUP_Elaboracion_Construccion_1_2024.pdf03 - RUP_Elaboracion_Construccion_1_2024.pdf
03 - RUP_Elaboracion_Construccion_1_2024.pdf
 
Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...
Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...
Diseño de Algoritmos Paralelos. Mejorando la eficiencia computacional aprovec...
 

20130329 Patrones de Aplicaciones para La nube #GWAB

  • 1. #GWAB #BOGOTA Patrones para aplicaciones en la nube Ricardo González Vargas Sénior IT Architecture & SD Consultant Microsoft Regional Director rgonzalez@androcial.com rgonzalez@mvps.org http://twitter.com/rgonv http://about.me/ricardo.gonzalez
  • 4. #GWAB #BOGOTA Ricardo Gonzalez Vargas Arquitecto de Soluciones con mas de 15 años de experiencia en diferentes verticales como Telecomunicaciones, Salud, Banca entre otros. Especializado en Definición de arquitectura, optimización y diagnostico de sistemas. Microsoft MVP 2002 – 2011, Regional Director Microsoft 2004 - 2014. Co-Founder & CEO de Androcial rgonzalez@androcial.com rgonzalez@mvps.org http://twitter.com/rgonv http://about.me/ricardo.gonzalez
  • 5. AGENDA • Patrones para la Nube?? • Clasificaciones • Patrones para soluciones en la nube
  • 6. #GWAB #BOGOTA Que son los patrones? Un patrón de diseño en arquitectura y en informática es una manera formal de documentar una solución a un problema de diseño en un determinado contexto.
  • 7. #GWAB #BOGOTA Clasificación de los patrones Los patrones pueden organizarse por múltiples criterios, esto incluyen: - Por Disciplina: software, economía, música - Por Dominio: real-time, user interface, comunicaciones, sistemas distribuidos, sistemas embebidos, etc. - Por Paradigmas: Orientado a Objetos, Funcional, imperativo - Por Granularidad: Arquitectónicos, De Diseño, Idiomas - Por Propósito: De comportamiento, de distribución, de confiabilidad Por lo general, se utilizan múltiples criterios para organizar un conjunto de patrones.
  • 8. #GWAB #BOGOTA Clasificación de patrones para la nube Se clasifican básicamente por propósito: Propósito Descripción Disponibilidad Define la proporción de tiempo que el sistema esta disponible y trabajando Administración de datos Clave en las aplicaciones en la nube Diseño e implementación Consistencia y coherencia en el diseño, despliegue, mantenibilidad. Mensajería Conectividad para componentes y servicios Administración y monitoreo Exponer información en runtime para que los operadores y administradores puedan tomar acciones
  • 9. #GWAB #BOGOTA Clasificación de patrones para la nube Se clasifican básicamente por propósito: Propósito Descripción Rendimiento y escalabilidad Indicador de la respuesta del sistema/ capacidad de soportar mas carga sin afectar el rendimiento Resiliencia Capacidad para manejar y recuperarse de fallas. Seguridad Prevencion de acciones accidentales o maliciosas fuera del uso esperado para prevenir divulgación o perdida de informacion
  • 10. #GWAB #BOGOTA Consumidores compitiendo - Problema En una aplicación que se ejecuta en la nube se puede esperar manejar un gran número de solicitudes. En lugar de procesar cada solicitud de forma sincrónica, una técnica común es que la aplicación pase a través de un sistema de mensajería a otro servicio (un servicio al consumidor) que los maneja de forma asincrónica. Esta estrategia ayuda a asegurar que la lógica empresarial de la aplicación no se bloquea mientras que las solicitudes se están procesando.
  • 12. #GWAB #BOGOTA Consumidores Compitiendo - Consideraciones - Orden de los mensajes - Diseñar servicios resilientes - Detección de mensajes malignos - Manejo de resultados
  • 13. #GWAB #BOGOTA Consumidores Compitiendo – Cuando usar - La carga de trabajo de una aplicación se divide en tareas que se pueden ejecutar de forma asincrónica. - Las tareas son independientes y pueden funcionar en paralelo. - El volumen de trabajo es muy variable, lo que requiere una solución escalable. - La solución debe proporcionar una alta disponibilidad, y debe ser resistente si el procesamiento de una tarea falla.
  • 14. #GWAB #BOGOTA Consumidores Compitiendo – Cuando NO usar - No es fácil de separar la carga de trabajo de aplicación en tareas discretas, o hay un alto grado de dependencia entre tareas. - Las tareas deben ser realizadas de forma sincrónica, y la lógica de la aplicación deben esperar a que una tarea sea completada antes de continuar. - Las tareas deben ser realizadas en una secuencia específica.
  • 15. #GWAB #BOGOTA Ricardo González Vargas Sénior IT Architecture & SD Consultant Microsoft Regional Director rgonzalez@androcial.com rgonzalez@mvps.org http://twitter.com/rgonv http://about.me/ricardo.gonzalez
  • 16. Selección de Líder - Problema • Coordinar las acciones realizadas por un conjunto de instancias de tareas de colaboración en una aplicación distribuida mediante la elección de una instancia como el líder que asume la responsabilidad de la gestión de los otros casos. Este patrón puede ayudar a asegurar que las instancias de tareas no entren en conflicto entre sí, que no causen contención de recursos compartidos, o inadvertidamente interfieran con el trabajo que otras instancias de tareas se están realizando.
  • 17. Selección de Líder - Solución
  • 18. Selección de Líder - Consideraciones • La elección debe ser resiliente a fallas • Debe poderse saber si el líder ha fallado o no esta disponible • Cuando hay autoscaling, el líder puede ser dado de baja • Cuando se usa un mutex compartido externo, se depende de la disponibilidad de este • Se puede usar un líder dedicado, pero si falla, se puede afectar el rendimiento y la respuesta del sistema • La implementación manual del algoritmo da mayor flexibilidad
  • 19. Selección de Líder – Cuando usar • Use este patrón, cuando las tareas en una aplicación distribuida como en la nube, requieran cuidadosa coordinación y no exista un líder natural
  • 20. Selección de Líder – Cuando NO usar • Si hay un líder natural • Si la coordinación de tareas puede realizarse de una manera mas liviana. (Ej,Locks optimistas o pesimistas) • Si alguna solución de un tercero es mas adecuada
  • 21. #GWAB #BOGOTA Ricardo González Vargas Sénior IT Architecture & SD Consultant Microsoft Regional Director rgonzalez@androcial.com rgonzalez@mvps.org http://twitter.com/rgonv http://about.me/ricardo.gonzalez
  • 22. Hospedaje de contenido estático - Problema • Las aplicaciones Web suelen incluir algunos elementos de contenido estático. Este contenido estático puede incluir páginas HTML y otros recursos, como imágenes y documentos que están a disposición del cliente, ya sea como parte de una página HTML (como las imágenes en línea, hojas de estilos y archivos de JavaScript del lado del cliente) o como descargas separadas (tales como documentos en formato PDF). • Aunque los servidores web están bien afinados para optimizar las solicitudes a través de la ejecución eficiente de código dinámico de la pagina y salida utilizando caché, tienen que manejar las solicitudes para descargar el contenido estático. Esto absorbe los ciclos de procesamiento que a menudo se podrían poner a un mejor uso.
  • 23. Hospedaje de contenido estático - Solución
  • 24. Hospedaje de contenido estático - Consideraciones • La implementación debe garantizar permitir la ejecución local/hospedada • Se depende no solo de la disponibilidad del servidor web, sino también del almacenamiento externo
  • 25. Hospedaje de contenido estático – Cuando usar • Cuando los recursos estáticos son considerables (prácticamente cualquier aplicación web)
  • 26. Hospedaje de contenido estático– Cuando NO usar • Cuando es mas contenido dinámico que contenido estático (PE, aplicación que expone un WebAPI)
  • 27. #GWAB #BOGOTA Ricardo González Vargas Sénior IT Architecture & SD Consultant Microsoft Regional Director rgonzalez@androcial.com rgonzalez@mvps.org http://twitter.com/rgonv http://about.me/ricardo.gonzalez
  • 28. Otros Patrones Patron Descripcion Cache-Aside Cargar datos en cache por demanda Circuit Breaker Manejar fallas conectándose a recursos remotos Compensating Transaction Des hacer el trabajo realizado por una serie de pasos Compute Resource Consolidation Consolidar múltiples tareas en una unidad de computo Command and Query Responsibility Segregation (CQRS) Separar las tareas de consulta de las actualizaciones en interfaces diferentes Event Sourcing Usar un store para guardar toda una serie de eventos External Configuration Store Mover la configuración a un repositorio externo Federated Identity Delegar la autenticación a un proveedor externo Gatekeeper Intermediación para proteger los servicios y recursos Health Endpoint Monitoring Verificaciones funcionales expuestas vía endpoints
  • 29. Otros Patrones Patron Descripcion Index Table Crear tablas de índices para campos que son frecuentemente usados como criterio Materialized View Generar vistas precargadas sobre los datos en uno o mas almacenamientos Pipes and Filters Descomponer las tareas complejas en elementos discretos reutilizables Priority Queue Priorizar las solicitudes para atender mas rápido las solicitudes prioritarias Queue-Based Load Leveling Utilizar una cola como buffer entre el servicio que invoca y el que ejecuta Retry Permitirle a la aplicación manejar fallas temporales conectándose a un recurso Runtime Reconfiguration Diseñar una aplicación de tal manera que se pueda reconfigurar sin reiniciar o redesp Scheduler Agent Supervisor Coordinar acciones entre servicios remotos manejando fallas Sharding Dividir el almacén de datos en particiones horizontales Throttling Controlar el acceso a un recurso por parte de una aplicación, usuario o servicio Valet Key Use un token para dar acceso directo a un recurso y reducir la carga en la aplicacion
  • 30. Conclusiones • No es necesario reinventar las soluciones • Estos patrones mencionados son enfocados principalmente al escenario de hospedaje en la nube, pero sus principios pueden aplicar en otros contextos • Se complementan con patrones que tienen otros alcances, como patrones arquitectónicos y de diseño • Los patrones son una herramienta y como todas las herramientas deben ser utilizadas para la función que fueron diseñadas
  • 36. #GWAB #BOGOTA Muchas Gracias Ricardo González Vargas Sénior IT Architecture & SD Consultant Microsoft Regional Director rgonzalez@androcial.com rgonzalez@mvps.org http://twitter.com/rgonv http://about.me/ricardo.gonzalez