Empezando con SQL Azure
Download
Report
Transcript Empezando con SQL Azure
Empezando
con
Jose Rivera
Consultant
Nagnoi, Inc.
[email protected]
Bases de Datos SQL Azure
• Fácil para provisionar e
implementar
• Alta disponibilidad (HA)
y "fault tolerance "
automaticamente
• Infraestructura automantenida y autoarreglable
• Ninguna necesidad de
administración de
servidor o VM
• Utilidad de Espacio; paga • Se construyen
soluciones de bases de
mientras crezcas
datos "cloud-based " en
• Balance de Carga (Load
un modelo relacional
Balancing) flexible
consistente
• SLAs listos para
• Aprovechar las
negocios
habilidades existentes a
• Permite soluciones
través de herramientas
multi-inquilino
conocidas
• Presencia mundial
Opciones de
Bases de Datos
Valor:
Dedicado
Área de API – 100%
Propio HA/DR/Escalabilidad
Recursos
Valor:
Alta Disponibilidad, FaultTolerance automaticos
Escalabilidad libre de fricción
Auto aprovisionamiento
Compatibilidad Alta
SQL Azure (RDBMS)
Servidor BD Virtual
Gobierno de Recursos @
Base de Datos Lógica (LDB)
Seguridad @ LDB
Compartido
Bajo
Valor:
Control completo Hardware –
Tamaño/Escalabilidad
Compatibilidad 100%
Propio HA/DR/Escalabilidad
En predios (On-premise)
SQL Server u otro s/w en-predios
Gobierno de Recursos @ maquina
Seguridad @ BD Server/SO
Alojado (Hosted)
SQL Server u otro alojado
Gobierno de Recursos @ VM
Seguridad @ Server BD/SO
“Fricción”/Control
Alto
Escenarios para Azure
Aplicaciones Departamentales
Aplicaciones simples construidas por individuos o departamentos
Necesidad de IT para implementación simple y auto-manejable:
“Apoderamiento y Dominio”
Aplicaciones Web
Empresas pequeñas o empezando que necesiten la “nube” como IT
Implementaciones simples, auto-manejables y escalabilidad según
demanda
Proveedor de Servicios de Internet (ISV)
Soporte Multi-inquilino para facturación y aislamiento
Concentrador de Datos (Data Hub)
Compartir y agregar datos a través de niveles (tiers) y empresas
Lugar centralizado para datos, alta escalabilidad y sincronización con
fuentes de datos existentes
Topologías de Aplicación (V1)
Acceso de SQL Azure desde MS Datacenter
(Azure compute – ADO.NET)
(En predios – ADO.NET)
Application/
Browser
SOAP/REST
HTTP/S
Acceso de SQL Azure desde fuera de
MS Datacenter
App Code
/ Tools
ADO.NET Data Svcs/REST - EF
HTTP/S
App Code
(ASP.NET)
Windows Azure
T-SQL (TDS)
T-SQL (TDS)
SQL Data
Services
MS
Datacenter
Código Cerca
SQL Data
Services
MS
Datacenter
Código Lejos
Modelo de Provicionamiento de
Servicio
Cada cuenta tiene cero o mas servidores
Cuenta
Abarca la plataforma de Azure, provisionado vía un portal
común
Establece un instrumento de facturación
Cada servidor tiene una o mas bases de datos
Servidor
Concepto lógico iguala a un master DB
Contiene metadata de las bases de datos y su uso
Contiene: autenticación(SQL), geo-localidad, facturación,
reportes
Nombres generados basados en DNS
El “Collation” de SQL Azure es SQL_LATIN1_GENERAL_CP1_CI_AS
Máximo de 150 bases de datos
Base de
Datos
Cada base de datos tiene objetos estándar de
SQL
Usuarios, Tablas, Vistas, Índices, etc.
Consistencia
Arquitectura
Infraestructura compartida al nivel de base de datos SQL
Enrutamiento de solicitudes (request routing), seguridad y aislamiento
Tecnología de Alta Disponibilidad y Escalabilidad
Replicación y “failover” automáticos
Infraestructura de medición y facturación
SDS Aprovisionamiento (bases de datos, cuentas, roles, …, Medición y Facturación
Maquina 4
Instancia SQL
User
DB1
SQL BD
User
DB2
User
DB3
User
DB4
User
DB1
Maquina 5
Maquina 6
Instancia SQL
Instancia SQL
SQL BD
User
DB2
User
DB3
User
DB4
User
DB1
SQL BD
User
DB2
User
DB3
User
DB4
Scalability
and Availability:
Failover, Replication,
balancing
Escalabilidad y Disponibilidad:
Fabric,
Failover,Fabric,
Replicación
y Balanceand
deLoad
Carga
Replicas de Base de Datos
Base de Datos unica
Multiples Replicas
!
Replica 1
BD
Replica 2
Replica 3
Replica 4
Primario Unico
SQL Azure
Implementación
DB
Script
SQL Azure
TDS Gateway
SQL Azure
Accesando las bases de datos
Cambia parámetro de
conexión (connection string)
Your
App
SQL Azure
TDS Gateway
Modelo de Programación
Pequeños conjuntos de datos (Small Data Sets)
Usa una sola base de datos
Mismo modelo que SQL Server en los predios
Grandes conjuntos de datos (Large Data Sets) y/o
rendimiento masivo (Massive Throughput)
Particionar la data a través de varias bases de datos
Usar “parallel fan-out queries” para búsqueda de datos
Código de las aplicaciones debe ser “partition aware” en v1
Deben estar publicados los “best practices” para escalabilidad
Post-v1 se trabajara en nivel de abstracción para reducir las
complejidades de particiones
Desarrollo en SQL Azure
Demo
Ejemplos de Compatibilidad de SQL
Soportadas al momento
Tablas, indexes and vistas *
Procedimiento almacenado
(Stored Procedures)
Disparador(Triggers)
Restricciones(Constraints)
Variables de tablas,
tablas temporeras de
sesiones (#t)
Spatial
No soportadas al momento
Transacciones distribuidas
Búsquedas (queries)
distribuidas
CLR
Service Broker
DDL and vistas relacionadas al
servidor físico o al catalogo
Para mas información, vean http://msdn.microsoft.com/en-us/library/ee336281(lightweight).aspx
Metas de Compatibilidad
Soporte para patrones comunes de aplicaciones
Administración lógica / basada en pólizas
Patrones que funcionan de SQL Server a SQL Azure
Consideraciones para Multi-inquilinos
“Throttling” and Balance de Carga (Load Balancing)
Limites en tamaño de BD, duracion de transacciones, etc
Modelo de Conexion
Se utilizan librerías de clientes existentes
ADO.NET, ODBC, PHP
Librerías de cliente pre-instaladas en roles de Azure
Soporte para controles ASP.NET
Clientes se conectan directamente a la base de datos
No se puede “brincar” a través de las BDs (no USE)
Administración
Lógica vs. Física
SQL Azure se enfoca en administración lógica
Creación y manejo de esquemas
Optimización de búsquedas
Manejo de seguridad (Logins, Usurios, Roles)
Servicio maneja el aspecto físico
Replicación automática con Alta disponibilidad “out of
box”
Failover transparente en caso de fallo
Balance de Carga de los datos para asegurar SLA
El rol de DBA se enfatiza mas en manejo lógico
Implementación
Soporte para opciones de implementación básicas
Los SQL scripts funcionan (pero no attach database)
Geo-localización de Windows Azure y de bases de datos SQL
Azure (Datacenters)
Soporte para aplicaciones y modelo de multi-servidores
Implementación de Nube (Cloud) o en los predios es un tema de
selección al momento
Visibilidad de los datos tanto en los predios como en la nube
Modelo de Seguridad
Utiliza el modelo de seguridad regular de SQL
Autentica logins, enlace a usuarios y roles
Autentica usuarios y roles a objetos de SQL
Limitado a logins de SQL
Username + password
Se contempla futuros protocolos de autenticación: AD
Federation, WLID, etc
Modelo de seguridad es 100% compatible con SQL locales
Ediciones de las Bases de Datos
Dos SQL Azure Database SKUs: Web & Business
Web Edition: 1 GB @ $9.99/mes | 5 GB @ $49.95/mes
Business Edition: Hasta 50 GB @ $99.99/10 GB/mes
10 GB @ $99.99 | 20 GB @ $199.98 | 30 GB @ $299.97 | 40 GB @ $399.96 | 50 GB @ $499.95
DBA especifica la edicion
Web: EDITION = Web
Business: EDITION = Business
DBA especifica MAXSIZE
Web: MAXSIZE = 1GB| 5GB
Business: MAXSIZE = 10GB | 20GB | 30GB | 40GB | 50GB
El limite de 50 es establecido y no se permitirá crecimiento
Sera cargado por el crecimiento actual (peak) (in cualquier día )
CREATE DATABASE foo1 (EDITION='business', MAXSIZE=50GB);
CREATE DATABASE foo2 (EDITION='business', MAXSIZE=30GB);
CREATE DATABASE bar1 (EDITION='web', MAXSIZE=5GB);
CREATE DATABASE bar2 (EDITION='web'); -- Defaults a 1GB
Ediciones de las Bases de Datos
Transferencia de datos
América del Norte & regiones de Europa
$0.10 per GB in
$0.15 per GB out
Región Asia Pacifico
$0.30 per GB in
$0.45 per GB out
Transferencias de datos de entrada (Inbound) durante horas no
pico (off-peak) hasta octubre 31, 2010 son sin cargos. Precios
revierten a las tasas de cargos de entrada luego de octubre 31,
2010.
Puntos Claves
Parte integrada de la Plataforma de Datos SQL
Aprovechar los conocimientos y herramientas existentes de SQL
Server
SQL Azure es la plataforma de datos de Windows Azure
Quieren saber mas?
Windows Azure Platform
http://www.azure.com/
Windows Azure Platform Training Kit
http://www.microsoft.com/downloads/details.aspx?FamilyID=413E
88F8-5966-4A83-B309-53B7B77EDF78&displaylang=en
MSDN Development Center
http://msdn.microsoft.com/en-us/sqlserver/dataservices
Team Blog
http://blogs.msdn.com/ssds
Joe Rivera’s Techno Ramblings
http://joetechramblings.wordpress.com