Building Applications for the Cloud Applications

Building Applications for the
Cloud Applications
David Aiken
Windows Azure Evangelist
Workload Patterns Optimal for Cloud
“Growing Fast“
Compute
Compute
“On and Off “
Inactivity
Period
Average Usage
Usage
Average
Time
Time
“Predictable Bursting“
Compute
Compute
“Unpredictable Bursting“
Average Usage
Average Usage
Time
Time
Development Environment
• SDK’s & Tools
–
–
–
–
Windows Azure SDK
Windows Azure AppFabric SDK
Visual Studio 2010/2008
Eclipse Tooling
• Other Stuff
–
–
–
–
–
–
Windows Azure platform Training Kit
PowerShell Windows Azure Management CmdLets
Subscription
Certificate
Cloud Storage Tools
Diagnostics Tools
Billing & Subscriptions
Introducing Archivist
1. Find Search Term
Decouple with Queues
2. Query Twitter
3. Aggregate Results
4. Repeat 200,000 times every hour
Introducing Archivist
1. Find Search Term
Decouple with Queues
2. Query Twitter
3. Aggregate Results
More Queues
More Instances
More Partitions
Introducing Archivist
1. Find Search Term
Decouple with Queues
2. Query Twitter
3. Aggregate Results
More Queues
More Instances
More Partitions
Introducing Archivist
1. Find Search Term
2. Query Twitter
Are these Instances….
or Threads?
3. Aggregate Results
An Archivist Architecture
SQL Azure
Search Terms
New Search
Call Twitter
API & Store
Results
Blob Storage
Work
Scheduler
Calculate
Aggregations
Table Storage
measure
Q length
SQL Azure
Job Table
CDN
measure CPU, Memory
Archivist UX
Cloudy Tips
• 64 bit
• Ship everything to the cloud
• What does stateless mean anyway?
• Blobs, CDN & Silverlight
SQL Azure vs. Tables
SQL Azure vs. Table Storage
• When appropriate – use both!
• Partition
– Performance
– Size
– Cost
– Throttling
• De-Normalize
Design for failure
Failure
It doesn’t matter how many times we do the
same task, if it fails at the start on the end or the
middle or repeats 300 times, the answer is
always the same!
If your service sucks
could you figure it out?
Beware
A heisenbug (named after the Heisenberg
Uncertainty
Diagnostics
& Monitoring
Developer Fabric
Debugging bug that disappears
(logs, tracesor
& perf
counters)
Principle)
is a computer
alters
its
characteristics when an attempt is made to study it.
- source wikipedia
Real Time Tracing with Service Bus
Capacity Planning / Auto Scaling
[email protected]
Q&A