Serverless Computing describes an execution environment where the environment is set up and managed for the developer by the cloud provider. It enables developers to build applications faster as there is no need to maintain infrastructure.
With Serverless applications, the cloud service provider automatically provisions, scales and manages the infrastructure required to run the code. As a developer, one should focus on writing code (Azure Functions ) or connecting/configuring components in a Visual Editor ( Azure Logic Apps) without worrying about the underlying infrastructure.
Understanding Serverless Computing :
In understanding the definition of serverless computing, it is important to note that servers are still running the code. The serverless name comes from the fact that the tasks associated with infrastructure provisioning and management are invisible to the developer and are maintained by the Cloud Provider.
No Infrastructure Management: Using fully managed services enables developers to avoid administrative tasks and focus on core business logic. With a Serverless platform, you simply deploy your code and it runs with high availability.
Dynamic scalability: With serverless computing, the infrastructure dynamically scales up and down within seconds to match the demands of any workload.
Faster time to market: Serverless applications reduce the operations dependencies on each development cycle, increasing development teams’ agility to deliver more functionality in less time.
More Efficient use of Resources: Shifting to serverless technologies helps organizations reduce TCO and reallocate resources to accelerate the pace of innovation.
Different Categories Offering Serverless Solutions :
- Workflows and Integration
- AI and Machine Learning
Serverless Services Offered under Each Category :
Serverless Functions: Execute Code is written in the language of our choice. Event-Driven Compute Experience. Scale on-demand and pay only for the time the code is executed.
Example : Azure Functions
Serverless Application Environments: Run and Scale Web, Mobile, and API applications on the platform of our choice in a highly productive managed environment.
Example : Azure App Service
Serverless Kubernetes : Elastically Provision pods ( Deployable Objects) inside container instances that start in seconds without the need to manage additional compute resources.
Example : Azure Kubernetes Service
Workflows and Integration :
Serverless Workflow Orchestration: Integrate data and apps instead of writing glue code between disparate systems. Provides low code/no-code platform development platform where we can use our own API's, Serverless Functions, or out-of-the-box SaaS connectors like SalesForce, Office365, Dropbox, etc.
Example : Azure Logic Apps
Serverless API management : Publish, secure, transform, maintain and monitor APIs . A fully managed service that offers a usage model designed and implemented to be an organic fit for serverless applications.
Example : Azure API Management
Serverless Messaging : Messaging Services on Azure provide interconnectivity between components and applications running in different programming languages with in the cloud . We have messaging services for event based applications and Queues/Topics to send/receive messages for asynchronous communication and loosely coupled solutions.
Example : Azure Service Bus , Azure Event Grid
Relational Database Serverless: Simplifies performance management of Relational Databases. Automatically scale the database compute resources based on workload demand and pay only for what we use. Provision to automatically pause the database and pay only for storage during inactive thereby reducing the cost.
Example: Azure SQL Database
Non Relational Database Serverless : Globally Distributed multi model database service which is massively scalable.
Example: Azure Cosmos DB
Azure Storage Serverless: Can be used to build static web applications and massively scalable storage for unstructured data. Leverage storage events to respond to operations on blobs with multiple serverless operations. These blob events are pushed through the event grid to subscribers using Azure Functions, Azure Logic Apps, or their own custom HTTP listener.
Example : Azure Blob Storage
AI and machine learning for Serverless :
Infuse serverless applications with ready-to-use AI and machine learning algorithms. Improve productivity and reduce costs with autoscaling compute and DevOps for machine learning.
Cognitive computing: Enable the serverless app to see, hear, speak, understand and interpret your user needs through natural methods of communication using APIs.
Example : Azure Cognitive Services
Conversation Bots : Build intelligent bots that interact naturally with your users through channels such as text/SMS , skype,Microsoft Teams , Slack,Office 365 and Twitter.
Example : Azure Bot Services
Machine Learning Models : Build , Train and Deploy Models on the cloud.
Example : Azure Machine Learning
CI/CD for Serverless: Unlimited, cloud-hosted private git repos . Easily Setup Continuous Integration / Continuous Delivery.
Example : Azure DevOps
Azure Serverless Monitoring: As serverless eliminates traditional infrastructure management tasks, it is more important than ever that developers have the right instrumentation in place to help debug serverless apps.We need to collect,analyse and act on telemetry from your cloud and on premise environments to maximise the availability and perfomrance of our apps.
Example : Azure Monitor
Azure Serverless Analytics : Easily develop and run massively parallel real time analytics on multiple streams of data ,Quickly build real time dashboards.
Example : Azure stream Analytics , Power BI