Several interesting things were in focus during my days at API Days Paris. Something that was discussed everywhere was cloud based architecture and solutions. Everything from how to guarantee security for our APIs and applications to where the community and API creation is heading, and the potential in today’s API landscape. Something that the large corporations like Microsoft and Amazon discuss is Serverless Architecture, so I will use this article to explain more about it, and how it works.
What is Serverless Architecture?
Serverless Architecture, also known as Function as a Service, is a design pattern where applications host a third party, which eliminates the need for server software and hardware management for the developer. The applications are divided in single functions that can be called and scaled individually.
Why Should we use Serverless Architecture?
Having an application on the web today often mean managing some form of server infrastructure. A virtual or physical server often needs to be managed as well as the operating system and processes for build, deploy, and installation needed for the application to run. Using a virtual server from Microsoft or Amazon eliminates the physical hardware issues. If you for example get a dynamic plan with Azure functions it will scale up and add more servers to manage the load for the application. Compare for example a regular day with Black Friday for e-commerce. Although a regular day will work fine with for example 4 machines, the pressure during Black Friday will need more to match the load from the customers. Azure functions and AWS lambda handle this and scale up and down depending on the needs of the application. You can feel comfortable with the load issues, and in stead focus on creating new functionality.
Who Should use Serverless Architecture?
If you have a new project, or a small number of functions you want online, it’s a great idea to go for serverless. As a developer you don’t need to focus as much on server infrastructure but can focus more on the application itself. For larger and more complex applications it can involve a lot of work and issues to migrate everything to a Serverless Architecture, and it might even not be possible. Although, it might be meaningful to review the application and check if certain parts are replaceable and over time migrate those to the cloud.