Data Patterns in Cloud Computing Régis Mauger Infrastructure Architect Pierre Couzy Technical Architect

Slides:



Advertisements
Similar presentations
Janakiram MSV Sr. Technology Strategist | Microsoft India Development Center.
Advertisements

 Gopal Kakivaya Partner Architect Microsoft Corporation BP03.
The Microsoft Cloud Azure Platform This presentation incorporates some content from Microsoft.
Overview Of Microsoft New Technology ENTER. Processing....
Asper School of Business University of Manitoba Systems Analysis & Design Instructor: Bob Travica System architectures Updated: November 2014.
MICROSOFT CONFIDENTIAL Sept 2009 | Page 1 | BDM Presentation.
Manage & Configure SQL Database on the Cloud Haishi Bai Technical Evangelist Microsoft.
Windows Azure Storage Services Saranya Sriram, Technology Evangelist, Microsoft, India.
Building Offline/Cache Mode Web Apps Using Sync Framework Mike Clark Group Manager Cloud Data Services Team
PlacePlace TypeType ServiceService Analysis Caching Integration Sync Search Relational BLOB Query BackupLoad Multi Dim In Memory File XML Reporting.
WINDOWS AZURE STORAGE 11 de Mayo, 2011 Gisela Torres – Windows Azure MVP Aventia-Renacimiento Twitter:
Cross Platform Mobile Backend with Mobile Services James
Inside Windows Azure Storage Name Title Microsoft Corporation.
Windows Azure SQL Database and Storage Name Title Organization.
Creating Business Workflow Using SharePoint Designer 2007 Presented by Tarek Ghazali IT Technical Specialist Microsoft SQL Server MVP Microsoft SQL Server.
Training Workshop Windows Azure Platform. Presentation Outline (hidden slide): Technical Level: 200 Intended Audience: Developers Objectives (what do.
Scott Zimmerman Solutions Architect, SOA/.NET/Azure/BizTalk.
 Anil Nori Distinguished Engineer Microsoft Corporation.
Larisa kocsis priya ragupathy
Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL
Windows Azure Storage – Essential Cloud Storage Services Denver Cloud Computing User Group
Windows Azure Tour Benjamin Day Benjamin Day Consulting, Inc.
Virtual techdays INDIA │ august 2010 SQL Azure – Tips and Tricks Ramaprasanna Chellamuthu │ Developer Evangelist, Microsoft.
Windows Azure Dave Glover Developer Evangelist Microsoft Australia Tel:
Windows Azure Conference 2014 Deploy your Java workloads on Windows Azure.
Open Data Protocol * Han Wang 11/30/2012 *
Project “Astoria” first announced in Mix 2007 Shared early prototypes, got tons of feedback Now we’re talking about the real deal Production quality bits,
T.N.C.Venkata Rangan CEO, Vishwak Solutions Your Data on Cloud.
Azure Services Platform Update James Conard Sr. Director Developer & Platform Evangelism Microsoft Corporation.
Virtual techdays INDIA │ august 2010 Building & Migrating Web applications using Windows Azure storage Ramaprasanna Chellamuthu │ Developer Evangelist;
Bizfss File Sync and Sharing Solution, Built on Microsoft Azure, Allows Businesses to Sync, Share, Back Up Using Their Own Cloud Storage MICROSOFT AZURE.
Securely Synchronize and Share Enterprise Files across Desktops, Web, and Mobile with EasiShare on the Powerful Microsoft Azure Cloud Platform MICROSOFT.
 Brad Calder Director/Architect Microsoft Corporation ES04.
Windows Azure. Azure Application platform for the public cloud. Windows Azure is an operating system You can: – build a web application that runs.
Text Microsoft to Or Tweet #uktechdays Questions?
Introduction to Active Directory
Microsoft Partner Conference Integrated Innovation Don Kerr Partner Technology Specialist.
1 Neil Kidd MTC Architect - DPE NeilKidd Neil Kidd MTC Architect - DPE NeilKidd.
Technology Drill Down: Windows Azure Platform Eric Nelson | ISV Application Architect | Microsoft UK |
SQL Server 2012 Session: 1 Session: 4 SQL Azure Data Management Using Microsoft SQL Server.
 Cloud Computing technology basics Platform Evolution Advantages  Microsoft Windows Azure technology basics Windows Azure – A Lap around the platform.
WINDOWS AZURE AND THE HYBRID CLOUD. Hybrid Concepts and Cloud Services.
Windows Azure Custom Software Development Mobile Middleware Windows Azure Storage Dipl.-Ing. Damir Dobric Lead Architect daenet
Simon Davies Microsoft Global reach Ease of provisioning Business agility Deployability & manageability Security & Privacy Customisability.
Private KEEP OFF! Private KEEP OFF! Open! What is a cloud? Cloud computing is a model for enabling convenient, on-demand network access to a shared.
BlobContainerAccount sally pictures IMG001.JPG IMG002.JPG movies MOV1.AVI.
2 ADO.NET Data Services for the Web Mike Flasko Program Manager, Microsoft “Project Astoria”
Connected Infrastructure
Build /26/2018 6:17 AM Building Resilient, Scalable Services with Microsoft Azure Service Fabric Érsek © 2015 Microsoft Corporation.
Business Continuity & Disaster Recovery
New Heights by Guiding Them into the Cloud
Couchbase Server is a NoSQL Database with a SQL-Based Query Language
Connected Infrastructure
Power BI Security Best Practices
NGAGE Intelligence Leverages Microsoft Azure Platform to Provide Essential Analytics for Hybrid SharePoint Server/Office 365 Environments MICROSOFT AZURE.
02 | Design and implement database
Business Continuity & Disaster Recovery
20409A 7: Installing and Configuring System Center 2012 R2 Virtual Machine Manager Module 7 Installing and Configuring System Center 2012 R2 Virtual.
DeFacto Planning on the Powerful Microsoft Azure Platform Puts the Power of Intelligent and Timely Planning at Any Business Manager’s Fingertips Partner.
Outline Virtualization Cloud Computing Microsoft Azure Platform
One-Stop Shop Manages All Technical Vendor Data and Documentation and is Globally Deployed Using Microsoft Azure to Support Asset Owners/Operators MICROSOFT.
Cloud Data Replication with SQL Data Sync
Saranya Sriram Developer Evangelist | Microsoft
Technical Capabilities
Developing for Windows Azure
MS AZURE By Sauras Pandey.
Windows Azure Hybrid Architectures and Patterns
Microsoft Virtual Academy
Mark Quirk Head of Technology Developer & Platform Group
Microsoft Virtual Academy
Presentation transcript:

Data Patterns in Cloud Computing Régis Mauger Infrastructure Architect Pierre Couzy Technical Architect

Data patterns in cloud computing Best and Worst are sometimes close friends Where do you store the Data ? Azure Storage Blobs, Tables and Queues A primer on SDS How do you access the data ? REST Interfaces and Ado.Net Data Services The role of synchronization Sync Framework Towards a standardization of data on the cloud ?

Introduction Data is no longer under your direct control 70% of IT data lives outside the data center. What is the current trend ? People Data Devices Applications

Data is already “cloudy” It has been for a long time : think about Outlook and its connection with the enterprise location (OWA / Disconnected use) It is for a large variety or data. Do you know how we prepared this event ? Outlook has its rules, policies, administrations tasks, and everything. Not so with Live Mesh ! This talk wants to give you an insight of the techniques and tools you’re about to face in your everyday life so that you are prepared :)

Cloud storage, what options ? You can host inside Azure Bound to an Azure Web app / Worker process Table/Queue/Blob Think « Azure Application Storage » You can host on SDS Independant from an application Open Connectivity through REST interfaces Richer capabilities (re You can host yourself on your DMZ Do you have to reinvent the wheel in that case ?

Storage in the Azure world

Account Container Blobs Table Entities Queue Messages Windows Azure Storage URLs

Windows Azure Storage Account User creates a globally unique storage account name Receive a 256 bit secret key when creating account Provides security for accessing the store Use secret key to create a HMAC SHA256 signature for each request Use signature to authenticate request at server Account Blob Table Queue

Windows Azure Storage : blobs Store large objects (up to 50 GB each) Standard REST PUT/GET Interface / PutBlob Inserts a new blob or overwrites the existing blob Support for Continuation on Upload GetBlob Get whole blob or by starting offset, length DeleteBlob Associate Metadata with Blob Metadata is pairs Up to 8KB per blob

Demo Blob manipulation on Windows Azure Storage

Blob Namespace Blob URL / Example: Account – sally Container – music BlobName – rock/rush/xanadu.mp3 URL: Blob Containe r Account sally pictures IMG001.JP G IMG002.JP G movies MOV1.AVI

Container “movies” has: Action/Rocky.avi Action/Rocky2.avi Drama/Crime/GodFather.avi Drama/Crime/GodFather2.avi Drama/LordOfRings.avi Thriller/TheBlob.wmv List top level “directories” REST Request: GET ?comp=list &delimiter=/ Results: Action Drama Horror Container “movies” has: Action/Rocky1.wmv Action/Rocky2.wmv Action/Rocky3.wmv Action/Rocky4.wmv Action/Rocky5.wmv Drama/Crime/GodFather1.wmv Drama/Crime/GodFather2.wmv Drama/Memento.wmv Horror/TheBlob.wmv

Container “movies” has: Action/Rocky1.avi Action/Rocky2.avi ……… Action/Rocky5.avi Drama/Crime/GodFather1.avi Drama/Crime/GodFather2.avi Drama/Gladiator.avi Horror/TheBlob.wmv List directory “Drama”: REST Request: GET ?comp=list &prefix=Drama/ &delimiter=/ Results: Drama/Crime Drama/Memento.wmv Container “movies” has: Action/Rocky1.wmv Action/Rocky2.wmv Action/Rocky3.wmv Action/Rocky4.wmv Action/Rocky5.wmv Drama/Crime/GodFather1.wmv Drama/Crime/GodFather2.wmv Drama/Memento.wmv Horror/TheBlob.wmv

Container “movies” has: Action/Rocky1.wmv Action/Rocky2.wmv Action/Rocky3.wmv Action/Rocky4.wmv Action/Rocky5.wmv Drama/Crime/GodFather1.wmv Drama/Crime/GodFather2.wmv Drama/Memento.wmv Horror/TheBlob.wmv Max Results and Next Marker REST Request: GET ?comp=list &prefix=Action &maxresults=3 Results: Action/Rocky1.wmv Action/Rocky2.wmv Action/Rocky3.wmv OpaqueMarker1

Using Continuation Marker REST Request: GET ?comp=list &prefix=Action &maxresults=3 &marker=OpaqueMarker1 Results: Action/Rocky4.wmv Action/Rocky5.wmv Container “movies” has: Action/Rocky1.wmv Action/Rocky2.wmv Action/Rocky3.wmv Action/Rocky4.wmv Action/Rocky5.wmv Drama/Crime/GodFather1.wmv Drama/Crime/GodFather2.wmv Drama/Memento.wmv Horror/TheBlob.wmv

Windows Azure Storage : tables Tables in Windows Azure Storage are very simple : A partition ID (think storage base unit and container scope) A Row ID (must be unique at a partition level) A list of properties (think columns) Access can be done with.Net framework 3.5 classes System.Data.Services.Client Partition Key Document Name Row Key Version Property 3 Modification Time ….. Property N Description Examples Doc V1.08/2/2007….. Committed version Examples Doc V2.0.19/28/2007Alice’s working version FAQ DocV1.05/2/2007Committed version FAQ DocV1.0.17/6/2007Alice’s working version FAQ DocV1.0.28/1/2007Sally’s working version

Demo Table manipulation on Windows Azure Storage

Partition Key Document Name Row Key Version Property 3 Modification Time …..Property N Description Examples DocV1.08/2/2007…..Committed version Examples DocV2.0.19/28/2007Alice’s working version FAQ DocV1.05/2/2007Committed version FAQ DocV1.0.17/6/2007Alice’s working version FAQ DocV1.0.28/1/2007Sally’s working version Partition 1 Partition 2

[DataServiceKey("PartitionKey", "RowKey")] public class Customer { // Partition key – Customer Last name public string PartitionKey { get; set; } // Row Key – Customer First name public string RowKey { get; set; } // User defined properties here public DateTime CustomerSince { get; set; } public double Rating { get; set; } public string Occupation { get; set; } }

[DataServiceKey("TableName")] public class TableStorageTable { public string TableName { get; set; } } TableStorageTable table = new TableStorageTable("Customers"); context.AddObject("Tables", table); DataServiceResponse response = context.SaveChanges(); // serviceUri is “ DataServiceContext context = new DataServiceContext(serviceUri);

Customer cust = new Customer( “Lee”, // Partition Key = Last Name “Geddy”, // Row Key = First Name DateTime.UtcNow, // Customer Since 2.0, // Rating “Engineer” // Occupation); context.AddObject(“Customers”, cust); DataServiceResponse response = context.SaveChanges(); // Service Uri is “ DataServiceContext context = new DataServiceContext(serviceUri);

DataServiceContext context = new DataServiceContext(“ var customers = from o in context.CreateQuery (“Customers”) where o.PartitionKey == “Lee” select o; foreach (Customer customer in customers) { } GET $filter= PartitionKey eq ‘Lee’

context.DeleteObject(cust); DataServiceResponse response = context.SaveChanges(); cust.Occupation = “Musician”; context.UpdateObject(cust); DataServiceResponse response = context.SaveChanges(); Customer cust = ( from c in context.CreateQuery (“Customers”) where c.PartitionKey == “Lee” // Partition Key = Last Name && c.RowKey == “Geddy” // Row Key = First Name select c).FirstOrDefault();

Azure storage principes Démos 1 2 et 3 par Régis Démo 1 : Blob Accès par ie Interface REST Démo 2 : table (create table from model) RdChat Table messages, Name/Body/Timestamp/PartitionKey/RowKey Démo 3 : queue Web+worker

Windows Azure Storage : Queues Think MSMQ on the Cloud Queues provide reliable message delivery Simple, asynchronous work dispatch Programming semantics ensure that a message can be processed at least once Queues are Highly Available, Durable and Performance Efficient Access is provided via REST

Demo Queue manipulation on Windows Azure Storage Cloud Storage (blob, table, queue) Web Role LB Worker Role

Account, Queues And Messages An Account can create many Queues Queue Name is scoped by the Account A Queue contains Messages No limit on number of messages stored in a Queue But a Message is stored for at most a week Messages Message Size <= 8 KB To store larger data, store data in blob/entity storage, and the blob/entity name in the message

C1C1 C1C1 C2C2 C2C Producers Consumers P2P2 P2P2 P1P1 P1P Dequeue(Q, 30 sec)  msg 2 1. Dequeue(Q, 30 sec)  msg

C1C1 C 1 C2C2 C2C Producers Consumers P2P2 P2P2 P1P1 P1P Dequeue(Q, 30 sec)  msg 2 3. C2 consumed msg 2 4. Delete(Q, msg 2) 7. Dequeue(Q, 30 sec)  msg 1 1. Dequeue(Q, 30 sec)  msg 1 5. C 1 crashed msg1 visible 30 seconds after Dequeue Benefit: Insures that every message can be processed at least once 3 3

Sql Data Services SDS is built on three key pillars 1.Storage for all data types from birth to archival 2.Rich data processing services 3.Operational excellence

Mgmt. Services Data Node SQL Server Fabric Data Node Components Partition Manager Master Node Mgmt. Services Data Node SQL Server Fabric Mgmt. Services Data Node SQL Server Fabric Mgmt. Services Data Node SQL Server Fabric Deployment Health Monitoring Service Management Master Cluster Data Cluster Fabric Replication Fetch Partition Map SQL Client Mgmt. Services Data Node SQL Server Fabric Data Node Components Partition Manager Master Node Provisioning SDS front-end Data Access Library REST/SOAP ACE Logic Front-end Node Data Access Library REST/SOAP ACE Logic Front-end Node Data Access Library REST/SOAP ACE Logic Front-end Node

SQL Server P P S S S S S S Replication Agent Local Partition Map Data Node 100 Master Node (Primary Master) Primary Secondary Fabric Ring Topology Failure Detector PM Location Resolution Reconfiguration Agent Fabric Leader Elector Partition Manager Partition Placement Advisor SQL Server Global Partition Map Fabric Data Node 103 P P S S S S S S P P Data Node 104 P P S S S S P P S S Data Node 102 P P S S S S P P S S Data Node 105 P P S S S S S S S S Data Node 101 P S S S S P P S S Load Balancer Partition Management

Data Model And ACE Concepts Unit of geo-location and billing Tied to DNS name Collection of Containers Unit of Consistency Scope for Query and Update Collection of Entities Unit of Storage Property Bag of Name/ Value pairs No Schema Required

Demo Creating an entity Querying

SDS Query language

Demo Using SOAP to communicate with SDS

Data services tier of the Azure Services Platform Built on SQL Server foundation Broad data platform capabilities as a service Friction-free provisioning, scaling Significant investments in scale, HA, lights-out operation and TCO Reference Data Reporting ETL Data Mining

Azure Storage or SDS ? Windows Azure Storage “Essential storage service in the cloud” Provides a core set of non- relational storage and retrieval abstractions at massive scale SQL Data Services “Premium database service in the cloud” Extends the rich capabilities of the SQL data platform to the cloud at scale Relational data processing over structured and unstructured data Integrate with key data platform capabilities – e.g. Data Analytics, Reporting, ETL

Hosting data locally Hosting for the cloud implies being reachable from the internet Will you enable write access to the data ? How do you plan to separate data Along its uses (capacity planning) Along its volatility (caching schemes) Along its consumers (JSON, REST, SOAP) Can we borrow ideas and standards ? The enterprise often mimics behaviours The web has already solved some of those issues.. HTTP, Etag, RSS, CDNs, what can we leverage ?

Protocols for data on the edge Our requirements : Rely on HTTP Useable from existing technological stacks A browser, a silverlight/flash application, etc… Self-descriptive So that we minimize the dependencies with client implementations Cacheable So that scaling can rely on the network infrastructure Secure And if possible rely on existing authentication schemes Queryable So that the filtering/paging executes server-side

ADO Data Services Semantics Underlying data model - Entity Data Model - Entities  Resources - Associations  Links Operation semantics - Mapping of HTTP methods - GET  retrieve resource - POST  create resource - PUT  update resource - DELETE  delete resource

Demo Create a Data Service Consume from another app Look at the EdM that gets generated

URL Conventions Addressing entities and sets Entity-set/Students Single entity/Students(1) Member access/Students(1)/Name Link traversal/Students(1)/ClassRegistrations Deep access/Students(1)/ClassRegistrations(2)/Grade Raw value access/Students(1)/Photo/$value Sorting/Students?$orderby=Name desc Filtering/Classes?$filter=substringof(Name, ‘Math’) Paging/Students?$top=10&$skip=30 Inline expansion/Students?$expand=ClassRegistrations  Presentation options

ADO.Net Data Services Bridging Cloud and Enterprise HTTP (AtomPub) Clients (Tools, Libraries, etc) Clients (Tools, Libraries, etc) SQL Data Services ADO.NET Data Services Framework SQL Server (On premises data service) (Cloud data service)

Ado.Net DS on the cloud ? Azure Table Storage is queryable via ADO DS DevTableGen.exe is a utility that creates an Azure Table compliant with a.Net assembly describing an ADO.Net Data Service DataSvcUtil.exe is a utility that ships with Ado.Ney Data Service and creates a class compliant with a Data Service

The need for sync The enterprise landscape was complex Data Centers Document repositories Structured Data on users’ machines.. We have a new layer of data to deal with Mobile devices Cloud storage How do we ensure that those data are kept in sync ? This is a complex problem.. Where 80% of the effort is the same across scenarios A synchronization framework should be an efficient answer.

What’s in the Synchronization FW ? Local Store Remote Store Sync Your Store

Demo : using Sync Framework

Sync Provider Sync Application Sync Provider Sync Orchestrator Data Store changes

Application Model Sync-enabled service 1-tier client application Sync in the background Local schema follows service Online clients can consume service

Towards A Business Data Hub ? Consolidation of business data from multiple sources including Enterprise databases Mobile Workers Business Partners Remote Offices Includes sharing between these sources (through bi- directional synchronization)

Desktop Database Sharing Consolidate business data in the cloud and enabled sharing to other desktops and mobile users Synchronize when network is available Enables database scaling with out upgrading the database or hardware resources Each user does not have to be connected to the one database Out-of-the-box publication of Microsoft databases Database template sharing Solves the rendezvous problem SQL Services "Huron" Client Data Services Sync Service

Data Consolidation Online access to data hub and propagation of changes to data endpoints Low Cost of Administration & Deployment of Mid-Tier Low Cost, High Availability Data Security Reporting, Analytical, Mgmt, etc… SQL Services GSM, CDMA, etc Reporting Online Access "Huron" Client Data Services Sync Service Online Applications

Edge To Cloud Services Offload business resources to the cloud Take advantage of cloud services Enables scenarios like Business Intelligence, Reporting and Data Backup Provides availability and scalability Organization DMZ "Huron" Gateway BI, ERP & Relational SQL Services

Links Astoria Team Blog FeedSync Entry point for azure on MSDN SQL Data Platform, from device to cloud Sync Framework: Enterprise Data in the Cloud and on Devices Offline-Enabled Data Services and Desktop apps 9FB5-B77D9CEA37F6&displaylang=enhttp:// 9FB5-B77D9CEA37F6&displaylang=en Sync FW 2 CTP 1 easeId=1713http://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=sync&Rel easeId=1713 Sync FW Samples :More Sync Sampoles

Links / 2 Sync FW team Data Hub on the cloud MS Access team blog Cloud blog FeedSync Samples FeedSytnc for devs new-sync.htmlhttp://ochoco.blogspot.com/2008/08/microsoft-sync-framework-2- new-sync.html Sync Sq;ples

Links cloud is_not.phphttp:// is_not.php Cloud, Google, and standards spxhttps://ipsts.federatedidentity.net/MgmtConsole/Policy.a spx Labs identity

Anchorage