building applications for the cloud applications david aiken windows azure evangelist
TRANSCRIPT
Usage
Com
pute
Time
Average
Inactivity
Period
“On and Off “
On and off workloads (e.g. batch job)Over provisioned capacity is wasted Time to market can be cumbersome
Unexpected/unplanned peak in demand Sudden spike impacts performance Can’t over provision for extreme cases
Com
pute
Time
“Unpredictable Bursting“
Average Usage
Successful services needs to grow/scale Keeping up w/growth is big IT challenge Complex lead time for deployment
Average UsageCom
pute
Time
“Growing Fast“
Services with micro seasonality trends Peaks due to periodic increased demandIT complexity and wasted capacity
Com
pute
Time
Average Usage
“Predictable Bursting“
Workload Patterns Optimal for Cloud
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
Introducing Archivist
1. Find Search Term
2. Query Twitter
3. Aggregate Results
4. Repeat 200,000 times every hour
Decouple with Queues
Introducing Archivist
1. Find Search Term
2. Query Twitter
3. Aggregate Results
Decouple with Queues
More Instances
More QueuesMore Partitions
Introducing Archivist
1. Find Search Term
2. Query Twitter
3. Aggregate Results
Decouple with Queues
More Instances
More QueuesMore Partitions
Introducing Archivist
1. Find Search Term
2. Query Twitter
3. Aggregate Results
Are these Instances….
or Threads?
An Archivist Architecture
Call Twitter API & Store
Results
Calculate Aggregations
New Search SQL AzureSearch Terms
Work Scheduler
SQL AzureJob Table
Blob Storage
Table Storage
Archivist UX
measureQ length
measure CPU, Memory
CDN
Cloudy Tips
• 64 bit
• Ship everything to the cloud
• What does stateless mean anyway?
• Blobs, CDN & Silverlight
SQL Azure vs. Table Storage
• When appropriate – use both!
• Partition– Performance– Size– Cost– Throttling
• De-Normalize
Design for failure
FailureIt 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!
100% Guaranteed
If your service suckscould you figure it out?
Diagnostics & Monitoring(logs, traces & perf counters)
Real Time Tracing with Service Bus
Developer Fabric Debugging
Capacity Planning / Auto Scaling
BewareA heisenbug (named after the Heisenberg Uncertainty Principle) is a computer bug that disappears or alters its characteristics when an attempt is made to study it.
- source wikipedia