A Guide to Serverless Architecture
Tags: serverless, architecture, machinelearning, beginners
Published: 2022-05-17 21:31:51

Originally posted at [Serverless](https://www.serverless.com/blog/serverless-architecture)

![](https://cdn-images-1.medium.com/max/3200/0*OmGpYMcYuEUxCdNF.png)

## What is Serverless?

Serverless uses the existing managed services available through the public cloud not just as a means to host an application but becomes an intrinsic part of the application and replaces manually configured infrastructure and sometimes even entire libraries of code with the managed services.

Contrary to what the word “Server-less” would have you think, servers still exist with serverless! With a serverless development model, developers are able to build, deploy and run applications without having to manage servers. Once deployed, a serverless application will respond to traffic and automatically scale up or down as needed.

## What is Serverless Architecture?

A web application can be built by using a collection of managed services to provide for all parts of an application such as a service to receive incoming network requests, a compute platform that just accepts code with no maintenance to execute upon those network requests, a fully managed datastore to store and retrieve data, additional services such as object storage to store files, messaging services to allow for queues, pub/sub and streams, etc. All with 0 management overhead and pay per usage billing.

## What is an example of Serverless Architecture?

A [REST API](https://www.ibm.com/cloud/learn/rest-apis) is the easiest example to provide. Assuming AWS as the cloud vendor, a Serverless REST API consists of API Gateway for receiving HTTP requests, Lambda functions that receive these requests and execute upon them and [DynamoDB](https://aws.amazon.com/dynamodb/) as a datastore to store and retrieve data from. There are many other use cases, all with their collection of managed services.

## Joot’s Serverless Architecture

The image below shows the architecture [Joot](https://getjoot.com) uses for image processing. All of Joot’s users are managed using [Cognito](https://aws.amazon.com/cognito/). [Amplify](https://aws.amazon.com/amplify/) was used as the library for the web app. [Lambda](https://aws.amazon.com/lambda/) was used to coordinate the user authentication. When a user comes into the system, they upload an image which is saved directly into the [S3](https://aws.amazon.com/pm/serv-s3/?trk=fecf68c9-3874-4ae2-a7ed-72b6d19c8034&sc_channel=ps&sc_campaign=acquisition&sc_medium=ACQ-P%7CPS-GO%7CBrand%7CDesktop%7CSU%7CStorage%7CS3%7CUS%7CEN%7CText&s_kwcid=AL!4422!3!488982706719!e!!g!!aws%20s3&ef_id=CjwKCAjwrqqSBhBbEiwAlQeqGr0wZbgCMQ0ZOUgIMTL_e75nzfcYYBsWBAwJEb06MoOULmkaxAI3YBoCAHgQAvD_BwE:G:s&s_kwcid=AL!4422!3!488982706719!e!!g!!aws%20s3). Triggers set on the image upload bucket go in and then pull that image out, resize it, do some processing and pull meta-data out and store it in DynamoDb.

![](https://cdn-images-1.medium.com/max/3200/0*tcUXlr--jK5DZD_x.png)

You can learn more about Joot and how they’ve incorporated Serverless Framework below:

[See the Joot case study](https://www.serverless.com/case-studies/joot)

[![](https://cdn-images-1.medium.com/max/2712/1*coRpboSHyAtv5UPafeHzbw.png)](https://console.serverless.com/?view=register&utm_campaign=Console%20Signup&utm_source=dev.to&utm_medium=post&utm_content=A%20Guide%20to%20Serverless%20Architecture)

*Originally published at [https://www.serverless.com](https://www.serverless.com/blog/serverless-architecture).*