SlideShare una empresa de Scribd logo

Aplicaciones escalables en la nube: mentiras y verdades

Desarrollar para la nube no es tan transparente como creemos. Conocer correctamente este nuevo entorno, así como sus limitaciones nos ayudarán a evitar problemas de escalabilidad. En esta sesión veremos cómo desarrollar correctamente soluciones para la nube de Microsoft que sean escalables. Veremos ejemplos de lo que no es escalable y también veremos cómo podemos solucionarlo y evitarlo. Hablaremos de patrones de arquitectura, Unity, Entity Framework, capas de acceso a datos, worker roles, web roles,… escalabilidad!

1 de 29
Descargar para leer sin conexión
MADRID · NOV 21-22 · 2014 
Aplicaciones escalables en la nube: mentiras y verdades 
Enrique Catalá 
MVP en SQL Server, Mentor SolidQ 
ecatala@solidq.com 
@enriquecatala 
Miguel Lopez 
Cloud Champion, Director SolidQ 
mlopez@solidq.com 
@augurarte
MADRID · NOV 21-22 · 2014 
Agenda 
1.Errores de diseño y arquitectura 
2.Conoce la nube
MADRID · NOV 21-22 · 2014 
¿Verdad o mentira? 
“Puedo usar Azure para escalar hasta el ‘infinito’ mi plataforma SQL Server on-premisea la vez que ahorro costes” 
Verdad 
DBreplica1Replica1Replica2Replica nDBreplica2DBreplica3Azure Republicador(opcional) Transactional replication SYNCWANSQL1 (onpremise) ON PREMISEAzure  Nodos secundarios replicación  Capa de base de datos, suscriptores (5s-15s delay)  SQL Standard Edition  Nodo publicador  Instancia OnPremise que contiene los datos maestros a replicar mediante replicación transaccional
MADRID · NOV 21-22 · 2014 
ELB / ILB 
DBreplica1 
Replica1 Replica2 Replica n 
DBreplica2 DBreplica3 
Azure Republicador 
(opcional) 
Transactional 
replication 
SYNC 
Azure 
Peticiones balanceadas 
automáticamente 
(ILB/ELB) 
 Nodos secundarios 
replicación 
 Capa de base de datos, 
suscriptores (5s-15s 
delay) 
 SQL Standard Edition 
Add-AzureInternalLoadBalancer 
-ServiceName $svc 
-InternalLoadBalancerName $ilb
MADRID · NOV 21-22 · 2014 
demo 
Arquitectura elástica
MADRID · NOV 21-22 · 2014 
“Para implementar una aplicación Web que se accederá de forma masiva a través de la Web, y que gestiona contactos (o usuarios), una base de datos SQL server o SQL Databasees la mejor opción a la hora de elegir la capa de datos.” 
¿Verdad o mentira? 
Mentira 
Publicidad

Recomendados

Datawarehouse como servicio en azure (sqldw)
Datawarehouse como servicio en azure (sqldw)Datawarehouse como servicio en azure (sqldw)
Datawarehouse como servicio en azure (sqldw)Enrique Catala Bañuls
 
Sql server ha muerto, larga vida a sql server
Sql server ha muerto, larga vida a sql serverSql server ha muerto, larga vida a sql server
Sql server ha muerto, larga vida a sql serverEnrique Catala Bañuls
 
Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)
Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)
Como hacer tuning a capas de acceso a datos en .NET (dotNetConference2016)Enrique Catala Bañuls
 
Datawarehouse como servicio en Azure (sqldw)
Datawarehouse como servicio en Azure (sqldw)Datawarehouse como servicio en Azure (sqldw)
Datawarehouse como servicio en Azure (sqldw)SolidQ
 

Más contenido relacionado

La actualidad más candente

BI real time analytics
BI real time analyticsBI real time analytics
BI real time analyticsSolidQ
 
Aplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidorAplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidorEnrique Catala Bañuls
 
Introducción R - Primeros pasos
Introducción R - Primeros pasosIntroducción R - Primeros pasos
Introducción R - Primeros pasosSolidQ
 
Novedades en SQL Azure V12
Novedades en SQL Azure V12Novedades en SQL Azure V12
Novedades en SQL Azure V12SolidQ
 
Polybase
PolybasePolybase
PolybaseSolidQ
 
Otras Novedades (Always Encrypted, Row-Level Security, Mejoras AG)
 Otras Novedades (Always Encrypted, Row-Level Security, Mejoras AG) Otras Novedades (Always Encrypted, Row-Level Security, Mejoras AG)
Otras Novedades (Always Encrypted, Row-Level Security, Mejoras AG)SolidQ
 
Column stored index
Column stored index Column stored index
Column stored index SolidQ
 
Copias de seguridad y recuperación de desastres
Copias de seguridad y recuperación de desastresCopias de seguridad y recuperación de desastres
Copias de seguridad y recuperación de desastresSolidQ
 
Query store
Query storeQuery store
Query storeSolidQ
 
In memory
In memoryIn memory
In memorySolidQ
 
TSQL menos frecuente desde SQL Server 2005
TSQL menos frecuente desde SQL Server 2005TSQL menos frecuente desde SQL Server 2005
TSQL menos frecuente desde SQL Server 2005SolidQ
 
Data Amp 2017 - Whats New in SQL Server 2017
Data Amp 2017 - Whats New in SQL Server 2017Data Amp 2017 - Whats New in SQL Server 2017
Data Amp 2017 - Whats New in SQL Server 2017dbLearner
 
Novedades SQL Azure v12
Novedades SQL Azure v12Novedades SQL Azure v12
Novedades SQL Azure v12SolidQ
 
Toolbox SQL Server para optimización
Toolbox SQL Server para optimizaciónToolbox SQL Server para optimización
Toolbox SQL Server para optimizaciónSolidQ
 
Novedades en SSAS 2016
Novedades en SSAS 2016Novedades en SSAS 2016
Novedades en SSAS 2016SolidQ
 
Aplicando SQL Server 2016 en Microsoft Azure Virtual Machine
Aplicando SQL Server 2016 en Microsoft Azure Virtual MachineAplicando SQL Server 2016 en Microsoft Azure Virtual Machine
Aplicando SQL Server 2016 en Microsoft Azure Virtual MachineJoseph Lopez
 
SQL Server 2014 Nuevas Capacidades
SQL Server 2014  Nuevas CapacidadesSQL Server 2014  Nuevas Capacidades
SQL Server 2014 Nuevas CapacidadesEduardo Castro
 
Novedades SQL Server 2012 para desarrolladores
Novedades SQL Server 2012 para desarrolladoresNovedades SQL Server 2012 para desarrolladores
Novedades SQL Server 2012 para desarrolladoresEnrique Catala Bañuls
 
Tablas temporales en SQL Server 2016 y Azure SQL Database v12
Tablas temporales en SQL Server 2016 y Azure SQL Database v12Tablas temporales en SQL Server 2016 y Azure SQL Database v12
Tablas temporales en SQL Server 2016 y Azure SQL Database v12Joseph Lopez
 

La actualidad más candente (20)

BI real time analytics
BI real time analyticsBI real time analytics
BI real time analytics
 
Aplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidorAplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidor
 
Introducción R - Primeros pasos
Introducción R - Primeros pasosIntroducción R - Primeros pasos
Introducción R - Primeros pasos
 
Novedades en SQL Azure V12
Novedades en SQL Azure V12Novedades en SQL Azure V12
Novedades en SQL Azure V12
 
Polybase
PolybasePolybase
Polybase
 
Otras Novedades (Always Encrypted, Row-Level Security, Mejoras AG)
 Otras Novedades (Always Encrypted, Row-Level Security, Mejoras AG) Otras Novedades (Always Encrypted, Row-Level Security, Mejoras AG)
Otras Novedades (Always Encrypted, Row-Level Security, Mejoras AG)
 
Column stored index
Column stored index Column stored index
Column stored index
 
Copias de seguridad y recuperación de desastres
Copias de seguridad y recuperación de desastresCopias de seguridad y recuperación de desastres
Copias de seguridad y recuperación de desastres
 
Query store
Query storeQuery store
Query store
 
In memory
In memoryIn memory
In memory
 
TSQL menos frecuente desde SQL Server 2005
TSQL menos frecuente desde SQL Server 2005TSQL menos frecuente desde SQL Server 2005
TSQL menos frecuente desde SQL Server 2005
 
Paralelismo en SQL Server
Paralelismo en SQL ServerParalelismo en SQL Server
Paralelismo en SQL Server
 
Data Amp 2017 - Whats New in SQL Server 2017
Data Amp 2017 - Whats New in SQL Server 2017Data Amp 2017 - Whats New in SQL Server 2017
Data Amp 2017 - Whats New in SQL Server 2017
 
Novedades SQL Azure v12
Novedades SQL Azure v12Novedades SQL Azure v12
Novedades SQL Azure v12
 
Toolbox SQL Server para optimización
Toolbox SQL Server para optimizaciónToolbox SQL Server para optimización
Toolbox SQL Server para optimización
 
Novedades en SSAS 2016
Novedades en SSAS 2016Novedades en SSAS 2016
Novedades en SSAS 2016
 
Aplicando SQL Server 2016 en Microsoft Azure Virtual Machine
Aplicando SQL Server 2016 en Microsoft Azure Virtual MachineAplicando SQL Server 2016 en Microsoft Azure Virtual Machine
Aplicando SQL Server 2016 en Microsoft Azure Virtual Machine
 
SQL Server 2014 Nuevas Capacidades
SQL Server 2014  Nuevas CapacidadesSQL Server 2014  Nuevas Capacidades
SQL Server 2014 Nuevas Capacidades
 
Novedades SQL Server 2012 para desarrolladores
Novedades SQL Server 2012 para desarrolladoresNovedades SQL Server 2012 para desarrolladores
Novedades SQL Server 2012 para desarrolladores
 
Tablas temporales en SQL Server 2016 y Azure SQL Database v12
Tablas temporales en SQL Server 2016 y Azure SQL Database v12Tablas temporales en SQL Server 2016 y Azure SQL Database v12
Tablas temporales en SQL Server 2016 y Azure SQL Database v12
 

Similar a Aplicaciones escalables en la nube: mentiras y verdades

Mejores prácticas de Data Warehouse con SQL Server
Mejores prácticas de Data Warehouse con SQL ServerMejores prácticas de Data Warehouse con SQL Server
Mejores prácticas de Data Warehouse con SQL ServerSpanishPASSVC
 
Windows Azure SQL Databases
Windows Azure SQL DatabasesWindows Azure SQL Databases
Windows Azure SQL DatabasesSolidQ
 
Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...
Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...
Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...SolidQ
 
Azure Training Day Guatemala - Migración de Aplicaciones Web a Azure
Azure Training Day Guatemala - Migración de Aplicaciones Web a AzureAzure Training Day Guatemala - Migración de Aplicaciones Web a Azure
Azure Training Day Guatemala - Migración de Aplicaciones Web a AzureGuillermo Zepeda Selman
 
Escalabilidad en azure sql database con elastic scale
Escalabilidad en azure sql database con elastic scaleEscalabilidad en azure sql database con elastic scale
Escalabilidad en azure sql database con elastic scaleEduardo Castro
 
DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...
DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...
DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...Plain Concepts
 
Azure sql database escalabilidad
Azure sql database escalabilidadAzure sql database escalabilidad
Azure sql database escalabilidadEduardo Castro
 
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...SpanishPASSVC
 
SSRS modelo IaaS en la Nube | SolidQ Summit 2014
SSRS modelo IaaS en la Nube | SolidQ Summit 2014SSRS modelo IaaS en la Nube | SolidQ Summit 2014
SSRS modelo IaaS en la Nube | SolidQ Summit 2014SolidQ
 
Cuando los desarrolladores conocieron SSAS, Business Intelligence y Big Data
Cuando los desarrolladores conocieron SSAS, Business Intelligence y Big DataCuando los desarrolladores conocieron SSAS, Business Intelligence y Big Data
Cuando los desarrolladores conocieron SSAS, Business Intelligence y Big DataRuben Pertusa Lopez
 
Técnicas avanzadas para resolver tus problemas de sql server
Técnicas avanzadas para resolver tus problemas de sql serverTécnicas avanzadas para resolver tus problemas de sql server
Técnicas avanzadas para resolver tus problemas de sql serverEnrique Catala Bañuls
 
Reactvolution
ReactvolutionReactvolution
Reactvolution_Lagash
 
Carbura tusql sesion1_slideshare
Carbura tusql sesion1_slideshareCarbura tusql sesion1_slideshare
Carbura tusql sesion1_slideshareJulián Castiblanco
 
MuleSoft Madrid Meetup #6 slides 22nd April 2021
MuleSoft Madrid Meetup #6 slides 22nd April 2021MuleSoft Madrid Meetup #6 slides 22nd April 2021
MuleSoft Madrid Meetup #6 slides 22nd April 2021Ieva Navickaite
 
Charla OWASP
Charla OWASPCharla OWASP
Charla OWASPalexav8
 

Similar a Aplicaciones escalables en la nube: mentiras y verdades (20)

Mejores prácticas de Data Warehouse con SQL Server
Mejores prácticas de Data Warehouse con SQL ServerMejores prácticas de Data Warehouse con SQL Server
Mejores prácticas de Data Warehouse con SQL Server
 
Windows Azure SQL Databases
Windows Azure SQL DatabasesWindows Azure SQL Databases
Windows Azure SQL Databases
 
Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...
Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...
Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...
 
Azure Training Day Guatemala - Migración de Aplicaciones Web a Azure
Azure Training Day Guatemala - Migración de Aplicaciones Web a AzureAzure Training Day Guatemala - Migración de Aplicaciones Web a Azure
Azure Training Day Guatemala - Migración de Aplicaciones Web a Azure
 
S4-PD1.pptx
S4-PD1.pptxS4-PD1.pptx
S4-PD1.pptx
 
Escalabilidad en azure sql database con elastic scale
Escalabilidad en azure sql database con elastic scaleEscalabilidad en azure sql database con elastic scale
Escalabilidad en azure sql database con elastic scale
 
Ado.net
Ado.netAdo.net
Ado.net
 
DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...
DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...
DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...
 
Azure sql database escalabilidad
Azure sql database escalabilidadAzure sql database escalabilidad
Azure sql database escalabilidad
 
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
24 HOP edición Español - Patrones de escalalidad en microsoft azure sql datab...
 
SSRS modelo IaaS en la Nube | SolidQ Summit 2014
SSRS modelo IaaS en la Nube | SolidQ Summit 2014SSRS modelo IaaS en la Nube | SolidQ Summit 2014
SSRS modelo IaaS en la Nube | SolidQ Summit 2014
 
Cuando los desarrolladores conocieron SSAS, Business Intelligence y Big Data
Cuando los desarrolladores conocieron SSAS, Business Intelligence y Big DataCuando los desarrolladores conocieron SSAS, Business Intelligence y Big Data
Cuando los desarrolladores conocieron SSAS, Business Intelligence y Big Data
 
Descubriendo windows azure
Descubriendo windows azureDescubriendo windows azure
Descubriendo windows azure
 
S4-PD1-2.2 EF
S4-PD1-2.2 EFS4-PD1-2.2 EF
S4-PD1-2.2 EF
 
Técnicas avanzadas para resolver tus problemas de sql server
Técnicas avanzadas para resolver tus problemas de sql serverTécnicas avanzadas para resolver tus problemas de sql server
Técnicas avanzadas para resolver tus problemas de sql server
 
Reactvolution
ReactvolutionReactvolution
Reactvolution
 
Dockeriza tu SQL Server
Dockeriza tu SQL ServerDockeriza tu SQL Server
Dockeriza tu SQL Server
 
Carbura tusql sesion1_slideshare
Carbura tusql sesion1_slideshareCarbura tusql sesion1_slideshare
Carbura tusql sesion1_slideshare
 
MuleSoft Madrid Meetup #6 slides 22nd April 2021
MuleSoft Madrid Meetup #6 slides 22nd April 2021MuleSoft Madrid Meetup #6 slides 22nd April 2021
MuleSoft Madrid Meetup #6 slides 22nd April 2021
 
Charla OWASP
Charla OWASPCharla OWASP
Charla OWASP
 

Más de Enrique Catala Bañuls

Capas de acceso a datos .net escalables de verdad contra SQL Server
Capas de acceso a datos .net escalables de verdad contra SQL ServerCapas de acceso a datos .net escalables de verdad contra SQL Server
Capas de acceso a datos .net escalables de verdad contra SQL ServerEnrique Catala Bañuls
 
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...Enrique Catala Bañuls
 
Planes de ejecución 3.0 sql 2016 y v next
Planes de ejecución 3.0 sql 2016 y v nextPlanes de ejecución 3.0 sql 2016 y v next
Planes de ejecución 3.0 sql 2016 y v nextEnrique Catala Bañuls
 
Aplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidorAplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidorEnrique Catala Bañuls
 
Sql server 2016 novedades para desarrolladores
Sql server 2016 novedades para desarrolladoresSql server 2016 novedades para desarrolladores
Sql server 2016 novedades para desarrolladoresEnrique Catala Bañuls
 
Dawarehouse como servicio en azure (sqldw)
Dawarehouse como servicio en azure (sqldw)Dawarehouse como servicio en azure (sqldw)
Dawarehouse como servicio en azure (sqldw)Enrique Catala Bañuls
 
Como leer planes de ejecución - edición 2015
Como leer planes de ejecución - edición 2015Como leer planes de ejecución - edición 2015
Como leer planes de ejecución - edición 2015Enrique Catala Bañuls
 
HERRAMIENTA CASE PARA MODELADO DE ALMACENES DE DATOS BASADA EN LENGUAJES ESPE...
HERRAMIENTA CASE PARA MODELADO DE ALMACENES DE DATOS BASADA EN LENGUAJES ESPE...HERRAMIENTA CASE PARA MODELADO DE ALMACENES DE DATOS BASADA EN LENGUAJES ESPE...
HERRAMIENTA CASE PARA MODELADO DE ALMACENES DE DATOS BASADA EN LENGUAJES ESPE...Enrique Catala Bañuls
 
Escenarios híbridos con sql server 2014
Escenarios híbridos con sql server 2014Escenarios híbridos con sql server 2014
Escenarios híbridos con sql server 2014Enrique Catala Bañuls
 
Planes de ejecución en sql server 2014
Planes de ejecución en sql server 2014Planes de ejecución en sql server 2014
Planes de ejecución en sql server 2014Enrique Catala Bañuls
 
Escalabilidad horizontal y arquitecturas elásticas en Microsoft azure
Escalabilidad horizontal y arquitecturas elásticas en Microsoft azureEscalabilidad horizontal y arquitecturas elásticas en Microsoft azure
Escalabilidad horizontal y arquitecturas elásticas en Microsoft azureEnrique Catala Bañuls
 
Novedades de SQL Server 2014 en motor relacional
Novedades de SQL Server 2014 en motor relacionalNovedades de SQL Server 2014 en motor relacional
Novedades de SQL Server 2014 en motor relacionalEnrique Catala Bañuls
 
Experiencias de migraciones a sql server 2012-2014
Experiencias de migraciones a sql server 2012-2014 Experiencias de migraciones a sql server 2012-2014
Experiencias de migraciones a sql server 2012-2014 Enrique Catala Bañuls
 
Guias y recomendaciones para instalar y configurar clusters de sql server
Guias y recomendaciones para instalar y configurar clusters de sql serverGuias y recomendaciones para instalar y configurar clusters de sql server
Guias y recomendaciones para instalar y configurar clusters de sql serverEnrique Catala Bañuls
 
Escenarios híbridos con SQL Server 2014
Escenarios híbridos con SQL Server 2014Escenarios híbridos con SQL Server 2014
Escenarios híbridos con SQL Server 2014Enrique Catala Bañuls
 

Más de Enrique Catala Bañuls (20)

Capas de acceso a datos .net escalables de verdad contra SQL Server
Capas de acceso a datos .net escalables de verdad contra SQL ServerCapas de acceso a datos .net escalables de verdad contra SQL Server
Capas de acceso a datos .net escalables de verdad contra SQL Server
 
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
Capas de acceso a datos .NET escalables de verdad: el batido perfecto para el...
 
Planes de ejecución 3.0 sql 2016 y v next
Planes de ejecución 3.0 sql 2016 y v nextPlanes de ejecución 3.0 sql 2016 y v next
Planes de ejecución 3.0 sql 2016 y v next
 
Paralelismo en sql server
Paralelismo en sql serverParalelismo en sql server
Paralelismo en sql server
 
Aplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidorAplicando R al análisis de rendimiento de un servidor
Aplicando R al análisis de rendimiento de un servidor
 
Query store
Query storeQuery store
Query store
 
Planes de ejecucion 2016
Planes de ejecucion 2016Planes de ejecucion 2016
Planes de ejecucion 2016
 
Sql server 2016 novedades para desarrolladores
Sql server 2016 novedades para desarrolladoresSql server 2016 novedades para desarrolladores
Sql server 2016 novedades para desarrolladores
 
Dawarehouse como servicio en azure (sqldw)
Dawarehouse como servicio en azure (sqldw)Dawarehouse como servicio en azure (sqldw)
Dawarehouse como servicio en azure (sqldw)
 
Planes de ejecucion 1
Planes de ejecucion 1Planes de ejecucion 1
Planes de ejecucion 1
 
Como leer planes de ejecución - edición 2015
Como leer planes de ejecución - edición 2015Como leer planes de ejecución - edición 2015
Como leer planes de ejecución - edición 2015
 
HERRAMIENTA CASE PARA MODELADO DE ALMACENES DE DATOS BASADA EN LENGUAJES ESPE...
HERRAMIENTA CASE PARA MODELADO DE ALMACENES DE DATOS BASADA EN LENGUAJES ESPE...HERRAMIENTA CASE PARA MODELADO DE ALMACENES DE DATOS BASADA EN LENGUAJES ESPE...
HERRAMIENTA CASE PARA MODELADO DE ALMACENES DE DATOS BASADA EN LENGUAJES ESPE...
 
Escenarios híbridos con sql server 2014
Escenarios híbridos con sql server 2014Escenarios híbridos con sql server 2014
Escenarios híbridos con sql server 2014
 
Planes de ejecución en sql server 2014
Planes de ejecución en sql server 2014Planes de ejecución en sql server 2014
Planes de ejecución en sql server 2014
 
Transacciones diferidas
Transacciones diferidasTransacciones diferidas
Transacciones diferidas
 
Escalabilidad horizontal y arquitecturas elásticas en Microsoft azure
Escalabilidad horizontal y arquitecturas elásticas en Microsoft azureEscalabilidad horizontal y arquitecturas elásticas en Microsoft azure
Escalabilidad horizontal y arquitecturas elásticas en Microsoft azure
 
Novedades de SQL Server 2014 en motor relacional
Novedades de SQL Server 2014 en motor relacionalNovedades de SQL Server 2014 en motor relacional
Novedades de SQL Server 2014 en motor relacional
 
Experiencias de migraciones a sql server 2012-2014
Experiencias de migraciones a sql server 2012-2014 Experiencias de migraciones a sql server 2012-2014
Experiencias de migraciones a sql server 2012-2014
 
Guias y recomendaciones para instalar y configurar clusters de sql server
Guias y recomendaciones para instalar y configurar clusters de sql serverGuias y recomendaciones para instalar y configurar clusters de sql server
Guias y recomendaciones para instalar y configurar clusters de sql server
 
Escenarios híbridos con SQL Server 2014
Escenarios híbridos con SQL Server 2014Escenarios híbridos con SQL Server 2014
Escenarios híbridos con SQL Server 2014
 

Aplicaciones escalables en la nube: mentiras y verdades

  • 1. MADRID · NOV 21-22 · 2014 Aplicaciones escalables en la nube: mentiras y verdades Enrique Catalá MVP en SQL Server, Mentor SolidQ ecatala@solidq.com @enriquecatala Miguel Lopez Cloud Champion, Director SolidQ mlopez@solidq.com @augurarte
  • 2. MADRID · NOV 21-22 · 2014 Agenda 1.Errores de diseño y arquitectura 2.Conoce la nube
  • 3. MADRID · NOV 21-22 · 2014 ¿Verdad o mentira? “Puedo usar Azure para escalar hasta el ‘infinito’ mi plataforma SQL Server on-premisea la vez que ahorro costes” Verdad DBreplica1Replica1Replica2Replica nDBreplica2DBreplica3Azure Republicador(opcional) Transactional replication SYNCWANSQL1 (onpremise) ON PREMISEAzure  Nodos secundarios replicación  Capa de base de datos, suscriptores (5s-15s delay)  SQL Standard Edition  Nodo publicador  Instancia OnPremise que contiene los datos maestros a replicar mediante replicación transaccional
  • 4. MADRID · NOV 21-22 · 2014 ELB / ILB DBreplica1 Replica1 Replica2 Replica n DBreplica2 DBreplica3 Azure Republicador (opcional) Transactional replication SYNC Azure Peticiones balanceadas automáticamente (ILB/ELB)  Nodos secundarios replicación  Capa de base de datos, suscriptores (5s-15s delay)  SQL Standard Edition Add-AzureInternalLoadBalancer -ServiceName $svc -InternalLoadBalancerName $ilb
  • 5. MADRID · NOV 21-22 · 2014 demo Arquitectura elástica
  • 6. MADRID · NOV 21-22 · 2014 “Para implementar una aplicación Web que se accederá de forma masiva a través de la Web, y que gestiona contactos (o usuarios), una base de datos SQL server o SQL Databasees la mejor opción a la hora de elegir la capa de datos.” ¿Verdad o mentira? Mentira 
  • 7. MADRID · NOV 21-22 · 2014 Bases de datos y cargas de trabajo en aplicaciones en la nube
  • 8. MADRID · NOV 21-22 · 2014 NoSQLKey-Value Azure TableStorage Caso de cliente con usuarios/grupos en tablas https://haveibeenpwned.com/HowFastIsAzureTableStorage/?email=pepe@Hotmail.com
  • 9. MADRID · NOV 21-22 · 2014 Algo diferente de programar… publicclassBreachedAccount: TableEntity{ publicBreachedAccount() { } publicstringWebsites{ get; set; } } varbreachedAccount= new BreachedAccount{ PartitionKey= “undominio.com”, RowKey= “un-correo01", Websites= "Adobe;Stratfor" }; varinsertOperation= TableOperation.Insert(breachedAccount); table.Execute(insertOperation); varbatch= new TableBatchOperation(); batch.Insert(breachedAccount1); batch.Insert(breachedAccount2); batch.Insert(breachedAccount3); table.ExecuteBatch(batch);
  • 10. MADRID · NOV 21-22 · 2014 demo NoSQL-Azure TableStorage
  • 11. MADRID · NOV 21-22 · 2014 ¿Verdad o mentira? “Hablando de rendimiento, Azure tiene máquinas tan potentes, que con sólo elegir el tipo de máquina adecuada para mi App, puedo ejecutar cualquier aplicación que quiera” Verdad a medias: La frase anterior es cierta, pero…”La CPU es muy valiosa” VM Size Cores RAM Local SSD Standard_G1 2 28 Gb 406 Gb Standard_G2 4 56 Gb 812 Gb Standard_G3 8 112 Gb 1,630 Gb Standard_G4 16 224 Gb 3,250 Gb Standard_G5 32 448 Gb 6,500 Gb
  • 12. MADRID · NOV 21-22 · 2014 La CPU es muy valiosa Máquina Puntuación single-thread Puntuación multi-thread Descripción PortatilEnrique Catalá 1911 4826 Intel i7 1.73Ghz Entorno VM A3 (4cores) 1066 3635 AMD Opteron4171 2.1Ghz Entorno VM A4 (8cores) 1072 6617 AMD Opteron4171 2.1Ghz Entorno VM A7 (AMD) 1077 5622 AMD Opteron4171 2.1Ghz Entorno VM A7 (Intel) 1115 6680 Intel XeonE5-2660 2.2Ghz Entorno A9 (8 cores) 2460 10580 Intel XeonE5-26702.6Ghz Entorno VM D14 (16 cores) 1857 21444 Intel XeonE5-2660@ 2.20 GHz * Benchmarkno oficial y susceptible de cambios
  • 13. MADRID · NOV 21-22 · 2014 La CPU es muy valiosa Azure A4 OnPremise Azure A4 OnPremise Azure A4 OnPremise
  • 14. MADRID · NOV 21-22 · 2014 La CPU es muy valiosa •List<T> ->O(n) •Dictionary<T,U>-> O(1)
  • 15. MADRID · NOV 21-22 · 2014 La CPU es muy valiosa No olvides optimizar T-SQL, importa ahora todavía mas
  • 16. MADRID · NOV 21-22 · 2014 “En Azure podemos usar Azure Federationspara montar una aplicación multi-organización (tenant) basada en SQL Databaseque pueda escalar la capa de datos, incluso por diferentes regiones” ¿Verdad o mentira? mentira
  • 17. MADRID · NOV 21-22 · 2014 Escalabilidad de SQL Database
  • 18. MADRID · NOV 21-22 · 2014 Administrador de mapeo de shards
  • 19. MADRID · NOV 21-22 · 2014 SQL DatabaseElasticScale No más federaciones (no soportado) DatabaseSharding Soporte API .NET Soporte API PowerShell/ Automation Soporte migración desde Federations
  • 20. MADRID · NOV 21-22 · 2014 demo SQL DB ElasticScale Mover datos entre shards
  • 21. MADRID · NOV 21-22 · 2014 ¿Verdad o mentira? “Es preferible hacer menos peticiones a BBDD que devuelvan mas filas vs muchas peticiones devolviendo pocas filas” Verdad: El coste de round-tripes muy elevado
  • 22. MADRID · NOV 21-22 · 2014 ¿Verdad o mentira? “Los ORM son necesarios en el desarrollo cloudporque facilitan el desarrollo aunque perdamos visibilidad de lo que hace el código por debajo” Mentira -Los ORM no escalan, es así de simple -EntityFramework es mi amigo 
  • 23. MADRID · NOV 21-22 · 2014 EntityFramework: Malos usos Usar el método .Contains() recompilará siempre una queryEF
  • 24. MADRID · NOV 21-22 · 2014 EntityFramework: ¿y ahora qué? Después de 18 meses de duro trabajo, la aplicación no escala…¿qué hacemos? Librería Método ¿Qué hace? System.Data.Entity.Core. Query.PlanCompiler.PlanCompiler Compile(cqt.DbCommandTree ctree, out List<ProviderCommandInfo> providerCommands, out ColumnMap resultColumnMap, out int columnCount, out Set<md.EntitySet> entitySets) IMPORTANTE: Compila queryhacia SQL Server. Coste de compilación. Aquí generalmente es donde debemos poner esfuerzos en optimizar linq System.Data.Entity.Core. Objects.Elinq.CompiledELinqQueryState GetExecutionPlan(MergeOption? forMergeOption) Obtener plan de ejecución ya compilado previamente System.Data.Entity.Core. Objects.Elinq.ELinqQueryState GetExecutionPlan(MergeOption? forMergeOption) Obtener plan de ejecución todavía no compilado System.Data.Entity.Core. Objects.ObjectQuery<T> GetResults(MergeOption? forMergeOption) IMPORTANTE:Obtienedatos. Incluye datos GetExecutionPlan, Compile y el coste de materializar incluido. Es el coste total
  • 25. MADRID · NOV 21-22 · 2014 EntityFramework: ¿y ahora qué? Después de 18 meses de duro trabajo, la aplicación no escala…¿qué hacemos? Librería Método ¿Qué hace? System.Data.Entity.Core.Query.PlanCompiler.PlanCompiler Compile(cqt.DbCommandTree ctree, out List<ProviderCommandInfo> providerCommands, out ColumnMap resultColumnMap, out int columnCount, out Set<md.EntitySet> entitySets) IMPORTANTE: Compila queryhacia SQL Server. Coste de compilación. Aquí generalmente es donde debemos poner esfuerzos en optimizar linq System.Data.Entity.Core.Objects.Elinq.CompiledELinqQueryState GetExecutionPlan(MergeOption? forMergeOption) Obtener plan de ejecución ya compilado previamente System.Data.Entity.Core.Objects.Elinq.ELinqQueryState GetExecutionPlan(MergeOption? forMergeOption) Obtener plan de ejecución todavía no compilado System.Data.Entity.Core.Objects.ObjectQuery<T> GetResults(MergeOption? forMergeOption) IMPORTANTE:Obtienedatos. Incluye datos GetExecutionPlan, Compile y el coste de materializar incluido. Es el coste total
  • 26. MADRID · NOV 21-22 · 2014 EntityFramework: ¿y ahora qué? Pero descuida, todavía se puede poner peor  1.Mapeos querylinq–queryt-sqlcomplicados ¿alguien ha dicho la palabra “interceptor”? 2.¿Configuraste tu caché de queriesen EF de forma adecuada? ¿Cómo? 3.¿Utilizas IQueriablecomo si no hubiera un mañana? Si una de las querieslinkadasse recompila, todas las demás también …Leerse: “Performance Considerations for Entity Framework 4, 5, and 6”
  • 27. MADRID · NOV 21-22 · 2014 Q&A Dudas, cuestiones, inquietudes?
  • 28. MADRID · NOV 21-22 · 2014 GRACIAS! Enrique Catalá MVP en SQL Server, Mentor SolidQ ecatala@solidq.comenrique-catala@outlook.com @enriquecatala Miguel Lopez Cloud Champion, Mentor SolidQ mlopez@solidq.com @augurarte
  • 29. MADRID · NOV 21-22 · 2014 Grab that keyboard and start blowing brains out. Remember: this template is also available online. Now it’s your turn