Serverless Developer Guide
Understanding the diﬀerence between traditional and 
serverless development
As a developer, you might already be familiar with traditional web applications, but new to 
serverless development. You might even know how to use some AWS services directly, such as 
Amazon S3 or DynamoDB, but are not sure what it takes to develop a fully-functional serverless 
application in production.
This topic provides an overview a traditional application development, then explain the shift in 
thinking needed shift to serverless development. This is intended to provide you with a clearer 
conceptual understanding of serverless development using AWS services
Topics
• Traditional development
• Use services instead of custom code
• Serverless development on AWS
Traditional development
Traditional web apps generally handle synchronous requests and responses. This cycle has been the 
basis of web since the beginning of the Internet. Over time, developers created and shared code 
to speed up development. You have probably used or at least recognize one or more of these web 
frameworks: Express, Django, Flask, Ruby on Rails, Asp.net, Play, Backbone, Angular, Spring Boot, 
Vapor, to name a few.
Web frameworks help you build solutions faster by including common tools and features.
The following diagram represents some of the complex mix of components that are included with 
frameworks. Routers send URLs to classes or functions to handle requests and return responses. 
Utility classes retrieve form data, query strings, headers, and cookies. A bundled abstraction layer 
stores and retrieves data in SQL or NoSQL databases. Additional components manage connections 
to external services through synchronous API calls or asynchronous message queues. Extension 
points exist to bolt-on even more components, such as asynchronous hooks, or single sign-on 
authentication.
Traditional development 17