D-Most Frequently Asked Question

General Questions

What is Role in Azure

Role is like dll that has a entry point and get loaded in azure service.

When to use VM role.

When you need to migrate entire application as a whole with minimum change and scalability is not required

What is Azure

It is an OS for data centers.

What are the fundamental goals of Azure

scalability, cost sharing , high availability, statelessness, Deployment Automation , Infrastructure automation , role based computing , self healing.

What is main components of Azure

VM Role, Web Role, Table Service(SQL Azure) Blob

What is fault domain

it is called single point of failure that depended upon data center topology for example a rack connected a single power supply is fault domain and controller always distribute the application instances across fault domain to make it fail safe.

What is update domain

same like fault domain but here downtime is intentional and in your control

What is Fabric Controller

it works as kernel for windows azure and control all the hardware, virtualization and provisioning.

How many type of App Fabric

There are three two of App Fabric

    1. Windows Azure App Fabric :- Provide several services to cloud application like service bus.

    2. Windows Server App Fabric :- Suite of application component to develop WCF/WPF based application

Developer Questions

What is the purpose of ServiceDefinition files

It contains metadata needed by the Windows Azure fabric to understand the requirements of your application, such as which roles are used, their trust level, the endpoints exposed by each role, the local storage requirements and the certificates used by the roles. The service definition also establishes configuration settings specific to the application.

service configuration files specify the number of instances to run for each role and sets the value of configuration settings defined in the service definition file. By default, Visual Studio creates two files ServiceConfiguration.Local.cscfg and ServiceConfiguration.Cloud.cscfg.

What is purpose of Role node in a cloud project.

The Roles node in the cloud service project enables you to configure what roles the service includes (web, worker or both) as well as which projects to associate with these roles.Adding and configuring roles through the Roles node will update the ServiceDefinition.csdef and ServiceConfiguration.cscfg files.

What is PartitionKey and RowKey

    • Every entity in Table Storage has two key properties: the PartitionKey and the RowKey. Both together makes primary key. Each partition represent a separate instance of data base. Load balance automatically distribute the instances across the available partitions.

    • Entities also have a Timestamp system property, which allows the service to keep track of when an entity was last modified.

What is the purpose of TableServiceEntity class

    • The Table Storage client API provides a TableServiceEntity class that defines the necessary properties.This class defines the PartititionKey, RowKey and TimeStamp system properties required by every entity stored in a Windows Azure table.

    • Together, the PartitionKey and RowKey define the DataServiceKey that uniquely identifies every entity within a table. The Table service does not enforce any schema for tables making it possible for two entities in the same table to have different sets of properties.

What are the important classes of a cloud project

    1. CloudBlobClient

    2. CloudQueueClient

    3. CloudBlockBlob

    4. CloudStorageAccount

    5. CloudBlobContainer

    6. CloudQueue

    7. CloudTableClient

    8. RoleEntryPoint

What is Affinity Group

It is a logical name given to a Data Center.The reason that you are creating a new affinity group is to deploy both the hosted service and storage account to the same location, thus ensuring high bandwidth and low latency between the application and the data it depends on.

What are the purpose of Primary Access Key and Secondary Access Key

The Primary Access Key and Secondary Access Key both provide a shared secret that you can use to access storage. The secondary key gives the same access as the primary key and is used for backup purposes. You can regenerate each key independently in case either one is compromised.

What are the deployment of Windows Azure

There are several alternatives for publishing applications to Windows Azure. The Windows Azure Tools for Visual Studio allow you to both create and publish the service package to the Windows Azure environment directly from Visual Studio. Another deployment option is the Windows Azure Service Management PowerShell Cmdlets that enable a scripted deployment of your application. Lastly, the Windows Azure Management Portal provides the means to publish and manage your service using only your browser. For more information about publishing applications, see the Windows Azure Deployment lab in this training kit.

How many types of storage options Windows Azure Provides

    1. Local Storage :When you run your application in Windows Azure, it is hosted in VMs. Each VM has a virtual hard drive connected to it and you can access subdirectories contained on this drive. The subdirectories are only accessible by the code running on the VM and can be configured to persist or be erased whenever the VM reboots. However, if Windows Azure moves your code to another machine due to hardware failure or maintenance, be aware that the data in the subdirectories will not be moved with your code; the data will be lost. For this reason, local storage is best thought of as a cache allowing fast access to frequently-used data.

    2. Windows Azure Drives provides enables existing applications to run in Windows Azure with minimal code changes by providing a hard disk that is backed by a blob.A Windows Azure Drive allows you to create a virtual hard drive (VHD) backed by a Page Blob and mount that drive into the VM running your application code. Note that only one machine at a time can mount a Windows Azure Drive for writing which is why this feature is not for applications that are scaling out with multiple instances. However, it is possible to mount a read-only (snapshot) version of the blob into multiple VMs simultaneously. This can make Windows Azure Drives useful if you have a lot of read-only static content (like static HTML files).

    3. Windows Azure tables store data as collections of entities. Entities are similar to rows. An entity has a primary key and a set of properties. A property is a name/value pair, similar to a column.

What is the purpose of .Diagnostics.ConnectionString

This is the connection string to Windows Azure server, same as DataConnectionString, however this one is dedicated for logging diagnostics

What is the mapping between VM and Role Instance

One Instance -One VM

What is compute

Compute is a kind of role in azure, One Compute is actually on VM, One compute hour mean one VM in use for one hour (even stopped)

What is Blog

it is like file system in your PC and provide persistent file storage in cloud. it can be of two types Block and paged.It can have max of 8k of metadata

Type of Blob

    • Block Blob: Use for streaming media, chunk size 4 mb max 200 gb

    • Page Blog : Used for normal storage , allow random access , page size 512 , max write size 512xN=4 MB, max size 1TB

What is blob container

It is like folder in normal file system and can have security information. It can be public or private, or shared

How to share a blob

    1. By placing in public container i.e. everyone access

    2. By issuing a shared secret (SAS) key

What is snapshot

Used for versioning,No char for taking snap shot till page is data page is modified

What are best practices to use blob

    1. Use custom timeout

    2. Use parallel block upload

    3. Prefer using container level security policy

Architectural Questions

Cloud Application Vs Regular Application

See below

How does cloud based application development differ from normal ASP.Net web development

Cloud application is fundamentally a distributed application. Below are some key differences

    1. Components of cloud application communicate via Queue

    2. Front end is behind load balance

    3. It is stateless

    4. There is no relational data bases

    5. two types of storage BLOB and Table

    6. All communication is async

    7. Table storage is distribute across multiple data base instances.

How to migrate an existing ASP.Net application to cloud

Adaptation Consideration (when we should adapt Cloud)

    • Application need scalability and high availability

    • Need to reduce upfront cost and infrastructure maintenance

What are Development challenges of cloud

Developer need to understand SOA patterns and how to write service based distributed application

What are the testing considerations

How to optimally utilize "Pay as you go" features

    • Fallow the rule of thumbs and proven design patterns that produce less traffic and consume less computing power

    • Use tool for automatic scale up and down as per your need.

How to model a cloud application

Cloud application are distributed and all the principle related to distributed and SOA application applied to cloud.