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
Windows Azure App Fabric :- Provide several services to cloud application like service bus.
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
CloudBlobClient
CloudQueueClient
CloudBlockBlob
CloudStorageAccount
CloudBlobContainer
CloudQueue
CloudTableClient
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
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.
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).
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
By placing in public container i.e. everyone access
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
Use custom timeout
Use parallel block upload
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
Components of cloud application communicate via Queue
Front end is behind load balance
It is stateless
There is no relational data bases
two types of storage BLOB and Table
All communication is async
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.