150 likes | 312 Views
Building Applications for the Cloud Applications. David Aiken Windows Azure Evangelist. Workload Patterns Optimal for Cloud . “Growing Fast“ . “On and Off “ . Inactivity Period . Compute . Compute . Average Usage. Usage. Average. Time . Time .
E N D
Building Applications for the Cloud Applications David Aiken Windows Azure Evangelist
Workload Patterns Optimal for Cloud “Growing Fast“ “On and Off “ Inactivity Period Compute Compute Average Usage Usage Average Time Time • On and off workloads (e.g. batch job) • Over provisioned capacity is wasted • Time to market can be cumbersome • Successful services needs to grow/scale • Keeping up w/growth is big IT challenge • Complex lead time for deployment “Unpredictable Bursting“ “Predictable Bursting“ Compute Compute Average Usage Average Usage Time Time • Unexpected/unplanned peak in demand • Sudden spike impacts performance • Can’t over provision for extreme cases • Services with micro seasonality trends • Peaks due to periodic increased demand • IT complexity and wasted capacity
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 Billing Account WLID Subscription WLID Subscription WLID Subscription WLID API
Introducing Archivist • Find Search Term • Query Twitter • Aggregate Results • Repeat 200,000 times every hour Decouple with Queues
Introducing Archivist • Find Search Term • Query Twitter • Aggregate Results Decouple with Queues More Partitions More Queues More Instances
Introducing Archivist • Find Search Term • Query Twitter • Aggregate Results Decouple with Queues More Partitions More Queues More Instances
Introducing Archivist • Find Search Term • Query Twitter • Aggregate Results Are these Instances…. or Threads?
AnArchivist Architecture New Search SQL Azure Search Terms Call Twitter API & Store Results Blob Storage Table Storage Work Scheduler Calculate Aggregations CDN measure Q length Archivist UX SQL Azure Job Table measure CPU, Memory
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 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! 100% Guaranteed
If your service suckscould you figure it out? Developer Fabric Debugging Real Time Tracing with Service Bus Beware A 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 Diagnostics & Monitoring (logs, traces & perf counters) Capacity Planning / Auto Scaling
daiken@microsoft.com Q & A