Serverless architecture is a software design pattern in which applications are hosted by a third party provider. Hence, there would be no need for you to take care of any server software and hardware management tasks. Apps tend to be broken up into distinctive functions in this system, and can be scaled and invoked individually.
Why Serverless Architecture?
Hosting a software application on the web typically involves having to manage a certain type of a server infrastructure. This ideally implies to a physical or virtual server that has to be managed, as well as the operating system and other web server hosting procedures needed for your applications to run. By using a virtual server from a cloud provider like Microsoft you can eradicate physical hardware concerns. However, even after doing so, a level of management of the operating system and the web server software processes would be needed.
While using a serverless architecture, you can put your full focus on the individual functions in your application code. Microsoft Azure Functions take care of all the physical hardware, virtual machine operating system, and web server software management. On the whole, you simply need to worry about your code, in such an approach.
How does Serverless or FaaS Differ from PaaS?
PaaS or Platform as a Service does offer benefits similar to the Serverless ( or Function as a Service or FaaS) system. They also eradicate the need of managing the server software or hardware. The key difference between them is in the manner you compose and deploy your application, and its ultimate scalability.
With PaaS, your application would be deployed as a single unit and shall be developed by using some type of a traditional web framework like Flask, Ruby on Rails, Java Servlets, ASP.NET, and so on. Scaling is only done at the whole application level. You may opt to run several instances of your applications to manage the added load.
When it comes to FaaS or serverless systems, you get to compose your application into autonomous, individual functions. Each of these functions is hosted by the relevant FaaS provider and can be scaled automatically seamlessly, as function call frequency decreases or increases. This turns out to be quite a budget-friendly way of paying for computing resources. You shall only have to pay for the times your functions get called, and do not have to pay to have your application always on and waiting for requests on so several distinguished instances.
Synapse SQL on-demand is a serverless query service that would allow you to run SQL queries on files placed in Azure Storage. With its assistance, you shall be able to:
- Shrink or grow compute power within a dedicated SQL pool, without having to move data
- Pause compute capacity while leaving data intact, and hence only pay for storage
- Resume compute capacity during operational hours
Azure SQL Data Warehouse (SQL DW) is built on the foundation of SQL Server, and runs as a part of the Microsoft Azure Cloud Computing Platform. Much like any other Cloud MPP solution, SQL DW also separates compute and storage, subsequently billing for each separately. SQL DW represents compute power in the form of DWUs or data warehouse units, while subtracting physical machines. This allows you to scale compute resources as per your requirement, with absolute ease and in a hassle-free manner.
What is SQLOD?
SQLOD is a query service over the data in your data lake is a service per consumption or per demand, and you do not need to resume or pause functions here. In SQL DW you may pause and resume, as well as insert, update and delete. SQLOD essentially is elastic and resilient, which basically means that it can auto-scale the node of resources if needed by the engine while querying your file. Moreover, if there is any failure in any node it recovers without any user intervention.
What is supported on Serverless?
- Full SELECT surface area is supported, including a majority of SQL functions
- CETAS – CREATE EXTERNAL TABLE AS SELECT
- DDL statements related to views and security only
- They work with the help of DQP or Distributed Query Processing and Compute Node.
DQP is responsible for optimizing and orchestrating distributed execution of user queries by splitting them into smaller queries that shall be executed on Compute nodes. The Compute Nodes, on the other hand, will execute the tasks created by the DQP. The more knowledge the serverless SQL pool has about your data, the swifter can execute queries against it.