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


Books on Agile

While watching API Design related presentations on InfoQ, I came across following books on Agile. These are kind of dated but still appear to have relevant information.

Scrum and XP from the TrenchesDownload this book FREE (PDF)

Kanban and Scrum – making the most of bothDownload this book FREE (PDF)

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