# Towards A New Serverless World Lately I have been scratching my head when anyone says serverless. What is the fundamental definition of a Serverless workload ? What qualifies as serverless ? In order to first define what the term serverless means we will look at what probably it is not. # Should that be a Function ? ## You are probably not a function IF 1. You are share state between functions 2. You are a long running process 3. You have startup times in excess of 30 seconds 4. Operations cross multiple domains 5. Need Strong perfromance like latency or host specific gaurantees 6. You are Stateful like orchestrating transactions or relying on peristence 7. You own your own data model # Definition of Serverless ? **Scale to Zero** Serverless workloads can be stateless microservices or functions that scale to zero. ## What makes a Function ? 1. What qualifies as a function 2. What is the Seam 3. What triggers it ? 4. What are inputs/outputs 5. Does it make sense from a domain perspective ? ## What makes a cloud native microservice ? - 12 Factor/15 Factor Cloud Native Applications - Stateless - Location Agnostic - Externalized Configuration - Horizontally scalable ## Challenges of Serverless Workloads - Startup Time - Coordination/signaling service - High-performance, affordable, transparently provisioned storage - Data Dependencies - Resource Requirements - Networking - Scheduling randomization and physical isolation - Fine Grained Security Contexts - Hardware Heterogeneity, Pricing, and Ease of Management