Download - Decoupled web applications (with AppFabric)

Transcript
Page 1: Decoupled web applications (with AppFabric)

Decoupled applications with AppFabric

Anže Vodovnik ([email protected])

Page 2: Decoupled web applications (with AppFabric)

Who am I?

• Software Architect @ Studio Pešec

• 10+ years of experience (C#, Java...)

• Highly scalable, distributed applications

• Microsoft Certified Technology Specialist

• http://www.linkedin.com/in/avodovnik

• @avodovnik

• http://lab.studiopesec.com

Page 3: Decoupled web applications (with AppFabric)

Agenda

• Coupled vs. Decoupled

• AppFabric

• When and where

• Discussion & QA

Page 4: Decoupled web applications (with AppFabric)

Coupled vs. Decoupled

Database DAL Business

Logic UI

Page 5: Decoupled web applications (with AppFabric)

Coupled vs. Decoupled

UI Business

Logic DAL Database

Page 6: Decoupled web applications (with AppFabric)

How to communicate through boundaries?

• We know that already: interfaces

• To exchange information we define contracts

• Implementation changes

Page 7: Decoupled web applications (with AppFabric)

Benefits of decoupling

• Pipelined development

• Different languages/technologies

• Different timelines

• Change agnostic!

Page 8: Decoupled web applications (with AppFabric)

Scalability

DB (SQL Server,

MySQL, NoSQL)

Browser

Web Server (ASP.NET, PHP,

Ruby, …)

Decoupling!

Browser

Web Server (ASP.NET, PHP,

Ruby, …)

Sessions

Page 9: Decoupled web applications (with AppFabric)

ARE SCALABLE (DISTRIBUTED) APPS REALLY *THIS* EASY?

BUT WAIT A MOMENT

Page 10: Decoupled web applications (with AppFabric)

Browser

DB (SQL Server,

MySQL, NoSQL)

Web Server (ASP.NET, PHP,

Ruby, …)

Sessions

Apps

Services (WCF, WF, …)

Sessions / State

LOB

Systems

AuthN/Z

AuthN/Z

Page 11: Decoupled web applications (with AppFabric)

Introducing AppFabric

Windows Azure AppFabric

Management Management Management Management Management

Prog. Models

& Tools

Prog. Models

& Tools

Prog. Models

& Tools

Prog. Models

& Tools Prog. Models

& Tools

Page 12: Decoupled web applications (with AppFabric)

TAX RETURN SUBMISSION APPLICATION

EXAMPLE

Page 13: Decoupled web applications (with AppFabric)

High-level architecture

Page 14: Decoupled web applications (with AppFabric)

Scalability, revisited

• Time-based load, e.g. Tax-return submission

Page 15: Decoupled web applications (with AppFabric)

AppFabric Queues & Topics

• Load Leveling

• Loose coupling (no consumer?)

• Load balancing

Queue P C

P

P C

C

Page 16: Decoupled web applications (with AppFabric)

AppFabric Queues & Topics

• Microsoft‘s Publish/Subscribe

Topic P S

S

S

C

C

C

Page 17: Decoupled web applications (with AppFabric)

Why?

Page 18: Decoupled web applications (with AppFabric)

What‘s better?

Page 19: Decoupled web applications (with AppFabric)

When & where?

• Potentially scalable application

• Different technologies

• Separate development teams

– Different paces of development

– Different release cadence

• Load leveling & balancing

Page 20: Decoupled web applications (with AppFabric)

SAMPLE OF APPFABRIC QUEUES http://lab.studiopesec.com/