1 - What is your understanding about cloud computing?


Cloud computing is an abstraction for servers that are running on a specific datacenter of some cloud provider such as Azure, AWS, or GCP. It allows to create and manage computer resources on demand like: data storage, virtual machines, message brokers, etc… All of these capabilities are possible without managing any kind of physical infrastructure.

2 - What is the meaning of PaaS, SaaS, and IaaS?


Infrastructure as a Service (IaaS) is an instant computing infrastructure, provisioned and managed over the internet. e.g virtual machines, firewalls, networks, hard disks, etc...

PaaS (Platform as a Service) provides a ready to go environment, which typically includes: an operating system, a runtime, database, web server. Technically, it is a layer on top of IaaS. e.g  Microsoft Azure Sql, Azure Cloud Services, etc…

SaaS (Software as a Service) is a complete software solution which you purchase on a pay-as-you-go basis from a cloud service provider. e.g: Gmail, Office365, Dropbox

3 - What is Serverless computing?


Serverless computing enables developers to build applications faster by eliminating the need for them to manage infrastructure. With Serverless applications, the cloud service provider automatically provisions, scales and manages the infrastructure required to run the code. 

e.g Azure Cloud Functions

4 - What is Azure Resource Group?


Resource groups (ARG) is an approach to group a collection of assets in logical groups for easy or even automatic provisioning, monitoring, and access control, and for more effective management of their costs. The underlying technology that powers resource groups is the Azure Resource Manager (ARM).

5 - How can we scale a system using Microsoft Azure Cloud?


There are two strategies to scale a system:

Vertical Scaling or Scaling up is typically adding additional resources to an existing physical or virtual server. This includes adding CPU, memory, or storage resources.

Horizontal Scaling or Scaling out refers to the process of provisioning additional servers. This involves adding new servers to run business-critical applications that share the load of existing servers serving out the application. Using load balancers and other technologies, the new servers are added to the pool of resources and then traffic is routed to them accordingly.

6 - Explain Azure App Services


Azure App Service is an HTTP-based service for hosting web applications, REST APIs, and mobile back ends. It adds the power of Microsoft Azure to your application, such as security, load balancing, autoscaling, and automated management.

7 - What is Kudu App Service?


Kudu is the engine behind git deployments in Azure App Service. It is useful for capturing memory dumps, looking at deployment logs, viewing configuration parameters, managing extensions.

8 - Explain the different deployment models of the cloud?


Private Cloud consists of computing resources used exclusively by one business or organization. The private cloud can be physically located at your organization’s on-site datacenter, or it can be hosted by a third-party service provider. But in a private cloud, the services and infrastructure are always maintained on a private network and the hardware and software are dedicated solely to your organization. 

Public Cloud  are owned and operated by a third-party cloud service provider and delivered over the Internet. Where all hardware, software, and other supporting infrastructure is owned and managed by the cloud provider. In a public cloud, you share the same hardware, storage, and network devices with other organizations or cloud “tenants.”

Hybrid Cloud combine private clouds with public clouds, so organizations can reap the advantages of both. In a hybrid cloud, data and applications can move between private and public clouds for greater flexibility and more deployment options. For instance, you can use the public cloud for high-volume, lower-security needs such as web-based email, and the private cloud for sensitive, business-critical operations like financial reporting.

9 - What is Azure Service Fabric?


Azure Service Fabric is a distributed systems platform that makes it easy to package, deploy, and manage scalable and reliable microservices and containers. Apps that are created in the Azure Service Fabric environment are made up of granular microservices, small chunks of code which are uploaded and run separately.

10 - Single vs Multi Tenant architecture?


In a Single Tenant architecture each customer has his own independent database and instance of the software. There are no sharing resources.

Key Points:

  • Security - Data are isolated per customer, so if there is any security issue it will impact only a single customer.

  • Reliability - Performance issues of a single customer does not affect other's.

  • Migration and Backups - Easier to migrate or restore data of a single customer.

In a Multi Tenant architecture each customer shares the software application and the database. This solution ensures data isolation between tenants in the application site.

Key Points:

  • Pricing - Cheaper solution since we are sharing costs between all customers.

  • Maintenance - Updating and managing a shared application it's easier.

  • Efficiency - Easier to onboard new tenants (no need to provide a new environment) and multi-tenancies operate at maximum resource usage, which makes for optimum efficiency.

11 - How to achieve zero downtime in App Service deployments?


The easiest way to achieve zero downtime when deploying an App Service is to have multiple slots and swap between them. For example, having a canary and a production slot and redirect a percentage of the production traffic to the canary slot. If the everything is working well, then swap the 2 instances and redirect 100% to the production slot, which now contains the latest version of the app.