Most of the applications require some kind of data store. Azure provides various options for storing Data. This session looks at hosted/host your own from perspective of relational, non relational databases.
your own • What you need to worry about – Availability – Performance (more compute/bw/better storage) – Scale (throughput/latency/storage) – Management/Monitoring – Cost
my headache option) – No admin – (majority – setup/maintenance) – Availability – Better and cheaper – Very little planning/spend the size of mc, resources – Focus on application not on admin/mgmt. issues
own(my headache) – Flexibility (use jobs, use replication, use broker) – Roll your own Availability, Performance, upgrade,patching – Plan your scale, spend – Plan for Admin – have inhouse expertise
Local transparent failover – no direct access to replicas • Replicas – Remote ? In future (bkup and restore) • Replicas – Read Only ? – In future (local vs across dc) – Azure Storage • Local transparent failover – no direct access to replicas • Remote replication (no guarantee SLA but usually within minutes) • Host your own – Availability sets – Need to setup Virtual Network – Need to create synch mechanism – Need to setup failover mechanism • AlwaysOn for SQL servers, Other databases need to get it right like SQL Server(GG/DG) • Use Azure storage – push backup(log+data) via Azure or self.
various options • SqlAzure premium vs Regular (remove noisy neighbor issue) • Pretty soon other services will distinguish themselves by performance(think H) – SQlAzure premium provides reserved IOPs • Host your own – Choose better compute – Choose better storage • Soon good news on more options – Eod you need to create monitoring, fixing & do planning
• Web/Business – storage vs SqlPremium isolated perf – HDInsight • Scaleout vs scaleup of nodes (disruptive) – Table Storage/Azure Blog/Queues - Service Bus(little diff) • Unlimited storage(overall 200TB) – no explicit limit (no scale up sku) • Host your own – Need to plan for provisioning of storage/compute based on offering (redis vs Cassandra vs Hbase). Monitoring/Handling failover etc extra effort.
Dashboard (mostly) – Everything abstraced – Cost/operations which matter than os/mem etc – Mostly auto managed/healed with with overall backend taking care of many things – No worries about patch mgmt, backup schedules etc… • Host your own – Roll out your own (time vs what to expose/use/act upon) – Cloud aware SW needed. System Center can do x things – Backend can take care of say compute failover or storage but rest stuff needs to be built upon.
(volume stored, unit/processed/sent) – For ISV Billing is still an exercise – should become better • Host your own – Roll your own – basically what you use is what you pay. – Plus licensing – Plus dedicated people(sometimes hierarchy, one to do day-day jobs, another to help business/dev)
Data is complex - struct of struct of maps • Data is changing the shape • Lot of data is collected – scale of storage – Time Series • Sensors • Audit events – Data is schema? • easy to add new fields, and even completely change the structure of a model. • Need query model over shape rather than just key/value or pseudo mapping to Relational world • Low Latency high volume
is my scenario – Caching – Velocity, MemcacheD, Redis, Riak – Counters/Speed/Write – Velocity, Redis, Cassandra – Transactions – Database, SQL Azure (federation) – Documents/jsonfied class/shape – MongoDB, RavenDB, Riak * – Write large amount of data with throughput – Cassandra,Azure Storage – Full Text Search – Solr/ElasticSearch, Sphinx – Store data for scale out compute – Hadoop – Store data on specialized Appliance – PDW * Wished we could query shape data rather than fitting in relational world of columns/rows
- Location Low latency Local Memory Low latency Shared Memory Dedicated Machine Shared high throughput Storage Shared entity Storage Shared raw, batch long term storage Ref Data Session data Tx Data Tx data Entity data Data Lake/Store everything, In Node Cache Azure Cache Relational DB SQLAzure Relational DB AzureTable HDInsight
Will I write lot of data and need to store & query it • Will need very low latency • Can I compromise on consistency • What are my business needs (how fast we are growing), Can I afford to take a break and get/roll in new store
• Query – SQL, LINQ, ORMed (challenge mapping to every language) or REST – Custom (query format, compression,serialization) • Tunable Consistency – Out of 5 nodes only when 3 respond yay – consider written – Out of 5 nodes when 2 respond yay – take that value