72
Azure Data Platform Jesus Aguilar Sr Technical Evangelist Microsoft @giventocode Microsoft Azure

Azure - Data Platform

Embed Size (px)

Citation preview

Page 1: Azure - Data Platform

Azure Data PlatformJesus AguilarSr Technical Evangelist Microsoft

@giventocodeMicrosoft Azure

Page 2: Azure - Data Platform

Data Platform Components

A NoSQL document store that

offers fast time to market,

differentiated querying and

tuning capabilities with

schema-less web scale

Relational Non-Relational

SQL DB (PAAS) Table Storage File/ Blob StorageDocument DBSQL VM (IAAS)

Page 3: Azure - Data Platform

SQL Database

Page 4: Azure - Data Platform

Starting With The BasicsSQL Database

Page 5: Azure - Data Platform

The Basics

SQL Server database technology as a service

Fully Managed

Enterprise-ready with automatic support for HA

Designed to scale out elastically with demand

Ideal for simple and complex applications

Page 6: Azure - Data Platform

A Server Is Not A Machine

Page 7: Azure - Data Platform

How It Works

Client Layer - Used by application to communicate directly with SQL Database.

Services Layer – Gateway between Client layer and Platform layer.

Platform Layer – Includes physical servicers and services that support the Services layer.

Infrastructure Layer – IT administration of the physical HW and OS.

PHPWCF Data

Services

SQL Server

Applications

and Tools

ODBC ADO.NET

Tabular Data Stream (TDS)

Page 8: Azure - Data Platform

Server Provisioning

Service head that contains databases

Connect via automatically generated FQDN (xxx.database.windows.net)

Initially contains only a master database

Log on to Microsoft Azure Management Portal

Create a SQL Database server

Specify admin login credentials

Add firewall rules and enable service access

Use Microsoft Azure Platform PowerShell cmdlets (or use REST API directly)

wappowershell.codeplex.com

Page 9: Azure - Data Platform

Selecting the right EditionService

Tier

Performance

Level

Common App

Pattern

Performance Business Continuity

Max DB

Size

Trans. Perf.

Objective

DTUs PITR DR / GEO-Rep

Basic Basic Small DB, SQL opp 2 GB Reliability / Hr. 5 Past 7

Days

DB Copy +

Manual Export

Standard S1 / S2 Wrkgp/cloud app,

multiple concurrent

operations

250 GB Reliability / Min. 15/ 50 Past 14

Days

DB Copy +

Manual Export

Premium P1 / P2 / P3 Mission Critical, High

volume, Many

concurrent Users

500 GB Reliability / sec. 100/

200/

800

Past 35

Days

Active Geo-

replication

Page 10: Azure - Data Platform

DemoCreating A SQL Database Server

Page 11: Azure - Data Platform

Create And Deploy

Your Database

Page 12: Azure - Data Platform

Create Database…

Transact-SQL

Languages

.NET Framework (C#, Visual Basic, F#) via ADO.NET

C / C++ via ODBC

Java via Microsoft JDBC provider

PHP via Microsoft PHP provider

Frameworks

OData, Entity Framework, WCF Data Services, NHibernate

Tools

SQL Server Management Studio (2008 R2 and later)

SQL Server command-line utilities (SQLCMD, BCP)

CA Erwin® Data Modeler

Embarcadero Technologies DBArtisan®

Focus on logical vs. physical administration

Database and log files automatically placed

Three high-availability replicas maintained for every database

Tables require a clustered index

Maximum database size is 500 GB

Use command, distributed transactions, distributed views

Service Broker

Common Language Runtime (CLR)

SQL Agent

SQL Profiler

Native Encryption

Page 13: Azure - Data Platform

Enhanced Tooling

Web designers for tables, views, stored procs

Interactive query editing and execution

Visual Studio IDE for database development

Includes modern designers and projects with declarative, model-driven development

Develop and test in both connected and disconnected states

Platform targeting for both SQL Server (2005 and above) and SQL Database

Get it free with Web PI, with SQL Server 2012 and with Visual Studio 11

Page 14: Azure - Data Platform

Database Deployment

Alternative to traditional script based approach

Dramatically simplifies deployment, migration and versioning of databases

Provides a single unit of deployment for schema (dacpac) or for schema + data (bacpac)

Supports automatic versioning of database schemas

Supports platform targeting for both SQL Server (2005 and above) and SQL Database

Build from scratch or extract from existing db

With SQL Server Data Tools

With SQL Server 2012/2014 Management Studio

With SQL Database Import/Export Service

Via sqldacexamples.codeplex.com

Page 15: Azure - Data Platform

Secure Your DatabaseSQL Database

Page 16: Azure - Data Platform

There Are Two Ways To Secure A Database:

Page 17: Azure - Data Platform

Server Benefits

SQL authentication supported (No Integrated authentication)

The Admin login is similar to sa

Connect to master to administer logins

loginmanager: Server-Level security role for creating logins

dbmanager: Server-Level security role for creating databases

Page 18: Azure - Data Platform

Database Benefits

Logins require an associated user account

The Admin login is automatically associated with dbo

The dbo has full rights in the database

Manage users with CREATE / ALTER / DROP USER commands

Add users to roles via sp_add_rolemember to grant privileges

Utilize schemas where appropriate

Page 19: Azure - Data Platform

SQL Database Firewall

• IP Address-based access control for SQL Database

• Rules can be defined at the server and database

• No IP authorized by default

• Configurable using the SQL Database Portal and REST API

• Option to disable/enable access from applications hosted in Microsoft Azure

Page 20: Azure - Data Platform

Application Connectivity

1. TDS (Tabular Data Stream) protocol over TCP/IP supported

2. SSL required

3. Use firewall rules to connect from outside Microsoft data center

ASP.NET EXAMPLE:

1. login: [login]@[server]

2. Idle connections

3. Long running transactions

4. DoS guard

5. Failover events

6. Throttling

7. Connection pooling and Retry logic

8. Latency introduced for updates

9. No cross-database dependencies

<connectionStrings><addname="AdventureWorks"connectionString=

"Data Source=[server].database.windows.net;Integrated Security=False;Initial Catalog=ProductsDb;User Id=[login];Password=[password];Trusted_Connection=False;Encrypt=true;"

providerName="System.Data.SqlClient"/></connectionStrings>

Page 21: Azure - Data Platform

Elastic SQL Database – Scaling out!

• .NET Client Libraries• Management of Shards

• Data Access

Page 22: Azure - Data Platform

SQL on IaaS

Page 23: Azure - Data Platform

Run SQL on VM

• Run any SQL product on cloud VM

• Support for SQL Server, Oracle, MySql

• Ready to go VM images available in Gallery

• Persistent storage using attached disk in blob storage

23Microsoft Azure

Page 24: Azure - Data Platform

SQL Database vs SQL IaaS Comparison

24Microsoft Azure

Page 25: Azure - Data Platform

Azure Storage Architecture

“Microsoft Azure Storage: A Highly Available Cloud Storage Service with Strong Consistency”, ACM

Symposium on Operating System Principals (SOSP), Oct. 2011

Page 26: Azure - Data Platform

Azure Files

Page 27: Azure - Data Platform

“I wish I could go to storage and provision a cloud drive, giving it a namespace, and that drive would then be UNC-addressable by the OSes.”

Azure Files – Customer Quotes

Page 28: Azure - Data Platform

• Setup an IaaS VM to host a File Share backed by an IaaS Disk• Write code to find the IaaS File Share from the rest of the VMs in

your service.• Write some code to provide high availability

• Handle host upgrades, node failures

• You can only access the File Share from other VMs

Sharing Files – The old way

Page 29: Azure - Data Platform

Azure Files•

Page 30: Azure - Data Platform

Azure Files

Page 31: Azure - Data Platform

Azure Files

Page 32: Azure - Data Platform

Website Served From Azure File Share

Load Balancer

Azure

VM

Azure

VM

Page 33: Azure - Data Platform

Blob Storage

Page 34: Azure - Data Platform

Blob Storage Concepts

Page 35: Azure - Data Platform

Blob Details

Page 36: Azure - Data Platform

Blob Details

Page 37: Azure - Data Platform

Blob Details

Page 38: Azure - Data Platform

Blob Containers

• Special $root container

• A container holds a set of blobs• Set access policies at the container level • Associate Metadata with Container• List the blobs in a container• Including Blob Metadata and MD5 • NO search/query. i.e. no WHERE MetadataValue = ?

• Effectively in Partition of 1• Target of 60MB/s per Blob

Page 39: Azure - Data Platform

Enumerating Blobs

• Prefix

• Delimiter

• Include= (snapshots, metadata etc…)

Page 40: Azure - Data Platform

Pagination

• Either set maxresultsor;

• Exceed default value for maxresults (5000)

Page 41: Azure - Data Platform

Two Types of Blobs Under the Hood

Page 42: Azure - Data Platform

Uploading a Block Blob

Uploading a large blob

BenefitEfficient continuation and retry

Parallel and out of order upload of blocks

Microsoft Azure

Storage

Page 43: Azure - Data Platform

Page Blob – Random Read/Write

Page 44: Azure - Data Platform

Shared Access Signatures

• Use short time periods and re-issue

• Use container level policy that can be deleted

• Ad-hoc

• Policy based

Page 45: Azure - Data Platform

Ad Hoc Signatures

• Signedresource Blob or Container

• AccessPolicy Start, Expiry and Permissions

• Signature HMAC-SHA256 of above fields

• Single use URLs

• E.g. Provide URL to mobile client to upload to container

Page 46: Azure - Data Platform

Policy Based Signatures

• Specify StartTime, ExpiryTime, Permissions

• Signedresource Blob or Container

• Signedidentifier Optional pointer to container policy

• Signature HMAC-SHA256 of above fields

• Providing revocable permissions to certain users/groups

• To revoke: Delete or update container policy

Page 47: Azure - Data Platform

NoSQL48

Page 48: Azure - Data Platform

Generally scales more easily

• The storage engines of NoSQL stores are designed to minimize contentions enabling higher throughput and therefore more scalable

• Lower transaction capability in NoSQL results in less contention and therefore more scalable

• Less complex query processor means that a single query can’t degrade service

• Built-in replication capability means that store can scale out which better aligns to other application tiers (e.g. websites)

• No fixed schema or lower schema requirements

49Microsoft Azure

Page 49: Azure - Data Platform

NoSQL on Azure

• Azure Tables service is NoSQL row store

• DocumentDB born in the cloud document database (JSON) and JS (PAAS).

• HBase is a Big Data (Hadoop) NoSQL store available in HDInsight

• MongoDB is a document (JSON) store

• Cassandra is a columnar store with excellent replication

50Microsoft Azure

Page 50: Azure - Data Platform

Tables51

Page 51: Azure - Data Platform

Table Storage Concepts

Page 52: Azure - Data Platform

Table Details

Page 53: Azure - Data Platform

Entity PropertiesEntity can have up to 255 propertiesUp to 1MB per entity

Mandatory Properties for every entityPartitionKey & RowKey (only indexed properties)Uniquely identifies an entityDefines the sort order

Timestamp Optimistic ConcurrencyExposed as an HTTP Etag

No fixed schema for other propertiesEach property is stored as a <name, typed value> pairNo schema stored for a tableProperties can be the standard .NET types String, binary, bool, DateTime, GUID, int, int64, and double

Page 54: Azure - Data Platform

No Fixed Schema

Page 55: Azure - Data Platform

Querying

Page 56: Azure - Data Platform

Purpose of the PartitionKey

Entity LocalityEntities in the same partition will be stored togetherEfficient querying and cache localityEndeavour to include partition key in all queries

Entity Group TransactionsAtomic multiple Insert/Update/Delete in same partition in a single transaction

Table ScalabilityTarget throughput – 500 tps/partition, several thousand tps/accountMicrosoft Azure monitors the usage patterns of partitionsAutomatically load balance partitionsEach partition can be served by a different storage nodeScale to meet the traffic needs of your table

Page 57: Azure - Data Platform

Partitions and Partition Ranges

Page 58: Azure - Data Platform

DocumentDB

Page 59: Azure - Data Platform

Key ConsiderationsNimble document database

Scalable document database as a service

Extensibility through JavaScript

Cross-Platform access

Transactions

Configurable Consistency Levels

Schema-Free

Document Indexing

Page 60: Azure - Data Platform

Resource Model

Database

TenantCollection

Document

Attachment

User

/users/{id}

Permission

/dbs/{id}

/colls/{id}

/docs/{id}

/attachments/{id}

/permissions/{id}

Document

Service

/Addresses

/addresses

Items and Feeds (Nouns)Natively stored and served as JSON

URI addressable

Partitioned for scale-out

Replicated for HA

Granular access control

A subscription can provision 1+ Document Services

Can run in shared or dedicated mode

Each can have 1+ databases

Page 61: Azure - Data Platform

Interaction ModelRESTful interaction over HTTP

Standard HTTP verbs & semantics

Interact using your favorite HTTP client

Built-in Support for TCP

Novel, efficient and powerful document centric query model

Javascript based sprocs/triggers /evals

POSTItem

resource TenantFeed URI

PUTItem

resource Item URI

DELETE Item URI

GET TenantFeed Or

Item URI

Create a new resource

/Execute a script

Replace an existing resource

Delete an existing resource

Read/Query an existing

resource

Update an existing resource

PATCH Item URIItem

resource

Page 62: Azure - Data Platform

location headquarters exports

Belgium 0 1

city

Moscow

city

Athens

0

country city

Germany Berlin

1

country city

France Paris

0

headquarters exports

country city

Italy 0 1

Germany Bonn

city dealers

Berlin 0

city

Amsterdam

name

Hans

location

Page 63: Azure - Data Platform
Page 64: Azure - Data Platform
Page 65: Azure - Data Platform
Page 66: Azure - Data Platform
Page 67: Azure - Data Platform

Azure

footprint

16 regions worldwide in 2014

Page 68: Azure - Data Platform

Fortune 500 using Azure

>57% >250kActive websites

Greater than

1,000,000SQL Databases in Azure

>20TRILLIONstorageobjects >300 MILLION

AD users

>13 BILLIONauthentication/wk>2

MILLIONrequests/sec >1

MILLIONDevelopers

registered with

Visual Studio

Online

Page 69: Azure - Data Platform
Page 70: Azure - Data Platform

Get startedVisit azure.microsoft.com

Page 71: Azure - Data Platform

SQL Database Billing Rates (As of February 2012)

Database Size Price Per Database Per Month

0 to 100 MB Flat $4.995

> 100 to 1 GB Flat $9.99

> 1GB to 10 GB $9.99 for first GB, $3.99 per additional GB

> 10 GB to 50 GB $45.954 for first 10 GB, $1.998 for each additional GB

> 50 GB to 150 GB $145.874 for first 50 GB, $0.999 for each additional GB

Page 72: Azure - Data Platform

SQL Database Architecture