AzureTools–Diagnostic Utility

On the Windows Azure Advisors group, one of the Azure team members shared this utility which MS Azure teams use internally for diagnostic the problems! You can find more information about it here.


Got enrolled in the Windows Azure Advisors program!

I recently got enrolled in the Windows Azure Advisors program. It is a group of Windows Azure architects, developers and the MS Azure teams to collaborate on ideas, to discuss upcoming features, and really to help out each other by asking and answering questions! Looking forward to more Azure learning and discussions.

Resource Management on Windows Azure SQL Database

Most of you might know that Microsoft’s cloud database engine, SQL Database, implements throttling in order to avoid a rouge or poorly coded application from affecting performance of other applications that might be sharing the same cloud infrastructure.

Throttling is good because it promotes writing optimize code but it also helps to know the thresholds that define the size of the sandbox that the applications must remain in before the throttling kicks-in. I could not find concrete throttling thresholds and solid guidance until recently.

Microsoft just published some material on this topic; it covers not only the concepts (throttling, governance, etc.) involved in the resource management but also concrete throttling thresholds, best practices and code example. Check it out @ Resource Management in Windows Azure SQL Database

Mobile-friendly Server Interfaces

Watched this video on InfoQ about designing APIs for the mobile applications. Few good tips and insights I gathered after watching it are as follows.

  1. Things to consider while designing the mobile APIs
    • Battery life
    • Latency
    • Chunky vs. Chatty
  2. gZip data, especially JSON.
  3. Instead of loading everything in one go, think about loading data on events.
  4. Should the application (hence the APIs) be optimized for reading or writing or both?
  5. Have caching strategy in place. Cache, not only on the client side, but also on the server side.
  6. Granular, true REST interfaces are great but you might end up making several calls to get the data your screen needs. You might have to create screen specific APIs ( the APIs that provide data and services for one screen ) in order to reduce the # of calls made to the server.
  7. Pre-generate or pre-process and cache the data that you think the application might need.
  8. Offload work to the client.

How Microsoft IT is Utilizing Windows Azure

The following case studies explain in detail how Microsoft IT is utilizing Windows Azure for their own applications. Makes an interesting read, especially the technical architecture diagrams in the case studies.

Migrating a Business-Critical Application to Windows Azure

Building Reliable Background Processes for a Business Critical Application with Windows Azure

Migrating the Microsoft Partner Network to Windows Azure

Using Windows Azure to Implement a Hybrid Application

SQL Database Premium Edition

Recently Microsoft announced Premium Edition of SQL Database. In simple words, it allows you to reserve the capacity so that it is not shared with other tenants! Similar to having your dedicated SQL infrastructure minus the maintenance overhead that comes with it.

Caution – This could be a double-edge sword though. I believe that auto-throttling in cloud environments helps promote good architecture and coding practices, hence having a dedicated environment with elevated limits may be seen by some as a solution to bad architecture and coding problems; instead of fixing the code, they might be inclined to throw more capacity at it. Be careful!