# Serverless Architecture
<!-- Put the link to this slide here so people can follow -->
slides: https://hackmd.io/@fQQDF_CASym1hHuH4BoWSw/serverless-talk-05-20-2021#/
----
## Who am I?
- Senior Specialist Solutions Architect
- Work @ Red Hat
- I love Open Source Technology
----
## Serverless Architecture
Defined as application designs that incourprate third-party "Backend as a Service" (BaaS) services. They can also include clustom code that is run or managed in epcheremal containers on "Functions as a Service" (FaaS).
----
### Principles of FaaS:
* Complete management of servers
* Invocation based billing
* Event-driven and instantaneously scalable
----
### Monolith Architecture Review
Monolith Architecture
```graphviz
# Place the cursor inside "graph" to get some refactoring options
strict digraph {
"Client (browser)" [shape="ellipse" style="filled" fillcolor="green"]
"Server" [shape="polygon" style="filled" fillcolor="orange"]
"Database" [shape="cylinder" style="filled" fillcolor="yellow"]
"Client (browser)" -> "Server" -> "Database" [fillcolor="#a6cee3" color="#1f78b4"]
}
```
----
### Serverless architecture
Serverless architecture
```graphviz
strict digraph {
"3. Client (browser)" [shape="ellipse" style="filled" fillcolor="white"]
"1. Autentication Service" [shape="ellipse" style="filled" fillcolor="green"]
"API Gateway" [shape="ellipse" style="filled" fillcolor="orange"]
"5. Purchase Function" [shape="polygon" style="filled" fillcolor="orange"]
"4. Search Function" [shape="polygon" style="filled" fillcolor="orange"]
"Purchase Database" [shape="cylinder" style="filled" fillcolor="yellow"]
"2. Product Database" [shape="cylinder" style="filled" fillcolor="yellow"]
"5. Purchase Function" -> "Purchase Database"
"1. Autentication Service" -> "3. Client (browser)"
"3. Client (browser)" -> "API Gateway"
"API Gateway" -> "5. Purchase Function"
"API Gateway" -> "4. Search Function"
"3. Client (browser)" -> "2. Product Database"
"4. Search Function" -> "2. Product Database"
}
```
----
### Serverless Use Cases
* Auto Scaling websites and APIs
* Event Streaming
* Image and Video Manipulation
* Processing Events and SaaS
----
### Serverless Providers
- AWS Lambda
- Azure Functions by Microsoft
- Google Cloud Functions (GCF)
- IBM OpenWhisk
- Knative
- kubeless
- Alibaba Function Compute
- Iron Functions
- Auth0 Webtask
- Oracle Fn Project
----
### Demos and Examples
- [Introduction: Build a Serverless Web Application (Using AWS Lambda)](https://aws.amazon.com/getting-started/hands-on/build-serverless-web-app-lambda-apigateway-s3-dynamodb-cognito/)
- [Serverless Examples](https://www.serverless.com/examples/)
- [Knative CLI Demo On OpenShift 4.7](https://github.com/tosin2013/openshift-demos/blob/master/serverless/knative-cli-demo-on-openshift-4.7.md)
- [Instructions for deploying Serverless Store without using Cloud Build](https://github.com/GoogleCloudPlatform/serverless-store-demo/blob/master/docs/deployment.md)
----
### Links
- [Serverless Architectures](https://martinfowler.com/articles/serverless.html#InherentDrawbacks)
- [Serverless Infrastructure Providers](https://www.serverless.com/framework/docs/providers/)
- [Serverless on AWS](https://aws.amazon.com/serverless/)
- [Google Cloud Functions (GCF)](https://cloud.google.com/functions/docs)
- [Azure Functions documentation](https://docs.microsoft.com/en-us/azure/azure-functions/)
- [What is serverless?](https://www.redhat.com/en/topics/cloud-native-apps/what-is-serverless)
----
### Thank you!
You can find me on
- GitHub - https://github.com/tosin2013
- Twitter - @tech0827
- LinkedIn - https://www.linkedin.com/in/tosinakinosho/
{"metaMigratedAt":"2023-06-16T00:33:53.362Z","metaMigratedFrom":"YAML","title":"Serverless Architecture","breaks":true,"description":"View the slide with \"Slide Mode\".","contributors":"[{\"id\":\"7d040317-f080-4b29-b584-7b87e01a164b\",\"add\":6767,\"del\":2880}]"}