This blog is an extraction of the webinar “Go Serverless. Build Apps Faster and Stop Worrying About Infrastructure” presented by Raman Sharma, Sr Product Marketing Manager at Microsoft Azure.
Evolution of Application Platforms
In an era where cloud computing is soaring, application platforms play an important role in integration scenarios. Today, from a small start-up to large enterprises depend on applications, there’s a clear relationship between application platforms and values it provides to the business. We are steadily moving from On-Premise to IaaS to SaaS to PaaS and to go Serverless. Finally, when you have made the decision to move to cloud services for your application deployment, it is of key importance that you clutch the essential differences between the core categories of the cloud services that are available in the market.
When you implement IaaS, it constitutes resources that are highly scalable and automated, along with network capability and cloud storage which can be self-provisioned, metered, and available on-demand. Having said that, PaaS is a complete development and deployment environment in the cloud, with resources that enable you to deliver everything from simple cloud-based apps to sophisticated, cloud-enabled enterprise applications. It is a true abstraction of infrastructure challenges and helps to build next-generation apps without worrying about any hardware components, you can just concentrate on your business logic and code.
What is Serverless?
It is an abstraction of servers, which means complete freedom from provisioning, managing or scaling any underlying infrastructure. Serverless architectures make your work simple, you just deploy your code and it runs with high availability. Serverless compute scales from nothing to handle tens of thousands of concurrent functions almost instantly (within seconds), to match any workload and without requiring scale configuration—it reacts to events and triggers in near-real time.
Another important factor is micro-billing, which means you pay only for what you use. Which includes the number of times your code gets executed and the number of resources your application utilizes.
Benefits of going Serverless
You get to manage apps not servers. For example, if you are an Insurance company, you can spend your creative energy on your customer service and potentially concentrate on claim approval process rather than setting up servers and managing infrastructure which is not in your domain.
Simplifies your DevOps processes, since you don’t have to worry about the scale and availability of your servers, the effort you put into DevOps goes down significantly. By the virtue of adapting Serverless architectures, you can design your application in such a way that adding incremental functionality to large systems is relatively easy. Because incremental functionalities are always built as standalone pieces of code which can be spun up on demand. This decreases the complexity of adding new functionalities to existing apps.
Time saved on non-core activities in software development and time to market is made faster. Additionally, the experience to get started and go Serverless is quick and friction-less, you are able to reiterate and experiment really quickly.
What Azure Provides
Azure provides 3 core key services for Serverless technologies
- Azure Functions – Code focused experience, first you write your code and then you specify in what event these codes need to be triggered. You don’t have to be worried about where the code is running, how many instances of computing will have to be spun up to respond to multiple requests for that code. You can use bindings to massively reduce your code to seamlessly communicate with other services.
- Logic Apps – Visual design experience for creating Serverless workflows in the cloud. You can sketch together your Serverless functions, different API’s from other sources or any other first or third-party services that you might want to consume. You can create business process workflows that mirror your operations within your organizations.
- Event Grid (Preview) – Manage Events that will eventually trigger the code inside the Functions or the Logic Apps.
In addition to these 3 core services, Azure also provides other fully managed Serverless services while building production applications. Things like storage, database, identity management, security, IOT services or even analytics are available in Azure.
What is the experience for a developer
It is obvious that with Serverless we are in a world where we don’t necessarily have access to a physical machine to simply log in to get started. Development experience for Serverless application is the core for Azure, therefore you have end-to-end world class development experience using Visual Studio. Different Serverless components in Azure makes your operations DevOps friendly and integrating with your CICD pipeline easily. Visual debugging in Logic Apps helps you to easily diagnose where the problem would have happened in your logic.
Examples:
Real-Time stream Process: You have a series of IOT devices, capturing and sending data to a central location and do some processing, collate and transform into a different format and store it into a different database. All of these processes are easily achievable in Azure Serverless Function in one go.
In any organization, you perform mundane operations on regular time interval like every 15 minutes you clean up a database to remove duplicate entries. You would not want to spin up a server to run an application to do this every 15 minutes and then goes away idle. This will help you to do time-based activities.
Similarly, you want to develop backend apps for your IOT solutions or even for your web apps, Serverless architecture is best used in these cases. Because your traffic in these applications are very spiky, where you are not sure if you get 1 hit or a million hit in a day. This means you will not need to worry about the scalability issues at all.
Bots are also good examples of event-driven processing, every question that comes into a bot is an event and response to the events go after processing, these processes happen in a Serverless environment.
You can view the demo presented by Jeff Hollan on “Go Serverless: Build Apps Faster and Stop Worrying About Infrastructure” by registering here.
Serverless360
Serverless360 is a simple platform to manage and monitor Serverless components better. It is built keeping one thing in mind “How best we can solve the challenges of managing Azure Serverless services”. Our goal is to make life easy for anyone who is using Azure Serverless services. At a very high level, we call Serverless360 the “One Platform for Operations and Monitoring Azure Serverless services”.