Decoupled web applications (with AppFabric)

20
Decoupled applications with AppFabric Anže Vodovnik ([email protected])

description

Web applications are growing increasinly more complex, and to speed up development, it makes sense to use pipelined development. This is one of the benefits afforded to the development team using decoupling as an architecture best practice. This deck contains a quick overview of decoupled apps, and how we can use AppFabric to handle decoupling.

Transcript of Decoupled web applications (with AppFabric)

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/