Azure Deep Dive Interview Questions
To make you understand the question-and-answer background along with all the details, after answers to the question, you have “Deep dive” section that explains the concept and background behind the short answer with detailed information. This will help you to understand the concept, provide you more information, so depending on the situation in interview you can explain the diagrams, concepts with more confidence.
Dive Deep into Azure Interview Questions
- What is cloud computing?
Cloud computing is basically a great level of abstraction over the infrastructure that can help you to focus more on your business logic without having to worry about hosting or infrastructure needs. This is the general term used for delivering hosted services over the internet. In cloud computing the computing resources are provided “as a service”. Just like Electricity, you pay to electricity provider and get the electricity at your home and for this, you don’t need to create any infrastructure. Cloud computing provides you with computing resources as a service where you don’t have to focus on infrastructure requirements.
Deep dive:
Let’s say I wish to develop a banking application using asp.net MVC. When we think about developing a new enterprise-level web application, the first thought comes to mind is how am I going to host it? So this
leads to the list of below requirements –
1. Servers hardware with server OS for various environments like Dev, QA, UAT, Production, Failover
2. Database servers and licenses
3. Source control and version management server and licenses
4. Dedicated office space
5. Power and cooling mechanism
6. Network and bandwidth configurations and setup
7. Developer workstations with client OS like Windows 7/8/8.1/10 and their licenses
8. Developer tools like Visual Studio and SSMS and so on.
9. Team of experts to manage this entire setup
This is the bare minimum list for one application and this is the problem. Our main aim was to develop
banking application but we did not think about
– Who will be users of my application
– What functionality my application will support
– Whether to allow 3rd party payment or not and so on.
So we did not think about application business logic but got dragged into infrastructure requirements and
this is the problem. Being an application development company we should be focusing on application-specific things.
So companies like Microsoft, Google, Amazon, etc. came up with the concept that if you are an application development (or service provider) company you just need to focus on your application and data but all your infrastructure needs will take care of. So application Development Companies don’t have to worry about hardware, licenses, OS management, backup, etc., and just need to pay for what they use. This is nothing but cloud computing and why the cloud came into existence.
2. What are the benefits, and advantages of cloud computing?
– Scalability
– Agility
– High Availability
– Pay as you go
– Moving from Capex to Opex
– Fault Tolerance
– High Response Time
– High Bandwidth
– Low Latency
Deep dive:
Scalability
It can be termed as the ability of the application to handle a growing amount of work without degrading performance. Basically, the system can grow without limits based on demand. Scalability is of 2 types –
1. Vertical or Scale Up – In this type of scaling configuration we increase the capacity of the existing hardware or machine. For example, if you are having a desktop with 4GB RAM and tomorrow you increase the RAM of your machine to 16GB then this is nothing but vertical scaling.
2. Horizontal or Scale Out – In this type of scaling configuration we increase the count of machines without increasing the capacity. For example, if you have a server of 8GB RAM and tomorrow you put another server of the same RAM and so on. When you do horizontal scaling essentially you increase the computing power in parallel so you get better performance. This is horizontal scaling.
Agility
The system is easy to evolve as business changes. This defines a degree to which your application can be
evolved/ changed/ modified depending on the business or requirement changes.
High Availability
Basically, this defines how much your application is available for its end users. Customers or users will
always expect zero downtime of the application. High availability means your application can withstand
below are common types of downtime scenarios –
– Hardware failures
– Application updates
– Configuration changes
– OS update restarts
– Heavy load restarts
Pay as you go
This is the most lucrative benefit of the cloud. With the cloud, you pay only for what you use. If you are not in need of resources, you can free them/ de-allocate them and you are not charged for it. The billing is absolute “per minute” billing giving you more saving on cost.
Moving from Capex to Opex
This stands for moving from “Capital Expenditure to Operational Expenditure”. Companies today don’t wish to invest in hardware as hardware is changing at a rapid pace. Therefore, instead of investing in hardware costs which may become obsolete after a certain time span, they are more interested and willing to pay operational costs on a monthly, yearly basis. This is nothing but the Capex to Opex. As Microsoft Azure is a “Pay as you go” model it becomes easy to move from Capex to Opex.
Fault Tolerance
It is the ability of the system to continue operating at full capacity and fully functional in the event of failure of some of its components. This simply means, if I have a web application and interact with a database then if the database is not accessible/down still my web application will be available for users. This means your application is fault tolerant.
3. What is Microsoft Azure
Cloud computing is the concept and this concept has been implemented by many companies. For example, Amazon implemented it and named their product as Amazon EC2 or Amazon web services, Google call it Google App Engine, and so on. Along similar lines, Microsoft also created a product based on the cloud computing concept and it is called “Microsoft Azure”. So MS Azure provides a platform with cloud computing capabilities so that you can get all the benefits of cloud computing.
Deep Dive:
Here while answering this you can also start with the answer to the question “What is cloud computing” and then explain the above paragraph.
The summary of these terminologies is as follows –
1. IaaS – Infrastructure as a Service – a set of infrastructure level capabilities such as an operating system, network connectivity, etc. that are delivered as pay for use services and can be used to Host applications.
Example, Azure VM, VNET.
2. PaaS – Platform as a Service – is about abstracting developers from the underlying infrastructure to enable applications to quickly be composed. This is specifically for developers who are willing to Build applications without worrying about management of hosting environment at all. Example, Azure Cloud services, Azure Web Apps, Storage, SQL Azure Database and so on.
3. SaaS – Software as a Service – applications that are delivered using a service delivery model where organizations can simply Consume and use the application. Typically, an organization would pay for the use of the application or the application could be monetized through ad revenue.
Example, Office 365, Gmail, Saleforce.com, SharePoint online, CRM online and so on.
Deep Dive:
Following diagram explains important difference between IaaS, PaaS and SaaS.
As you can see from the above diagram, more you go towards right hand side of the graph things that you manage become lesser and lesser. In SaaS typically you don’t manage anything and just consume. At the max you can make look and feel or configuration changes but everything rest is managed by Microsoft Azure for you.