SlideShare uma empresa Scribd logo
1 de 43
Welcome 
Cloud Architectural Patterns 
(using Microsoft Azure tools) 
Pushkar Chivate
Agenda 
• Quick Look: Microsoft Azure as a platform 
• Overview of patterns for cloud 
applications 
• Specifically Data-Management, Resiliency and Messaging 
patterns 
• Demo 
• Azure Tables, 
• DocumentDB, 
• Azure Service bus (Queues and Pub-Sub architecture)
What is the Cloud? 
IT 
Capacity 
Time 
Actual 
Load 
Load 
Forecast 
Under capacity 
Allocated 
IT-capacity 
Over 
capacity
How the Cloud Helps? 
IT 
Capacity 
Time 
Actual 
Load 
Load 
Forecast 
Capacity on 
Demand
Cloud Models 
IaaS 
Infrastructure as a 
service 
(e.g. Azure VMs) 
PaaS 
Platform as a service 
(e.g. Azure Storage, 
Service Bus etc.) 
SaaS 
Software as a Service 
(e.g. Office 365)
Microsoft Azure is a cloud platform 
● On-Demand 
● Self-service 
● Pay per use 
● Highly automated 
● Designed for Failure 
● Designed for Scale
Microsoft Azure 
Designed for Failure 
Network load balancer 
Fault Domain 
1 
VM1 VM2 VM3 VM4 VM5 VM6 
VM7 VM8 
Fault Domain 
2 
Fault Domain 
3 
UD1 
UD2
Microsoft Azure 
Designed for Scale 
Scale out 
Network load balancer 
VM1 VM2 VM3 VM4
Azure VMs, Websites 
& 
Rethinking AppsA look at various features 
Azure offers…
Architectural Pattern 
An architectural pattern is a general, 
reusable solution to a commonly 
occurring problem within a given 
context.
Cloud Patterns 
Data-Management Patterns 
● Index Table & Sharding Pattern 
Create indexes over the fields in data stores that are frequently referenced by query 
criteria. This pattern can improve query performance by allowing applications to 
more quickly retrieve data from a data store. Divide a data store into a set of 
horizontal partitions shards 
● Materialized View Pattern 
Generate prepopulated views over the data in one or more data stores when the data 
is formatted in a way that does not favor the required query operations. This 
pattern can help to support efficient querying and data extraction, and improve 
performance 
● Command and Query Responsibility 
Segregation (CQRS) Pattern 
Segregate operations that read data from operations that update data by using 
separate interfaces.
Cloud Patterns 
Messaging Patterns 
● Pipes and Filter Pattern 
Decompose a task that performs complex processing into a series of discrete 
elements that can be reused. 
● Priority Queue Pattern 
Prioritize requests sent to services so that requests with a higher priority are 
received and processed more quickly than those of a lower priority 
. 
● Queue-based Load Leveling Pattern 
Use a queue that acts as a buffer between a task and a service that it invokes in 
order to smooth intermittent heavy loads that may otherwise cause the service to 
fail or the task to timeout.
Data Storage 
Various data storage techniques 
● SQL Azure 
● Azure Table 
● Blob storage 
● Document DB
Materialized View Pattern 
This pattern can be used to support efficient 
querying and data extraction, and improve 
application performance 
What is a materialized view? 
Materialized view is a database object that 
contains results of a query
Materialized View 
OrderID Account 
1 A 
2 B 
ItemID Name Stock 
100 Shirts 100 
101 Pants 125 
OrderID ItemID Qty 
Ordered 
1 100 2 
1 101 3 
2 100 2 
Materialized View 
Database 
tables 
ItemID Name Total Qty 
Ordered 
100 Shirts 4 
101 Pants 3 
Denormalized data 
Data refreshes 
periodically
Materialized Views Vs Regular Views 
Materialized View 
● Stored as a physical 
database object 
● Indexes on the base 
tables are not used , 
can create indexes on 
materialized view 
● Faster performance 
● Needs to be updated 
Regular View 
● Stored as a query 
against the base object 
● Indexes on the base 
tables are used 
● No performance 
improvement 
● Need not be updated
Materialized view 
When to use materialized 
views? 
When underlying data is 
complex and difficult to query 
directly 
Simplify queries - expose 
data in a way that doesn’t 
require knowledge of 
underlying data structure 
Provide access to specific 
subset of data (security 
reasons) 
Bridging the disjoint when 
using different data stores
Materialized view 
Snapshot 
s 
Database 
1 
Table 
1 
Materialized view 
1 
Database 
2 
Table 
1 
Materialized view 
2 
Materialized 
view 
Snapsho 
t
Databases supporting Materialized views 
Oracle 
Called Indexed Views 
IBM DB2 
SQL 
Server 
MySQL 
No Native support 
Can be implemented 
using triggers 
Called Materialized Query 
Table 
Called Materialized View
Materialized view 
When not to use materialized views? 
● The source data is simple and easy to query. 
● The source data changes very quickly, or can be accessed 
without using a view. The processing overhead of creating views 
may be avoidable in these cases. 
● Consistency is a high priority. The views may not always be fully 
consistent with the original data
Azure Tables 
What are Azure Tables? 
● Non relational entities (not RDBMS). 
● Tables are nothing but collection of entities 
● Entities are comprised of properties 
● Properties are name value pairs
Azure Tables 
Azure Storage 
Account 
Employees 
(Table) 
Entity 
Property 
Entity 
Property 
Property Property Property
Azure Table Entities 
Azure Storage 
Account 
Employees 
(Table) Entity 
Property 
<Name,Value 
> 
Property 
<Name,Value 
> 
Entities 
● Partition Key 
● Row Key 
● Timestamp 
● … other properties 
● Each entity can have different number 
and type of properties 
Partition Key + Row Key = Unique Identifier 
(No support for secondary index in Azure Table) 
Property 
<Name,Value 
>
Azure Tables Partitions 
(Entity) 
EmployeeName=… 
CertName=… 
BirthDate=… 
CertNumber=… 
EmployeeName=… 
CertName=… 
BirthDate=… 
CertNumber=… 
FavoriteTeam=… 
(Entity) 
CertName=… 
EmployeeName=… 
CertNumber=… 
BirthDate=… 
CertName=… 
EmployeeName=… 
CertNumber=… 
BirthDate=… 
Employees (Table) Certifications (Table) 
PK = EmployeeName 
RK = CertName 
PK = CertName 
RK = EmployeeName 
How do you Partition the data? 
• EmployeeName or CertName?
Azure Tables Partitions 
How do you Partition the data? 
• EmployeeName or CertName? 
(PK) EmployeeName(E1), (RK) CertName (C1) 
(PK) EmployeeName(E1), (RK) CertName 
(C2) 
(PK) EmployeeName(E2), (RK) CertName 
(C1) 
(PK) EmployeeName(E2), (RK) CertName 
(C3) 
(PK) EmployeeName(E3), (RK) CertName 
(C2) 
(PK) EmployeeName(E3), (RK) CertName 
(C3) 
(PK) CertName (C1), (RK) 
EmployeeName(E1) 
(PK) CertName (C1), (RK) 
EmployeeName(E2) 
(PK) CertName (C2), (RK) 
EmployeeName(E1) 
(PK) CertName (C2), (RK) 
EmployeeName(E3) 
(PK) CertName (C3), (RK) 
EmployeeName(E2) 
(PK) CertName (C3), (RK) 
EmployeeName(E3) 
O 
R 
Employees (Table) Certifications (Table)
Azure Tables 
No Fixed Schema for 
entities 
Employee table 
EmployeeName BirthDate FavoriteTeam 
David Anderson 1/1/1970 
Nancy Wilson 4/15/1965 Atlanta Falcons 
John Doe April 1, 1989
Azure Table 
Demo
Azure Tables 
Summary 
● No nice relational schema model that we get in RDBMS 
● Easy to work with 
● Built to scale 
● Great pricing
DocumentDB 
• Azure Document DB - relatively new service 
• It’s fully managed Document database as a service 
• It stores the data in JSON 
• The Azure Tables are extremely scalable and cheap, but if you start querying 
on any other attributes then you start running into problems. 
• It’s massively scalable but fully query-able by all parts of JSON tree. 
• Capacity units are 10GB in size and predictable reads and writes / second.
DocumentDB
DocumentDB 
Demo
Azure Service Bus 
● Secure messaging 
capabilities 
● Enable loosely coupled 
solutions 
● Achieve Publish-Subscribe 
scenarios
Tightly Coupled 
Store Front 
End 
Order 
processing 
Shipping 
Store Back 
End
Loosely Coupled 
Store Front 
End 
Order 
processing 
Shipping 
Store Back 
End 
Order Queue
Loosely Coupled 
Store Front 
End 
Shipping 
Order 
Order Queue processing 
Store Back 
End
Service Bus – Queue 
Demo
Publish - Subscribe 
Store Front 
End 
Order 
processing 
Store Back 
End 
Order Printers 
Subscription 
1 
Subscription 
2 
Order Queue 
Shipping 
Order 
Papers
Service Bus – AMQP 
• Service Bus supports the Advanced Message Queueing Protocol (AMQP) 1.0. 
• AMQP enables you to build cross-platform, hybrid applications using an open 
standard protocol 
• Reliable: The AMQP 1.0 protocol allows messages to be exchanged with a 
range of reliability guarantees, from fire-and-forget to reliable, exactly-once 
acknowledged delivery. 
• Using AMQP from .Net: 
Endpoint=sb://[namespace].servicebus.windows.net;SharedSecretIssuer=[issuer 
name];SharedSecretValue=[issuer key];TransportType=Amqp 
• Using AMQP from Java: 
# servicebus.properties - sample JNDI configuration 
# Register a ConnectionFactory in JNDI using the form: 
# connectionfactory.[jndi_name] = [ConnectionURL] 
connectionfactory.SBCF = amqps://[username]:[password]@[namespace].servicebus.windows.net
Service Bus – AMQP
Cloud Patterns 
Resiliency Patterns 
● Circuit Breaker Pattern 
Handle faults that may take a variable amount of time to rectify when connecting to a 
remote service or resource. This pattern can improve the stability and resiliency of an 
application. 
● Retry Pattern 
Enable an application to handle temporary failures when connecting to a service or 
network resource by transparently retrying the operation in the expectation that the 
failure is transient. This pattern can improve the stability of the application. 
● Compensating Transaction Pattern 
Undo the work performed by a series of steps, which together define an eventually 
consistent operation, if one or more of the operations fails. Operations that follow 
the eventual consistency model are commonly found in cloud-hosted 
applications that implement complex business processes and workflows.
Summary 
We Looked at… 
- Azure as Infrastructure (VMs) 
- Azure as Platform 
-Websites 
- Storage - Azure Tables, DocumentDB 
- Messaging – Service Bus, Queues, Topics, AMQP 
- Azure CDN
Summary 
Network load balancer 
VM1 VM2 VM3 VM4 
SQL Database 
Service Bus Queue 
Subscription 1 Subscription 2 
Worker Role 1 Worker Role 2 
Azure 
Tables 
DocumentDB 
Cach 
e
References 
- MSDN (cloud architectural patterns) 
- azure.microsoft.com (Learning videos and documentation) 
- some images from www

Mais conteúdo relacionado

Mais procurados

Introduction to Azure DocumentDB
Introduction to Azure DocumentDBIntroduction to Azure DocumentDB
Introduction to Azure DocumentDBIke Ellis
 
Intro to Azure Data Factory v1
Intro to Azure Data Factory v1Intro to Azure Data Factory v1
Intro to Azure Data Factory v1Eric Bragas
 
Cortana Analytics Workshop: Azure Data Lake
Cortana Analytics Workshop: Azure Data LakeCortana Analytics Workshop: Azure Data Lake
Cortana Analytics Workshop: Azure Data LakeMSAdvAnalytics
 
Microsoft Azure BI Solutions in the Cloud
Microsoft Azure BI Solutions in the CloudMicrosoft Azure BI Solutions in the Cloud
Microsoft Azure BI Solutions in the CloudMark Kromer
 
Not only SQL - Database Choices
Not only SQL - Database ChoicesNot only SQL - Database Choices
Not only SQL - Database ChoicesLynn Langit
 
Database Choices
Database ChoicesDatabase Choices
Database ChoicesLynn Langit
 
AWS for Big Data Experts
AWS for Big Data ExpertsAWS for Big Data Experts
AWS for Big Data ExpertsLynn Langit
 
U-SQL Learning Resources (SQLBits 2016)
U-SQL Learning Resources (SQLBits 2016)U-SQL Learning Resources (SQLBits 2016)
U-SQL Learning Resources (SQLBits 2016)Michael Rys
 
Azure Big Data Story
Azure Big Data StoryAzure Big Data Story
Azure Big Data StoryLynn Langit
 
ETL in the Cloud With Microsoft Azure
ETL in the Cloud With Microsoft AzureETL in the Cloud With Microsoft Azure
ETL in the Cloud With Microsoft AzureMark Kromer
 
Bleeding Edge Databases
Bleeding Edge DatabasesBleeding Edge Databases
Bleeding Edge DatabasesLynn Langit
 
Pipelines and Packages: Introduction to Azure Data Factory (Techorama NL 2019)
Pipelines and Packages: Introduction to Azure Data Factory (Techorama NL 2019)Pipelines and Packages: Introduction to Azure Data Factory (Techorama NL 2019)
Pipelines and Packages: Introduction to Azure Data Factory (Techorama NL 2019)Cathrine Wilhelmsen
 
MongoDB - An Agile NoSQL Database
MongoDB - An Agile NoSQL DatabaseMongoDB - An Agile NoSQL Database
MongoDB - An Agile NoSQL DatabaseGaurav Awasthi
 
SQL vs NoSQL: Big Data Adoption & Success in the Enterprise
SQL vs NoSQL: Big Data Adoption & Success in the EnterpriseSQL vs NoSQL: Big Data Adoption & Success in the Enterprise
SQL vs NoSQL: Big Data Adoption & Success in the EnterpriseAnita Luthra
 
Test driving Azure Search and DocumentDB
Test driving Azure Search and DocumentDBTest driving Azure Search and DocumentDB
Test driving Azure Search and DocumentDBAndrew Siemer
 
Deliver Your Modern Data Warehouse (Microsoft Tech Summit Oslo 2018)
Deliver Your Modern Data Warehouse (Microsoft Tech Summit Oslo 2018)Deliver Your Modern Data Warehouse (Microsoft Tech Summit Oslo 2018)
Deliver Your Modern Data Warehouse (Microsoft Tech Summit Oslo 2018)Cathrine Wilhelmsen
 
BTUG - Dec 2014 - Hybrid Connectivity Options
BTUG - Dec 2014 - Hybrid Connectivity OptionsBTUG - Dec 2014 - Hybrid Connectivity Options
BTUG - Dec 2014 - Hybrid Connectivity OptionsMichael Stephenson
 
Build 2017 - P4010 - A lap around Azure HDInsight and Cosmos DB Open Source A...
Build 2017 - P4010 - A lap around Azure HDInsight and Cosmos DB Open Source A...Build 2017 - P4010 - A lap around Azure HDInsight and Cosmos DB Open Source A...
Build 2017 - P4010 - A lap around Azure HDInsight and Cosmos DB Open Source A...Windows Developer
 

Mais procurados (20)

Introduction to Azure DocumentDB
Introduction to Azure DocumentDBIntroduction to Azure DocumentDB
Introduction to Azure DocumentDB
 
Intro to Azure Data Factory v1
Intro to Azure Data Factory v1Intro to Azure Data Factory v1
Intro to Azure Data Factory v1
 
Cortana Analytics Workshop: Azure Data Lake
Cortana Analytics Workshop: Azure Data LakeCortana Analytics Workshop: Azure Data Lake
Cortana Analytics Workshop: Azure Data Lake
 
Microsoft Azure BI Solutions in the Cloud
Microsoft Azure BI Solutions in the CloudMicrosoft Azure BI Solutions in the Cloud
Microsoft Azure BI Solutions in the Cloud
 
Not only SQL - Database Choices
Not only SQL - Database ChoicesNot only SQL - Database Choices
Not only SQL - Database Choices
 
Introduction to azure document db
Introduction to azure document dbIntroduction to azure document db
Introduction to azure document db
 
Database Choices
Database ChoicesDatabase Choices
Database Choices
 
AWS for Big Data Experts
AWS for Big Data ExpertsAWS for Big Data Experts
AWS for Big Data Experts
 
U-SQL Learning Resources (SQLBits 2016)
U-SQL Learning Resources (SQLBits 2016)U-SQL Learning Resources (SQLBits 2016)
U-SQL Learning Resources (SQLBits 2016)
 
Azure Big Data Story
Azure Big Data StoryAzure Big Data Story
Azure Big Data Story
 
ETL in the Cloud With Microsoft Azure
ETL in the Cloud With Microsoft AzureETL in the Cloud With Microsoft Azure
ETL in the Cloud With Microsoft Azure
 
Bleeding Edge Databases
Bleeding Edge DatabasesBleeding Edge Databases
Bleeding Edge Databases
 
Pipelines and Packages: Introduction to Azure Data Factory (Techorama NL 2019)
Pipelines and Packages: Introduction to Azure Data Factory (Techorama NL 2019)Pipelines and Packages: Introduction to Azure Data Factory (Techorama NL 2019)
Pipelines and Packages: Introduction to Azure Data Factory (Techorama NL 2019)
 
MongoDB - An Agile NoSQL Database
MongoDB - An Agile NoSQL DatabaseMongoDB - An Agile NoSQL Database
MongoDB - An Agile NoSQL Database
 
SQL vs NoSQL
SQL vs NoSQLSQL vs NoSQL
SQL vs NoSQL
 
SQL vs NoSQL: Big Data Adoption & Success in the Enterprise
SQL vs NoSQL: Big Data Adoption & Success in the EnterpriseSQL vs NoSQL: Big Data Adoption & Success in the Enterprise
SQL vs NoSQL: Big Data Adoption & Success in the Enterprise
 
Test driving Azure Search and DocumentDB
Test driving Azure Search and DocumentDBTest driving Azure Search and DocumentDB
Test driving Azure Search and DocumentDB
 
Deliver Your Modern Data Warehouse (Microsoft Tech Summit Oslo 2018)
Deliver Your Modern Data Warehouse (Microsoft Tech Summit Oslo 2018)Deliver Your Modern Data Warehouse (Microsoft Tech Summit Oslo 2018)
Deliver Your Modern Data Warehouse (Microsoft Tech Summit Oslo 2018)
 
BTUG - Dec 2014 - Hybrid Connectivity Options
BTUG - Dec 2014 - Hybrid Connectivity OptionsBTUG - Dec 2014 - Hybrid Connectivity Options
BTUG - Dec 2014 - Hybrid Connectivity Options
 
Build 2017 - P4010 - A lap around Azure HDInsight and Cosmos DB Open Source A...
Build 2017 - P4010 - A lap around Azure HDInsight and Cosmos DB Open Source A...Build 2017 - P4010 - A lap around Azure HDInsight and Cosmos DB Open Source A...
Build 2017 - P4010 - A lap around Azure HDInsight and Cosmos DB Open Source A...
 

Destaque

PostgreSQL Materialized Views with Active Record
PostgreSQL Materialized Views with Active RecordPostgreSQL Materialized Views with Active Record
PostgreSQL Materialized Views with Active RecordDavid Roberts
 
Sql query tuning or query optimization
Sql query tuning or query optimizationSql query tuning or query optimization
Sql query tuning or query optimizationVivek Singh
 
Lect 08 materialized view
Lect 08 materialized viewLect 08 materialized view
Lect 08 materialized viewBilal khan
 
Distributed messaging with AMQP
Distributed messaging with AMQPDistributed messaging with AMQP
Distributed messaging with AMQPWee Keat Chin
 
DDS Interoperability Demo 2013 (Washington DC)
DDS Interoperability Demo 2013 (Washington DC)DDS Interoperability Demo 2013 (Washington DC)
DDS Interoperability Demo 2013 (Washington DC)Gerardo Pardo-Castellote
 
Inter-Process/Task Communication With Message Queues
Inter-Process/Task Communication With Message QueuesInter-Process/Task Communication With Message Queues
Inter-Process/Task Communication With Message Queueswamcvey
 
OWASP Ireland June Chapter Meeting - Paul Mooney on ARMOR & CSRF
OWASP Ireland June Chapter Meeting - Paul Mooney on ARMOR & CSRFOWASP Ireland June Chapter Meeting - Paul Mooney on ARMOR & CSRF
OWASP Ireland June Chapter Meeting - Paul Mooney on ARMOR & CSRFPaul Mooney
 
The Future of Messaging: RabbitMQ and AMQP
The Future of Messaging: RabbitMQ and AMQP The Future of Messaging: RabbitMQ and AMQP
The Future of Messaging: RabbitMQ and AMQP Eberhard Wolff
 
Microservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitecturePaul Mooney
 
Steps to Submit an Application at Passport Seva Kendra
Steps to Submit an Application at Passport Seva KendraSteps to Submit an Application at Passport Seva Kendra
Steps to Submit an Application at Passport Seva Kendrapassportindia
 
Architecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard Wolff
Architecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard WolffArchitecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard Wolff
Architecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard WolffJAX London
 
OracleMaterializedviews & Hierarchical Data
OracleMaterializedviews & Hierarchical DataOracleMaterializedviews & Hierarchical Data
OracleMaterializedviews & Hierarchical DataAmit Sahoo
 
Part 20 comments on mv
Part 20 comments on mvPart 20 comments on mv
Part 20 comments on mvGirija Muscut
 

Destaque (14)

PostgreSQL Materialized Views with Active Record
PostgreSQL Materialized Views with Active RecordPostgreSQL Materialized Views with Active Record
PostgreSQL Materialized Views with Active Record
 
Sql query tuning or query optimization
Sql query tuning or query optimizationSql query tuning or query optimization
Sql query tuning or query optimization
 
Lect 08 materialized view
Lect 08 materialized viewLect 08 materialized view
Lect 08 materialized view
 
Distributed messaging with AMQP
Distributed messaging with AMQPDistributed messaging with AMQP
Distributed messaging with AMQP
 
DDS Interoperability Demo 2013 (Washington DC)
DDS Interoperability Demo 2013 (Washington DC)DDS Interoperability Demo 2013 (Washington DC)
DDS Interoperability Demo 2013 (Washington DC)
 
Inter-Process/Task Communication With Message Queues
Inter-Process/Task Communication With Message QueuesInter-Process/Task Communication With Message Queues
Inter-Process/Task Communication With Message Queues
 
OWASP Ireland June Chapter Meeting - Paul Mooney on ARMOR & CSRF
OWASP Ireland June Chapter Meeting - Paul Mooney on ARMOR & CSRFOWASP Ireland June Chapter Meeting - Paul Mooney on ARMOR & CSRF
OWASP Ireland June Chapter Meeting - Paul Mooney on ARMOR & CSRF
 
The Future of Messaging: RabbitMQ and AMQP
The Future of Messaging: RabbitMQ and AMQP The Future of Messaging: RabbitMQ and AMQP
The Future of Messaging: RabbitMQ and AMQP
 
Microservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic Architecture
 
Knapsack Problem
Knapsack ProblemKnapsack Problem
Knapsack Problem
 
Steps to Submit an Application at Passport Seva Kendra
Steps to Submit an Application at Passport Seva KendraSteps to Submit an Application at Passport Seva Kendra
Steps to Submit an Application at Passport Seva Kendra
 
Architecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard Wolff
Architecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard WolffArchitecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard Wolff
Architecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard Wolff
 
OracleMaterializedviews & Hierarchical Data
OracleMaterializedviews & Hierarchical DataOracleMaterializedviews & Hierarchical Data
OracleMaterializedviews & Hierarchical Data
 
Part 20 comments on mv
Part 20 comments on mvPart 20 comments on mv
Part 20 comments on mv
 

Semelhante a Cloud architectural patterns and Microsoft Azure tools

Scalable relational database with SQL Azure
Scalable relational database with SQL AzureScalable relational database with SQL Azure
Scalable relational database with SQL AzureShy Engelberg
 
Migrating on premises workload to azure sql database
Migrating on premises workload to azure sql databaseMigrating on premises workload to azure sql database
Migrating on premises workload to azure sql databasePARIKSHIT SAVJANI
 
2014.11.14 Data Opportunities with Azure
2014.11.14 Data Opportunities with Azure2014.11.14 Data Opportunities with Azure
2014.11.14 Data Opportunities with AzureMarco Parenzan
 
SQL or NoSQL, is this the question? - George Grammatikos
SQL or NoSQL, is this the question? - George GrammatikosSQL or NoSQL, is this the question? - George Grammatikos
SQL or NoSQL, is this the question? - George GrammatikosGeorge Grammatikos
 
Azure SQL Database
Azure SQL Database Azure SQL Database
Azure SQL Database nj-azure
 
Amazon Athena Hands-On Workshop
Amazon Athena Hands-On WorkshopAmazon Athena Hands-On Workshop
Amazon Athena Hands-On WorkshopDoiT International
 
Introducing Azure SQL Data Warehouse
Introducing Azure SQL Data WarehouseIntroducing Azure SQL Data Warehouse
Introducing Azure SQL Data WarehouseJames Serra
 
Tech-Spark: Azure SQL Databases
Tech-Spark: Azure SQL DatabasesTech-Spark: Azure SQL Databases
Tech-Spark: Azure SQL DatabasesRalph Attard
 
Azure Days 2019: Business Intelligence auf Azure (Marco Amhof & Yves Mauron)
Azure Days 2019: Business Intelligence auf Azure (Marco Amhof & Yves Mauron)Azure Days 2019: Business Intelligence auf Azure (Marco Amhof & Yves Mauron)
Azure Days 2019: Business Intelligence auf Azure (Marco Amhof & Yves Mauron)Trivadis
 
U-SQL - Azure Data Lake Analytics for Developers
U-SQL - Azure Data Lake Analytics for DevelopersU-SQL - Azure Data Lake Analytics for Developers
U-SQL - Azure Data Lake Analytics for DevelopersMichael Rys
 
Azure - Data Platform
Azure - Data PlatformAzure - Data Platform
Azure - Data Platformgiventocode
 
Azure Synapse Analytics Overview (r2)
Azure Synapse Analytics Overview (r2)Azure Synapse Analytics Overview (r2)
Azure Synapse Analytics Overview (r2)James Serra
 
Azure from scratch part 3 By Girish Kalamati
Azure from scratch part 3 By Girish KalamatiAzure from scratch part 3 By Girish Kalamati
Azure from scratch part 3 By Girish KalamatiGirish Kalamati
 
Store Data in Azure SQL Database
Store Data in Azure SQL DatabaseStore Data in Azure SQL Database
Store Data in Azure SQL DatabaseSuhail Jamaldeen
 
Azure data analytics platform - A reference architecture
Azure data analytics platform - A reference architecture Azure data analytics platform - A reference architecture
Azure data analytics platform - A reference architecture Rajesh Kumar
 
Accelerate SQL Server Migration to the AWS Cloud
Accelerate SQL Server Migration to the AWS Cloud Accelerate SQL Server Migration to the AWS Cloud
Accelerate SQL Server Migration to the AWS Cloud Datavail
 
Azure Databricks – Customer Experiences and Lessons Denzil Ribeiro Madhu Ganta
Azure Databricks – Customer Experiences and Lessons Denzil Ribeiro Madhu GantaAzure Databricks – Customer Experiences and Lessons Denzil Ribeiro Madhu Ganta
Azure Databricks – Customer Experiences and Lessons Denzil Ribeiro Madhu GantaDatabricks
 

Semelhante a Cloud architectural patterns and Microsoft Azure tools (20)

Azure data platform overview
Azure data platform overviewAzure data platform overview
Azure data platform overview
 
Scalable relational database with SQL Azure
Scalable relational database with SQL AzureScalable relational database with SQL Azure
Scalable relational database with SQL Azure
 
Migrating on premises workload to azure sql database
Migrating on premises workload to azure sql databaseMigrating on premises workload to azure sql database
Migrating on premises workload to azure sql database
 
AZURE Data Related Services
AZURE Data Related ServicesAZURE Data Related Services
AZURE Data Related Services
 
2014.11.14 Data Opportunities with Azure
2014.11.14 Data Opportunities with Azure2014.11.14 Data Opportunities with Azure
2014.11.14 Data Opportunities with Azure
 
SQL or NoSQL, is this the question? - George Grammatikos
SQL or NoSQL, is this the question? - George GrammatikosSQL or NoSQL, is this the question? - George Grammatikos
SQL or NoSQL, is this the question? - George Grammatikos
 
Azure SQL Database
Azure SQL Database Azure SQL Database
Azure SQL Database
 
Amazon Athena Hands-On Workshop
Amazon Athena Hands-On WorkshopAmazon Athena Hands-On Workshop
Amazon Athena Hands-On Workshop
 
Introducing Azure SQL Data Warehouse
Introducing Azure SQL Data WarehouseIntroducing Azure SQL Data Warehouse
Introducing Azure SQL Data Warehouse
 
Tech-Spark: Azure SQL Databases
Tech-Spark: Azure SQL DatabasesTech-Spark: Azure SQL Databases
Tech-Spark: Azure SQL Databases
 
Azure Days 2019: Business Intelligence auf Azure (Marco Amhof & Yves Mauron)
Azure Days 2019: Business Intelligence auf Azure (Marco Amhof & Yves Mauron)Azure Days 2019: Business Intelligence auf Azure (Marco Amhof & Yves Mauron)
Azure Days 2019: Business Intelligence auf Azure (Marco Amhof & Yves Mauron)
 
U-SQL - Azure Data Lake Analytics for Developers
U-SQL - Azure Data Lake Analytics for DevelopersU-SQL - Azure Data Lake Analytics for Developers
U-SQL - Azure Data Lake Analytics for Developers
 
Azure - Data Platform
Azure - Data PlatformAzure - Data Platform
Azure - Data Platform
 
Azure Synapse Analytics Overview (r2)
Azure Synapse Analytics Overview (r2)Azure Synapse Analytics Overview (r2)
Azure Synapse Analytics Overview (r2)
 
Azure from scratch part 3 By Girish Kalamati
Azure from scratch part 3 By Girish KalamatiAzure from scratch part 3 By Girish Kalamati
Azure from scratch part 3 By Girish Kalamati
 
Azure basics
Azure basicsAzure basics
Azure basics
 
Store Data in Azure SQL Database
Store Data in Azure SQL DatabaseStore Data in Azure SQL Database
Store Data in Azure SQL Database
 
Azure data analytics platform - A reference architecture
Azure data analytics platform - A reference architecture Azure data analytics platform - A reference architecture
Azure data analytics platform - A reference architecture
 
Accelerate SQL Server Migration to the AWS Cloud
Accelerate SQL Server Migration to the AWS Cloud Accelerate SQL Server Migration to the AWS Cloud
Accelerate SQL Server Migration to the AWS Cloud
 
Azure Databricks – Customer Experiences and Lessons Denzil Ribeiro Madhu Ganta
Azure Databricks – Customer Experiences and Lessons Denzil Ribeiro Madhu GantaAzure Databricks – Customer Experiences and Lessons Denzil Ribeiro Madhu Ganta
Azure Databricks – Customer Experiences and Lessons Denzil Ribeiro Madhu Ganta
 

Último

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbuapidays
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 

Último (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 

Cloud architectural patterns and Microsoft Azure tools

  • 1. Welcome Cloud Architectural Patterns (using Microsoft Azure tools) Pushkar Chivate
  • 2. Agenda • Quick Look: Microsoft Azure as a platform • Overview of patterns for cloud applications • Specifically Data-Management, Resiliency and Messaging patterns • Demo • Azure Tables, • DocumentDB, • Azure Service bus (Queues and Pub-Sub architecture)
  • 3. What is the Cloud? IT Capacity Time Actual Load Load Forecast Under capacity Allocated IT-capacity Over capacity
  • 4. How the Cloud Helps? IT Capacity Time Actual Load Load Forecast Capacity on Demand
  • 5. Cloud Models IaaS Infrastructure as a service (e.g. Azure VMs) PaaS Platform as a service (e.g. Azure Storage, Service Bus etc.) SaaS Software as a Service (e.g. Office 365)
  • 6. Microsoft Azure is a cloud platform ● On-Demand ● Self-service ● Pay per use ● Highly automated ● Designed for Failure ● Designed for Scale
  • 7. Microsoft Azure Designed for Failure Network load balancer Fault Domain 1 VM1 VM2 VM3 VM4 VM5 VM6 VM7 VM8 Fault Domain 2 Fault Domain 3 UD1 UD2
  • 8. Microsoft Azure Designed for Scale Scale out Network load balancer VM1 VM2 VM3 VM4
  • 9. Azure VMs, Websites & Rethinking AppsA look at various features Azure offers…
  • 10. Architectural Pattern An architectural pattern is a general, reusable solution to a commonly occurring problem within a given context.
  • 11. Cloud Patterns Data-Management Patterns ● Index Table & Sharding Pattern Create indexes over the fields in data stores that are frequently referenced by query criteria. This pattern can improve query performance by allowing applications to more quickly retrieve data from a data store. Divide a data store into a set of horizontal partitions shards ● Materialized View Pattern Generate prepopulated views over the data in one or more data stores when the data is formatted in a way that does not favor the required query operations. This pattern can help to support efficient querying and data extraction, and improve performance ● Command and Query Responsibility Segregation (CQRS) Pattern Segregate operations that read data from operations that update data by using separate interfaces.
  • 12. Cloud Patterns Messaging Patterns ● Pipes and Filter Pattern Decompose a task that performs complex processing into a series of discrete elements that can be reused. ● Priority Queue Pattern Prioritize requests sent to services so that requests with a higher priority are received and processed more quickly than those of a lower priority . ● Queue-based Load Leveling Pattern Use a queue that acts as a buffer between a task and a service that it invokes in order to smooth intermittent heavy loads that may otherwise cause the service to fail or the task to timeout.
  • 13. Data Storage Various data storage techniques ● SQL Azure ● Azure Table ● Blob storage ● Document DB
  • 14. Materialized View Pattern This pattern can be used to support efficient querying and data extraction, and improve application performance What is a materialized view? Materialized view is a database object that contains results of a query
  • 15. Materialized View OrderID Account 1 A 2 B ItemID Name Stock 100 Shirts 100 101 Pants 125 OrderID ItemID Qty Ordered 1 100 2 1 101 3 2 100 2 Materialized View Database tables ItemID Name Total Qty Ordered 100 Shirts 4 101 Pants 3 Denormalized data Data refreshes periodically
  • 16. Materialized Views Vs Regular Views Materialized View ● Stored as a physical database object ● Indexes on the base tables are not used , can create indexes on materialized view ● Faster performance ● Needs to be updated Regular View ● Stored as a query against the base object ● Indexes on the base tables are used ● No performance improvement ● Need not be updated
  • 17. Materialized view When to use materialized views? When underlying data is complex and difficult to query directly Simplify queries - expose data in a way that doesn’t require knowledge of underlying data structure Provide access to specific subset of data (security reasons) Bridging the disjoint when using different data stores
  • 18. Materialized view Snapshot s Database 1 Table 1 Materialized view 1 Database 2 Table 1 Materialized view 2 Materialized view Snapsho t
  • 19. Databases supporting Materialized views Oracle Called Indexed Views IBM DB2 SQL Server MySQL No Native support Can be implemented using triggers Called Materialized Query Table Called Materialized View
  • 20. Materialized view When not to use materialized views? ● The source data is simple and easy to query. ● The source data changes very quickly, or can be accessed without using a view. The processing overhead of creating views may be avoidable in these cases. ● Consistency is a high priority. The views may not always be fully consistent with the original data
  • 21. Azure Tables What are Azure Tables? ● Non relational entities (not RDBMS). ● Tables are nothing but collection of entities ● Entities are comprised of properties ● Properties are name value pairs
  • 22. Azure Tables Azure Storage Account Employees (Table) Entity Property Entity Property Property Property Property
  • 23. Azure Table Entities Azure Storage Account Employees (Table) Entity Property <Name,Value > Property <Name,Value > Entities ● Partition Key ● Row Key ● Timestamp ● … other properties ● Each entity can have different number and type of properties Partition Key + Row Key = Unique Identifier (No support for secondary index in Azure Table) Property <Name,Value >
  • 24. Azure Tables Partitions (Entity) EmployeeName=… CertName=… BirthDate=… CertNumber=… EmployeeName=… CertName=… BirthDate=… CertNumber=… FavoriteTeam=… (Entity) CertName=… EmployeeName=… CertNumber=… BirthDate=… CertName=… EmployeeName=… CertNumber=… BirthDate=… Employees (Table) Certifications (Table) PK = EmployeeName RK = CertName PK = CertName RK = EmployeeName How do you Partition the data? • EmployeeName or CertName?
  • 25. Azure Tables Partitions How do you Partition the data? • EmployeeName or CertName? (PK) EmployeeName(E1), (RK) CertName (C1) (PK) EmployeeName(E1), (RK) CertName (C2) (PK) EmployeeName(E2), (RK) CertName (C1) (PK) EmployeeName(E2), (RK) CertName (C3) (PK) EmployeeName(E3), (RK) CertName (C2) (PK) EmployeeName(E3), (RK) CertName (C3) (PK) CertName (C1), (RK) EmployeeName(E1) (PK) CertName (C1), (RK) EmployeeName(E2) (PK) CertName (C2), (RK) EmployeeName(E1) (PK) CertName (C2), (RK) EmployeeName(E3) (PK) CertName (C3), (RK) EmployeeName(E2) (PK) CertName (C3), (RK) EmployeeName(E3) O R Employees (Table) Certifications (Table)
  • 26. Azure Tables No Fixed Schema for entities Employee table EmployeeName BirthDate FavoriteTeam David Anderson 1/1/1970 Nancy Wilson 4/15/1965 Atlanta Falcons John Doe April 1, 1989
  • 28. Azure Tables Summary ● No nice relational schema model that we get in RDBMS ● Easy to work with ● Built to scale ● Great pricing
  • 29. DocumentDB • Azure Document DB - relatively new service • It’s fully managed Document database as a service • It stores the data in JSON • The Azure Tables are extremely scalable and cheap, but if you start querying on any other attributes then you start running into problems. • It’s massively scalable but fully query-able by all parts of JSON tree. • Capacity units are 10GB in size and predictable reads and writes / second.
  • 32. Azure Service Bus ● Secure messaging capabilities ● Enable loosely coupled solutions ● Achieve Publish-Subscribe scenarios
  • 33. Tightly Coupled Store Front End Order processing Shipping Store Back End
  • 34. Loosely Coupled Store Front End Order processing Shipping Store Back End Order Queue
  • 35. Loosely Coupled Store Front End Shipping Order Order Queue processing Store Back End
  • 36. Service Bus – Queue Demo
  • 37. Publish - Subscribe Store Front End Order processing Store Back End Order Printers Subscription 1 Subscription 2 Order Queue Shipping Order Papers
  • 38. Service Bus – AMQP • Service Bus supports the Advanced Message Queueing Protocol (AMQP) 1.0. • AMQP enables you to build cross-platform, hybrid applications using an open standard protocol • Reliable: The AMQP 1.0 protocol allows messages to be exchanged with a range of reliability guarantees, from fire-and-forget to reliable, exactly-once acknowledged delivery. • Using AMQP from .Net: Endpoint=sb://[namespace].servicebus.windows.net;SharedSecretIssuer=[issuer name];SharedSecretValue=[issuer key];TransportType=Amqp • Using AMQP from Java: # servicebus.properties - sample JNDI configuration # Register a ConnectionFactory in JNDI using the form: # connectionfactory.[jndi_name] = [ConnectionURL] connectionfactory.SBCF = amqps://[username]:[password]@[namespace].servicebus.windows.net
  • 40. Cloud Patterns Resiliency Patterns ● Circuit Breaker Pattern Handle faults that may take a variable amount of time to rectify when connecting to a remote service or resource. This pattern can improve the stability and resiliency of an application. ● Retry Pattern Enable an application to handle temporary failures when connecting to a service or network resource by transparently retrying the operation in the expectation that the failure is transient. This pattern can improve the stability of the application. ● Compensating Transaction Pattern Undo the work performed by a series of steps, which together define an eventually consistent operation, if one or more of the operations fails. Operations that follow the eventual consistency model are commonly found in cloud-hosted applications that implement complex business processes and workflows.
  • 41. Summary We Looked at… - Azure as Infrastructure (VMs) - Azure as Platform -Websites - Storage - Azure Tables, DocumentDB - Messaging – Service Bus, Queues, Topics, AMQP - Azure CDN
  • 42. Summary Network load balancer VM1 VM2 VM3 VM4 SQL Database Service Bus Queue Subscription 1 Subscription 2 Worker Role 1 Worker Role 2 Azure Tables DocumentDB Cach e
  • 43. References - MSDN (cloud architectural patterns) - azure.microsoft.com (Learning videos and documentation) - some images from www