Mastering Azure Serverless Computing
eBook - ePub

Mastering Azure Serverless Computing

Design and Implement End-to-End Highly Scalable Azure Serverless Solutions with Ease

  1. English
  2. ePUB (mobile friendly)
  3. Available on iOS & Android
eBook - ePub

Mastering Azure Serverless Computing

Design and Implement End-to-End Highly Scalable Azure Serverless Solutions with Ease

About this book

A comprehensive guide that will teach you to build and implement Azure serverless solutions Key Features

  • Learn the Function as a Service (FaaS) offering from Microsoft Azure
  • Build Enterprise-grade workflows and integration using Azure Logic App
  • Build event-driven Serverless solutions using Azure Event Grid
  • Use Azure Service Bus to facilitate messaging between Azure Serverless components
  • Implement advanced Serverless services such as Azure Serverless SQL Database and Azure Serverless Kubernetes

  • Description
    The book starts with the basic concepts of Serverless Computing, its evolution, characteristics, and benefits. The next set of chapters is based on Azure Function as a Service (FaaS) programming model where you will gain proficiency in creating Serverless Azure Function, which is the basic unit of Azure Serverless Computing. Furthermore, the book focuses on building Azure Serverless Messaging, Integration, and Workflow that facilitates communication between components in the Azure Serverless ecosystem. Azure Logic Apps, Azure Event Grid, and Azure Service Bus are explained in detail. You will also work with advanced Azure Serverless services such as Azure Serverless Database and Azure Serverless Kubernetes that are essential for building highly scalable (at runtime) next-generation Serverless applications. Towards the end, the book focuses on reference architectures for Serverless Computing scenarios. By now, you will be proficient in working with Azure Serverless components, and their integration and can design and build an end to end Azure Serverless solution. What will you learn
  • Design and implement Serverless workflows using Azure Logic Apps
  • Design and implement Integration Services using Azure Event Grid
  • Learn how to build Messaging Services on Azure Serverless platform
  • Work with Azure Serverless SQL database
  • Get familiar with Azure Serverless Kubernetes Architecture

  • Who this book is for
    Anyone familiar with Cloud Fundamentals can use this book to get upskilled in Azure Serverless Computing and become an expert in it. Architects and Developers proficient in Microsoft Azure can use this book to learn Azure Serverless Computing and apply the knowledge gained to design and build solutions in this area. Table of Contents
    1. Introduction to Azure Serverless Computing
    2. Azure Functions
    3. Azure Durable Functions
    4. Azure Logic Apps
    5. Azure Event Grid
    6. Azure Service Bus
    7. Azure Serverless SQL Database
    8. Azure Serverless Kubernetes
    9. Designing Azure Serverless Solutions
    10. Implementing Azure Serverless Solutions About the Author
    Abhishek Mishra is an Architect with a leading Fortune 500 software multinational company and has deep expertise in designing and building Enterprise-grade Intelligent Azure and.NET based architectures. He is an expert in.NET Full-stack, Azure (PaaS, IaaS, Serverless), Infrastructure as Code, Azure Machine Learning, Intelligent Azure (Azure Bot Services and Cognitive Services) and Robotics Process Automation. He has a rich 14+ years of experience working across top organizations in the industry. He loves blogging and is an active blogger on C# Corner. He has been awarded C# Corner Most Valuable Professional (MVP) - December 2018 and December 2019 two times in a row for his contributions to the developer community.
    He is an active speaker and delivers sessions on Azure. He has spoken in leading conferences like nopCommerce Days 2019 Mumbai, C# Corner Pune Conference 2019, Global Power Platform Bootcamp Pune, and many more. Your LinkedIn Profile: https://www.linkedin.com/in/abhishek-mishra-4890909

Frequently asked questions

Yes, you can cancel anytime from the Subscription tab in your account settings on the Perlego website. Your subscription will stay active until the end of your current billing period. Learn how to cancel your subscription.
No, books cannot be downloaded as external files, such as PDFs, for use outside of Perlego. However, you can download books within the Perlego app for offline reading on mobile or tablet. Learn more here.
Perlego offers two plans: Essential and Complete
  • Essential is ideal for learners and professionals who enjoy exploring a wide range of subjects. Access the Essential Library with 800,000+ trusted titles and best-sellers across business, personal growth, and the humanities. Includes unlimited reading time and Standard Read Aloud voice.
  • Complete: Perfect for advanced learners and researchers needing full, unrestricted access. Unlock 1.4M+ books across hundreds of subjects, including academic and specialized titles. The Complete Plan also includes advanced features like Premium Read Aloud and Research Assistant.
Both plans are available with monthly, semester, or annual billing cycles.
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, weโ€™ve got you covered! Learn more here.
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Yes! You can use the Perlego app on both iOS or Android devices to read anytime, anywhere โ€” even offline. Perfect for commutes or when youโ€™re on the go.
Please note we cannot support devices running on iOS 13 and Android 7 or earlier. Learn more about using the app.
Yes, you can access Mastering Azure Serverless Computing by Abhishek Mishra in PDF and/or ePUB format, as well as other popular books in Computer Science & Software Development. We have over one million books available in our catalogue for you to explore.

CHAPTER 1

Introduction to Azure Serverless Computing

Serverless Computing is the newest cloud hosting and execution model offered by cloud vendors. It is widely adopted by Cloud Architects to build highly scalable new generation cloud solutions. It is cheap and comes with a lot of useful features that classic cloud hosting models may not offer. Serverless Computing model is used by cloud giants like Microsoft and Amazon to build their in-house products.
Microsoft Azure offers an array of best in class Serverless offerings that help to build robust Serverless solutions. It offers integration and messaging services that help Serverless components interact with each other. You can build Enterprise-grade secured Serverless solutions with ease without putting much effort. Azure offers an excellent mechanism to monitor and diagnose these services.

Structure

In this chapter, we will discuss the following aspects of Serverless Computing in the context of Microsoft Azure:
  • Overview of Serverless Computing
  • Evolution of Serverless Computing
  • Characteristics of Serverless Computing
  • Benefits of Serverless Computing
  • A quick tour of Azure Serverless Computing Services

Objectives

After studying this chapter, you should be able to:
  • Understand the fundamentals of Serverless Computing
  • Serverless Computing Offerings from Microsoft Azure

Overview of Serverless Computing

Serverless Computing does not mean that no servers are hosting the application code. Application code cannot be hosted or executed without a server. In the case of Serverless Computing, application code always executes on a server. However, the server infrastructure, operating system, hosting, and execution environment is abstracted to you. You build the application code and deploy it to the Serverless environment. You need not worry about the underlying hosting and execution mechanism that is handled by the cloud vendor.
Serverless Computing sounds pretty similar to Platform as a Service hosting model. Just like the Serverless model, in the case of Platform as a Service model, you deploy the application code. You do not care about the underlying infrastructure and hosting environment. However, there are differences between both the hosting models.
In the case of Serverless Computing, the hosted application executes on demand. An event triggers the application code to execute in the Serverless environment. You get billed for the duration when the application code executes and the server resources consumed. Serverless applications can scale on demand. It is the responsibility of the hosting platform to scale the application. You need not configure any scaling settings. You have lesser control over the hosting environment and the corresponding settings in the case of Serverless applications.
The application code is always active in the case of Platform as a Service model, and billing starts as soon as you commission the service. You configure the required settings to scale the application in this case.
Note: Serverless Computing abstracts the infrastructure from you. You need to write and deploy code to the Serverless environment. You need not worry about the underlying infrastructure, operating system, hosting and execution environment, and scaling requirements. All these are taken care of by the cloud vendor providing the Serverless service.

Evolution of Serverless Computing

Earlier during the On-Premises era, when there was no Cloud Computing, you used to build your code and host it on the physical servers. You used to procure the servers, networking infrastructure, operating system, and supporting software. You then set up the physical servers, network them, install the Operating System, and supporting software. The server set up used to take much time and involved capital expenditure.
There always existed a dependency on external vendors who manufactured and supplied the hardware and software. The time to procure the hardware and software always impacted the delivery timeline for the application. You always had a dependency on the infrastructure experts to set up the server and the hosting environment.
Once the application went into production, the support phase started. You maintained the application and the hosting infrastructure for as long as the application was in use. You kept applying all security and necessary patches to the Operating System and the supporting software. Whenever the hardware failed, you analyzed and fixed it. In case you could not fix the hardware, you replaced it. All these operational activities involved much expenditure. You remained busy in planning strategies to keep the infrastructure up and running.
The procured hardware was always hard to scale. In most cases, scaling was handled by adding more memory or storage or compute. To set up a horizontal scaling, you procured more physical hardware and software and worked on a load balancing strategy. All this again resulted in incurring the capital and operational expenditure.
The procured servers could not be disposed of easily when the application was no more in use. You always planned the server requirements properly to avoid over-utilization or under-utilization. Once you procure the server, you had to live with it.
Note: On-Premises hosting model involves a lot of capital and operational expenditure. Much effort goes into setting the environment up and keep it up and running. It takes time to make the application live as you spend much time in procuring and setting up the infrastructure. Earlier, there was no other option other than having the application hosted on On-Premises physical servers.
These pain areas of hosting the application code on On-Premises physical servers led to the evolution of Cloud Computing. Instead of procuring and owning the server and necessary hardware, there evolved a necessity to rent out the hosting infrastructure. With the advent of virtualization technologies, this became a reality. Virtualization experts started building massive data centers. They enabled virtualization on top of these data centers. Virtualization technology helped in spinning out multiple virtual systems on a data center. Each of these virtual systems had its operating system and software stack and networking capabilities like any other physical system. Virtualization experts named these virtual systems as Virtual Machines.
Technology giants like Amazon and Microsoft started using this virtualization technology. They procured massive data centers on which they hosted Virtual Machines. These Virtual Machines led to the evolution of Cloud Computing. They first hosted their products on their cloud. After a couple of years, they started renting out the Virtual Machines running on their data centers as Infrastructure as a Service offering.
Cloud Computing started with the concept of renting out compute, storage, and networking services to developers. Infrastructure as a Service happens to be the first offering provided by cloud vendors. Developers manage these cloud services using an interface, which is a web portal in most of the cases.
Note: Infrastructure as a Service model is all about renting out basic compute, storage, and network services to you over the internet. The cloud vendors rent out these Virtual Machines with your preferred Operating System installed. You configure the hosting environment on these virtual machines and host the application code on these Virtual Machines just like you host it on the On-Premises server.
You still build the hosting environment and manage the application code run time environment in case of Infrastructure as a Service hosting model. You still have to patch the Operating System and perform software upgrades on these Virtual Machines from time to time once the application is in maintenance mode. You still incur Operational expenditure. However, the capital expenditure for procuring the infrastructure is no longer there. You rent the infrastructure from the cloud vendor and start using it. It takes minutes to have a Virtual Machine up and running in the Infrastructure as a Service Cloud environment. So, the application goes into production faster as compared to the On-Premises hosting model. When the application is no more in use, you decommission the cloud hosting infrastructure. It takes minutes to decommission the Virtual Machine along with all necessary infrastructure services. You pay the cloud vendor for the duration you use the Virtual Machine.
The cloud vendors offer a wide range of Virtual Machines catering to your needs. They offer a variety of Virtual Machines categorized as Compute Intensive, Memory Intensive, Storage Intensive, or General Purpose in most of the cases. Based on the application requirements, you rent out the right type of Virtual Machine. You no more cared about the hardware faults for these Virtual Machines. They are taken care of by the cloud vendors. Based on the tenancy agreement, cloud vendors provide high availability for these Virtual Machines. High availability of the hardware is the responsibility of the cloud vendor. Not just Virtual Machines, the entire infrastructure required to run the application code is available on the cloud for rent. You can rent out different types of Storage and Networking components. Cloud vendors provide a wide variety of these components as well.
Servers and related infrastructure commissioned on the cloud are highly secured. Cloud vendors get their environment certified from different government and industry bodies across the globe. You never manage data security at the infrastructure level. Infrastructure security is the responsibility of the cloud vendors.
Note: Infrastructure as a Service approach is still widely accepted today. You can migrate the code from the On-Premises servers to Virtual Machines on the cloud and host it without any additional code changes. However, in this approach, you need to manage the Operating System, server software, and the hosting environment. Infrastructure as a Service approach involves operational expenditure to some extent.
You leverage Infrastructure as a Service hosting model to reduce dependency on the physical servers and hardware. However, still, you have a lot to manage. After spinning up the Virtual Machines on the cloud, you set up the hosting environment and then host your application code. This approach involves operational expenditure to some extent. Cloud vendors realized that they need to manage the underlying hardware infrastructure, Operating System, supporting software, and the hosting environment. Furthermore, you would host the application code without worrying about the underlying platform. These hosting aspects led to the evolution of the Platform as a Service hosting model.
In Platform as a Service hosting model, the cloud vendors provide an array of services that cater to your needs. You own the responsibility to build the application code, and the cloud vendors manage the hosting infrastructure and the execution runtime. Offloading infrastructure responsibility minimized operational expenditure to a greater extent. However, migrating an application code to the Platform as a Service model from the On-Premises hosting model is not that easy. It involves application code refactoring, and in some cases, revamping the application architecture. Platform as a Service hosting model is a popular choice for a newly developed application. You make the application cloud-ready during the development phase of the new application.
Platform as a Service model is very popular nowadays. Cloud vendors provide an excellent mechanism to monitor hosted applications. You set scaling configuration for your applications with ease. The hosted applications are highly available. Platform as a Service hosting model carries the legacy of Security Standard from Infrastructure as a Service era. Cloud vendors offer other necessary application components such as Database, Cache, Storage, Messaging Infrastructure, and many more as Platform as a Service offering. All these offerings attribute to the popularity of Platform as a Service hosting model.
You have no control over the underlying server infrastructure and the Operations System. However, you can configure the hosting environment to a great extent.
Note: Platform as a Service approach is the most popular hosting model today. In this hosting model, cloud vendors manage the servers and the underlying infrastructure. The cloud vendor also takes care of the hosting and the execution environment. You build the application code and hosts it in the Platform as a Service environment. You need to set scaling options for the services, and the underlying platform managed by the cloud vendor scales the application.
The cloud vendor bills you as soon the service starts running. The billing continues even if the application is not in use. Still, you have to configure scaling for these services. However, the underlying platform managed by the cloud vendor does the scaling job based on...

Table of contents

  1. Cover Page
  2. Title Page
  3. Copyright Page
  4. Dedication
  5. About the Author
  6. Acknowledgement
  7. Preface
  8. Errata
  9. Table of Contents
  10. 1. Introduction to Azure Serverless Computing
  11. 2. Azure Functions
  12. 3. Azure Durable Functions
  13. 4. Azure Logic Apps
  14. 5. Azure Event Grid
  15. 6. Azure Service Bus
  16. 7. Azure Serverless SQL Database
  17. 8. Azure Serverless Kubernetes
  18. 9. Designing Azure Serverless Solutions
  19. 10. Implementing Azure Serverless Solutions