52
Bringing critical applications to the cloud Luc Bos

Bringing critical applications to the cloud - Luc Bos

Embed Size (px)

Citation preview

Bringing critical applications

to the cloudLuc Bos

Who am I?

Agenda

Business Requirements

High uptime

Scalable

Cost effective

Communicate across boundaries

Auditing

Total Picture

Points of attention

Conclusion

Questions

IAAS vs PAAS

Business Requirements

1. High Uptime

2. Scalable

3. Cost effectiveness

4. Communicate across boundaries

5. Auditing

1. High Uptime

SLA

Upgrade and Fault domains?

Upgrade Domain #1

Fault Domain

#1

Fault Domain

#2

Upgrade Domain #2

Upgrade Domain #3

Upgrade Domain #4

Instance 1

Instance 2

2. Scalable

Scalability: Offload processing

Scalability: Componentize your system

Scalability: Watch out for state

Scalability: Watch out for bottlenecks

Scalability: triggers

Scalability: triggers

Scalability: triggers

Scalability: triggers

The Microsoft Enterprise Library Autoscaling Application Block (WASABi)

<rule name="ScaleUp" description="Increases instance count" enabled="true" rank="10">

<when>

<greater operand="Avg_CPU_RoleA" than="80"/>

</when>

<actions>

<scale target="RoleA" by="1"/>

</actions>

</rule>

3. Cost effectiveness

Cost Effectiveness: Load Leveling

0

2000

4000

6000

8000

10000

12000

1:00 4:00 7:00 10:00 13:00 16:00 19:00 22:00

Load

Cost Effectiveness: Load Leveling

0

2000

4000

6000

8000

10000

12000

1:00 4:00 7:00 10:00 13:00 16:00 19:00 22:00

Load

Max

Cost Effectiveness: Load Leveling

0

2000

4000

6000

8000

10000

12000

1:00 4:00 7:00 10:00 13:00 16:00 19:00 22:00

Load

Used

Max

Load Leveling: architecture

Load Leveling: don’t keep user waiting

Load Leveling: don’t keep user waiting

Your request has been received.

Please check back later to view the status of your request.

4. Communicate across boundaries

Communicate across boundaries

RelayService

RelayService

<endpoint contract="Service.IProblemSolver"

binding="netTcpRelayBinding"

address="sb://**namespace**.servicebus.windows.net/yourApp"

behaviorConfiguration="sbTokenProvider"/>

RelayService: watch out for bottlenecks

Topic subscriber

5. Auditing

Auditing vs logging

Logging

User logged in

Exception occured in the application

Database down

Auditing

A Restock has happened

An order has shipped

Auditing

using (IDbTransaction tran = connection.BeginTransaction())

{

try

{

// your code

tran.Commit();

}

catch

{

tran.Rollback();

throw;

}

}

Available

boxes

0

Orders

shipped

0

Boxes sold 0

Available

boxes

50

Orders

shipped

0

Boxes sold 0

Available

boxes

40

Orders

shipped

1

Boxes sold 10

Available

boxes

30

Orders

shipped

2

Boxes sold 20

Available

boxes

10

Orders

shipped

3

Boxes sold 40

Warehouse

Event source?

Restocked (50 Boxes of wine)

OrderShipped (10 boxes of wine)

OrderShipped(10 boxes of wine)

OrderShipped(20 boxes of wine)

Warehouse event store

Auditing: architecture

Auditing: architecture

The total picture

1.High Uptime

2.Scalability

3.Cost effectiveness

4.Communicate across boundaries

5.Auditing

The total picture

The total picture

The total picture

The total picture

The total picture

The total picture

The total picture

Points of attention

Deploy minimum 2 role instances Componentize your system with queues and topics Queues can level your load to improve cost effectiveness Scale wisely Dont’t keep users waitingWatch out for bottlenecksNon scalable components

Relay services

Conclusion

This is only the beginning! Architect for the cloud. This is based on experience. Contact usExisting applications

New applications

Contact us

Luc Bos

QFrame

Veldkant 33b, 2550 Kontich

[email protected]

@qframedotnet / @bosdev

http://www.qframe.be