Tuesday, December 18, 2018

Microsoft Azure Interview Questions & Answers – Part 1






We have been seen that the cloud computing is a trending buzzword in the modern IT industry and most of IT professional willing to opt this as a career opportunity. No doubt, the Microsoft Azure cloud computing platform gives the facility and feasibility a huge set of resources to accomplish the task, in comparison to the traditional computing and infrastructure approach.

I am considering the beginners who are desired to opt this platform as a career, but face some challenges to execute the interview successfully due to lack of basic clarity in the context of Microsoft Azure. Here I tried to consolidate a couple of basic but mandatory topics which are essentials, enough to understand the Microsoft Azure and its feature.

I will try to cover Platform as a Service (PaaS) as well, some part of Infrastructure as a Service (IaaS), though can’t say nearly all will be covered, but if you think something is precisely missed then let me know, will cover them in the next post frequently.

What is Cloud Computing?


Cloud computing is the general term which used for providing the hosted services over the internet and primarily focused to Operation Expenditure (OpeEX) rather than Capital Expenditure (CapEX). In other words, it is the use of servers on the internet to Store, Manage and Process the data. 

Basically the Cloud computing is an abstraction over the traditional setup of infrastructure prerequisites, which makes the development and deployment significantly stress-free on the basis of something Pay-As-You-Go model. It means you need to pay only for the used services and no need to worry about the infrastructure and all other Eco systems, similar to your electricity and water charges in daily life.

In brief, Cloud Computing = Software as a Service (SaaS) + Platform as a Service (PaaS) + Infrastructure as a Service (IaaS).

What is Microsoft Azure?


The companies which provide the cloud service are called the Cloud Providers, and the Microsoft Azure is one of them. 

Microsoft Azure, formerly known as Windows Azure, is a leading cloud computing platform created by the Microsoft. It provides a wide range of cloud services counting with Platform as a Service (PaaS) and Infrastructure as a Service (IaaS) to develop and scale applications as well deploy and manage through a global network of data centers. 

In fact, it is the freedom to build, manage and deploy applications on a massive, global network using your favorite tools and frameworks.

What are the major advantages of Cloud computing?


We have been seen that Cloud computing is an internet-based computing platform whereby different resources, software, and information are available as per Pay-As-You-Go model.  

A number of characteristics which actually define the Cloud computing, find herewith the following major benefits – 

a) Scalability - It is the ability of the application to handle the growing amount of work without degrading the performance. Scalability is of two types –
  1. Vertical or Scale Up – Here we increase the capacity of the existing hardware or machine, for example increase the RAM of your machine from 4GB to 16GB.
  2. Horizontal or Scale Out – Here we increase the count of machines without increasing the capacity, for example, put another server of the same type of exiting server having 8GM RAM and all other configurations.

b) Business Agility – It defines the mark where your application can be evolved or changed depending on the business necessities. 

c) High Availability – High availability means zero downtime of the application, in other words, your application can be available in most downtime scenarios, such as 
  1. Hardware failures
  2. Application updates
  3. Configuration changes
  4. OS update restarts
  5. Heavy load restarts

d) Pay-As-You-Go model – This is something worthwhile feature of the cloud, you need to pay only what you use the services over there. Besides, if not required, the services, meanwhile, you can free or de-allocate them and that is not chargeable.

e) Focus from CapEx to OpEx – Due to Pay-As-You-Go model it became easy to move from Capital Expenditure (CapEx) to Operational Expenditure (OpeEx), where organization can focus on operations rather than infrastructures. 

f) Fault Tolerance – It means we can access and continue operating our system in full capacity and functionality in spite of failure of some components. Fault tolerance is applicable due to various replications and redundancy strategies applied by the Microsoft Azure.

g) Security - Microsoft provides some of the most advanced security technology in the azure-cloud like Threat Intelligence, Advanced Threat Analytics, Azure Information Protection, and Multi-Factor Authorization.

h) Azure's Integrated Development Environment - In addition to the above benefits, Azure has the advantage of having the world’s leading development environment baked straight in - Visual Studio.

What are the different Service Model in Cloud Computing?


In fact, there are various wide ways to consume and utilize any cloud-based service, mostly there are three main types. Sometimes these three service model called the cloud computing stack because they build on top of one another.
  1. Infrastructure as a Service (IaaS) – Host applications
  2. Platform as a Service (PaaS) – Build applications
  3. Software as a Service (SaaS) – Consume applications


Infrastructure as a Service (IaaS)
Using the IaaS model, you can allow to set up and configure the elements of infrastructure as a service as per your preference like Virtual Machine, Operating System, Network, Storage, Load Balancer etc. In brief, the IaaS model can be used to host applications.
For example – Azure VM, VNET etc.

Platform as a Service (PaaS)
Using the PaaS model, developer gets a platform to publish the application without worrying about the underlying software or hosting environment at all. It is something about abstracting developers from the essential infrastructure, to and enable build the applications quickly.
For example – Web Apps, Mobile Apps, API etc.

Software as a Service (SaaS)
Using the SaaS model, you can get fully provisioned services and consume the well-defined features of the application. It is something you consume the application as a service that you need for your business.
For example – Office 365, Salesforce.com, CRM online etc.

What are different Cloud Deployment Models?


No doubt, it is essential to choose the right cloud model for the right workload. In fact, the Cloud Deployment model is mainly categorized on the basis of access, size and proprietorship. Following are the three main models that could transform your business.

[1] Public Cloud
In this model service provider makes all components of your application and system, available to the general public over the internet, running in Azure only. Since Public cloud is owned by the cloud provider henceforth services may be free or offered on a Pay-As-You-Go model.

[2] Private Cloud
In this model you have more control data and applications, in fact, you are using on premises data center for running Azure services and features. It something the infrastructure is owned by you or your cloud provider gives you services exclusively to host your application on a dedicated server(s).

[3] Hybrid Cloud
Hybrid Cloud is basically a combination of Public and Private Cloud, where any part or components of applications running on Azure as well, some part of your application is running within on premises datacenter.

What is Azure Cloud Service?


Azure Cloud Service is a popular container under which applications run, precisely designed for hosting web applications, background processing applications and Azure IaaS based virtual machines. 

The web application in cloud service is termed as a Web Role whereas background processing applications are termed as Worker Role.

An Azure subscription can contain any number of cloud services and one cloud service can contain any number of roles. Simultaneously each role can run any number of Instances (virtual machines) on which actual application executes.

Using Azure SDK, we can develop an application cloud service with the help of supportive tools like Visual Studio (.NET) or Eclipse (Java) etc.

What are different Azure Cloud Services?


Microsoft Azure runs and stores the data on Microsoft datacenters. It offers a lot of different services for diverse scenario and almost covers the necessities, Microsoft categorizes these cloud services into different product types like – 
  1. Compute – Deploy and manage VMs, VM Scale sets, Functions for serverless computing, Service Fabric for microservices and Cloud Services for building cloud-based apps and APIs etc.
  2. Web and Mobile – Development and deployment of web or mobile apps.
  3. Data Storage – Scalable cloud storage includes Blob, Queue, File as well as Backup and Site Recovery etc.
  4. Analytics – Real-time analytics and data warehousing along with Azure has some big data tools like HDInsight cluster.
  5. Networking – Variety of networking tools, like Virtual network, Load Balancer, Application Gateway, VPN Gateway etc.
  6. Internet of Things (IoT) – Capture and manage IoT data using IoT Hub and IoT Edges services.
  7. Containers – It supports huge volume of containers like Docker, Kubernetes etc.,
  8. Databases – Several SQL and document based databases includes Azure SQL, NoSQL etc.
  9. DevOps – Project and collaboration tools.
  10. Monitoring - Manage and monitor Azure instances.
  11. Security and Identity – Includes User authentication or access management, Key Vault and Azure Active Directory etc.
  12. AI + Cognitive Services – Artificial intelligence capabilities, like the Computer Vision API, Face API, and Language Understanding Intelligent etc.



What are the roles available in Microsoft Azure?


Before moving in the roles we need to know about the Azure Cloud Services and Cloud Service Roles. Originally the Azure Cloud Services is a classic Azure resource, introduced by Azure back in 2008 and it was designed to support scalable web and worker role applications running on Windows.

In a generic term roles are nothing servers, these servers are managed, load balanced Platform as a Service virtual machines that work together to achieve a common goal. There are mainly three roles in the Azure as – 

[1] Web Role
A web role basically provides a web front-end solution to deploy a website, using languages supported by the IIS platform like PHP, .NET etc. It automatically deploys and hosts your app through IIS.
For example, a simple application might use just a single web role, serving a website.

[2] Worker Role
A worker role is something a background service solution, a help to the Web role. It is used to execute background process like database management tasks, report generation, etc. 
For example, a more complex application might use a web role to handle incoming requests from users, and then passes those requests on to a worker role for processing.

[3] VM (Virtual Machine) Role
In fact, the Web Role and Worker Role are executed on virtual machines. The VM role is used to customize the virtual machine on which the web and worker roles are running.

What is an Azure Resource Manager (ARM)?


Microsoft Azure Resource Manager(ARM) is a management framework that enables you to work with the resources in your solution as a group. It allows to deploy, manage and monitor Azure resources and handle all related tasks as a group rather than individual entities.

You can define the infrastructure and dependencies for your applications in a declarative template and that can be used in all environments such as test, staging or production. Resource Manager provides security, auditing, and tagging features to help you manage your resources after deployment. You can deploy, update, or delete all the resources for your solution in a single, coordinated operation.

Azure Resource Manager makes it easy for you to manage and visualize all used resources in your application. you can control the access over resources by defining permission based on roles and user/group to the roles. 

In brief, the Azure Resource Manager is defined as to manage the infrastructures which involve a variety of azure services. It can be used to deploy, manage and delete all the resources together using a simple JSON script.

What is Azure Virtual Machine (VM)?


Azure Virtual Machine (VM) is something a computer file, typically an image, which behaves like an actual computer. It is one of several types of on-demand, scalable computing resources that Microsoft Azure offers based on Pay-As-You-Go model. It means you have feasibility to add extra VMs if required or can shut down also if not need the VM.

Using a variety of operating systems like Linux, Windows, SQL Server, Oracle etc. the Azure Virtual Machines give the flexibility of virtualization for a wide range of computing solutions including development, testing, hosting or extending the datacenter, etc. Azure VM could be your choice if you want frequent modifications and changes in your web server environment. 

In brief, the term virtual, Azure Virtual Machines are used in the same way any virtual machines are used: to add computing power without adding hardware.


What is Azure PowerShell?


Basically Windows PowerShell is a task-based command-line shell and scripting language designed especially for system administration, it comes installed by default on every Windows.

Along with the Azure PowerShell is an extended version of Windows PowerShell platform and scripting language to deliver cmdlets to accomplish a robust task in the context of Azure cloud services. Cmdlets are preset scripts through which an Azure PowerShell programmer can perform diverse tasks like provisioning VMs, automate jobs, backup and restore, etc.

You can use the Azure PowerShell either in your browser with Azure Cloud Shell, or go ahead to install on your local machine and execute it in any PowerShell session. You can install the Azure PowerShell modules in a Windows environment through the PowerShellGet.  PowerShellGet is an in-box module management, the preferred way to install Azure PowrShell, though you can go ahead to install using Web Platform Installer or MSI package.

You can visit the precise post to know more about the Microsoft Azure and installing Azure PowerShell on Windows.


What is Cmdlet in Azure?


Cmdlets (pronounced as "command-let”) are lightweight preset scripts or commands through which an Azure PowerShell programmer can perform various tasks like provisioning VMs, automate jobs, backup and restore, etc. in the Microsoft PowerShell environment.

A cmdlet is a compiled piece of .NET code and it doesn’t have direct representation in the file system, as they are not programs or similar, they exist solely within PowerShell. 

For example, Get-Command (The PowerShell Get-Command cmdlet without any additional parameters will list all the Windows PowerShell cmdlets)

What is an Azure SQL Database?


Azure SQL Database is Microsoft’s Database as a Service (DaaS) or a virtual database in the Azure cloud, that gives you a robust data-store with the flexibility to scale to meet demand. It is based on the SQL Server database technology and built on an Azure cloud computing platform, Azure SQL enables you to store relational data in the cloud and quickly scale the size of their databases up or down as business demands. 

Azure SQL Database is the intelligent, fully managed relational cloud database service that provides the broadest SQL Server engine compatibility. It is offered either as a Standalone database or Elastic database pool, and is priced in three tiers: Basic, Standard and Premium, offers different performance levels to accommodate a variety of workloads.

Microsoft Azure SQL Database have a feature; it automatically creates backups of every active database. Every hour a backup is taken and Geo-replicated to enable the one-hour recovery point objective (RPO) for Geo-Restore.

What is Azure SQL Data Warehouse?


Azure SQL Data Warehouse (SQL DW) is a cloud based Enterprise Data Warehouse (EDW) that leverages Massively Parallel Processing (MPP) to quickly run complex queries. In fact, it is a managed petabyte –scale MPP analytical data warehouse built on a foundation of SQL Server and run as part of the Microsoft Azure Cloud Computing Platform with controls to manage compute and storage independently. 

Azure SQL Data Warehouse is a fast, flexible and trusted analytics platform in the cloud for all your data. It can work with relational data as well as non-relational data via Polybase, a storage layer for both relational and HDFS data.

The Azure SQL Data Warehouse is a key component of an end-to-end big data solution in the Cloud. Data is ingested into big data stores from a variety of sources into the cloud Eco system and inside the big data store, Hadoop, Spark, and machine learning algorithms prepare the data. Post preparation of data SQL Data Warehouse uses PolyBase to query the big data stores, PolyBase uses standard T-SQL queries to bring the data into SQL Data Warehouse.

What is Azure Storage?


Azure storage is one of Platform as a Service (PaaS) service, that provides highly available, secure, durable, scalable, and redundant cloud storage solutions. Azure storage option is one of best computing services which supports both legacy application development synced up with Azure SQL and modern development synced up with Azure No-SQL table storage.
Based on types of data storage in Azure can be classified into two segments, Relational as well Nonrelation data storage.

a) Relational data storage
It is a kind of storage to store relational data in the cloud, Azure SQL storage is one of the PaaS services to provide such facilities.

b) Non-Relational data storage
It is a kind of storage to store a variety of data like documents, media files, NoSQL data over the cloud which can be accesses using REST APIs.
Mostly the Azure provides four types of storage options based on the data type.
  1. Blob Storage – Used to store unstructured data such as text or binary data, that can be accessed using HTTP or HTTPS.
  2. File Storage – Used to manage file shares for cloud or on-premises deployments.
  3. Queue Storage – Used to transfer a massive amount of data between cloud apps asynchronously. 
  4. Table Storage – It is the Microsoft’s No-SQL database which stores data in a key-value pair format, schema-less storage.


What is the difference between Block Blob and Page Blob?


Blob, stand for Binary Large Object, that is an unstructured binary data, the storage offers a component for storing a lot of content or binary data.
For example - pictures, sound and visual documents etc.
The Azure Blob Storage offers two types of blobs –
  • Block Blob
  • Page Blob


[1] Block Blob
Block blobs are primarily used to upload large blobs efficiently, like image files, log files, etc. that can be viewed as a file in your local OS. Block blobs are comprised of blocks, each of which is identified by a block ID.

Each block can be a different size, up to a maximum of 100 MB (4 MB for requests using REST versions before 2016-05-31), and a block blob can include up to 50,000 blocks.

Blocks could be uploaded to storage service in parallel, and then assembled into a block blob by a single commit operation.

[2] Page Block
Page blobs are optimized for high random access read and write operations, and perfect for storing virtual file systems (like VHDs). Page blobs are a collection of 512-byte pages. When creating page blob, you’ll need to specify maximum size of the blob and that size can’t be exceeded.

Check out the Microsoft link for more details.

What is the difference between Azure Storage Queue and Azure Service Bus Queue?


Microsoft Azure supports two types of queue mechanisms, the Azure Storage Queues and Azure Service Bus Queues.

Azure Storage Queues are a part of the Azure storage infrastructure feature, having a REST based interface, provide persistent and reliable messaging.  It can store multiple messages which can be accessed via HTTP or HTTPS. It was introduced first, as a dedicated queue storage mechanism built on top of Azure Storage services.

Azure Service Bus queues are built on top of Azure messaging infrastructure that provides a robust, scalable and feature rich messaging platform. It supports queuing as well as to publish/subscribe Web service remoting, and integration patterns. 

In fact, Azure Service Bus is cloud-based messaging system for connecting applications, services and devices. Service bus can be used to connect apps running on Azure with on-premises. Azure Service Bus provides two messaging solutions, one is relay and the other messaging solution is brokered messaging.

Service Bus Queues follow First In First Out (FIFO) mechanism to which messages can be sent and can be received from them. Additionally, Azure Service Bus Queues have the ability of deleting themselves after a configurable amount of idle time.

Check out the Microsoft link for more details.

What is Microservice?


Microservices require a different approach to designing and building applications. As the name suggests, microservice is an architectural style to decompose the large service into smaller and independent units of service. 

These service modules are highly decoupled building blocks that are small enough to implement a single functionality. The purpose of microservices architectures is to make it easier to develop and scale applications. Following are the few highlighted points which make microservices special – 
  • Build services independently
  • Scale services autonomously
  • Use the best approach
  • Isolate points of failure
  • Deliver value faster


What is Azure Service Fabric?


Azure Service Fabric is a distributed system solution that layers and orchestrates microservices and containers on top of a computer cluster (scale set of VMs). It is mature and reliable Platform as a service (PaaS) service that build and deploy highly scalable microservices-based cloud applications.

In fact, the Azure Service Fabric enable transforming monolithic applications to microservice architecture, tightly coupled to loosed coupled. It is the framework to rapidly break down a complex business problem into reliable and scalable stateless or stateful microservices.

Basically the apps which has been created the Azure Fabric environment are composed of distinct microservices that communicate with each other through service APIs (application-programming interfaces). Here Developers and administrators can avoid complex infrastructure problems and focus on implementing mission-critical, demanding workloads.

What are differences between Availability Sets and Availability Zones?


In the context of Availability, it is the annual percentage rate that a system is functional and working, on that basis Azure defines and offers SLA for the Virtual Machines.

A group with two or more VMs in the same Data Center is called Availability Set, which make ensures that at least one of the virtual machines hosted on Azure will be available if something happens, the configuration offers 99.95% SLA.

In terms of Availability zones, we get a next level of VM high-availability due to different physical locations within an Azure Region. Here it can be deployed using one or more VMs in an Azure Region, the configuration offers 99.99% SLA.

In brief, the Availability Sets allow workloads to be spread over multiple hosts, racks, but still remain at the same data center. But the Availability Zones allow workloads to be spread over multiple locations, so you automatically don’t care on which host the workload will run.

What are differences between Stateless and Stateful services in Azure?


HTTP is a stateless protocol, which means, the server doesn't have to maintain and save the activity of the connection between itself and the client. Whereas Stateful protocols, would maintain the connection and activity of that user for a long time, so that server-to-client communication can be possible further without having to wait for a cookie or cache check.

A Stateless service is one where there is no state maintained within the service across calls. Any state that is present is entirely disposable and doesn't require synchronization, replication, persistence, or high availability. But, a Stateful service is one that must have some portion of the state kept consistent and present in order for the service to function. 

Azure Service Fabric is a microservices platform that gives every microservice (or container) a unique name that can be either Stateless or Stateful. In context of microservices, Stateless microservices don’t save anything, handle the request and return the response. Whatever they required to know is supplied on the request and forget the same once request is complete. At the other end, Stateful microservices hold saved data in a database that they read from and write to directly. 

For example, in Stateless case, if we have an image as an input, and we need the thumbnail for it. We are not going to capture any state of the image because the further request to the service would be a different picture, and will return the thumbnail.

Whereas, in case of a Stateful service, if a user visits the shopping cart, and he adds different products on the website. Next, if he moves on to different pages, here need to retain the shopping cart state using a relational, or a NoSQL database etc.

Stay in touch with us for further post !


In the simple form, if the user activity is lost (or unknown) before each request Stateless, while if the user activity is known, or previous data is known then the protocol is Stateful.

2 comments: