Serverless was first used to describe applications that significantly or fully depend on 3rd party applications / services to manage server-side logic and state. These are typically ‘rich client’ applications (think single page web apps, or mobile apps) that use the vast ecosystem of cloud accessible databases (like Parse, Firebase), authentication services (Auth0, AWS Cognito), etc.(BaaS)
Now serverless is used to describe applications where some amount of server-side logic is still written by the application developer but unlike traditional architectures is run in stateless compute containers that are event-triggered, ephemeral (may only last for one invocation), and fully managed by a 3rd party. One way to think of this is ‘Functions as a service’ (FaaS)
Traditional application:
Serverless application:
Cons:
Execution duration(AWS,5 min)
RAM ( AWS, 3GB)
Disk space ( AWS, 512 MB)
State(noState)
Vendor control
React only to supported stimuli(depends on provider)
Cold start
Testing
Tooling
Security concerns
Pros:
Costs (Fast code ==Less costs)
Scaling
Easy to deploy
Reusable code
Typical servers in business and enterprise data centers deliver between 5 and 15 percent of their maximum computing output on average over the course of the year.