Hello. In this lesson, I'll show you what Azure Functions are, how they compare to other application architectures for developing solutions, and some common scenarios where you may implement Azure Functions. Azure Functions were designed as a serverless development environment. This is different from traditional applications where developers build web applications that run on servers, usually 24 hours a day, seven days a week. These full -time web applications have to be provisioned on a specific server. Therefore, their hardware requirements are fixed and limited. Azure Functions are designed as a serverless architecture, meaning they can scale on Microsoft's Azure hardware and only are charged while they're executing. Serverless environments are very highly scalable. Because you're only paying while the function is executing, it allows developers to build things such as batch processes that only run a few times a month, or applications that need to scale heavily under high -load scenarios and build those in a way that they are only billed while they are executing. This is creating a new type of environment where individual services comprise an application. Rather than building a traditional monolithic application where all of the code is in one set of functions, you are able to divide up or disassemble your application into individual components that could run independently and you're only billed while they're executing. These serverless functions are also very flexible because they can be built in a variety of different popular programming languages. There is no limit on Azure Function development code. All of the application languages that are supported by traditional web applications or app services are also supported by functions. That includes things such as . NET, JavaScript, and Java -based applications. Finally, you will also see that complex processes can be defined through a chain of Azure logic applications or function applications that implement something called durable functions. Durable functions do not have to execute and finish in one step. They can sit and wait for other processes to complete, or they can sit and wait for human approvals to allow them to proceed. So durable functions also allow developers to implement business logic and perhaps increase scalability or performance through using things like parallelism in their backend processing. A common scenario for using a function application would be as part of a backend service of a public web application. It is common for services to be delivered to web servers through backend systems called APIs. Building a collection of function apps and exposing those as an API would allow applications such as web applications or smartphone applications to call these functions and give programmers and their corresponding applications access to the appropriate data. In this scenario, you can see a single page application running in a traditional Azure environment and accessing static data from a storage account. When this application needs dynamic data such as the contents of a user profile or the items that are available for purchase, the web application calls the API management server. The API server then is exposing a collection of function applications to provide services to the web application such as find all products. You can see the function app could interact with the Cosmos DB, retrieve that data, and send that back to the web application as a response to that function call. An alternative example of using functions is for developers to build backend services. In this case, you can see devices depositing new records into an event hub. This could be something like a scanning device saying that a product has arrived or a product has been delivered. When you track these events in an event hub, you can trigger the execution of function apps. This means that no user had to be involved in this process. When the event hub receives a new event, you can set up a trigger to execute the function app automatically and perform backend tasks such as manipulating items in a Cosmos database or manipulating records in a storage queue. Stay tuned for the next lesson where I will show you how to develop Azure functions in the Azure portal. Thanks for watching.