- Form teams of 3-5 members.
- Look at the two diagrams on this page. It consits of two entirely different architectural approaches: a monolithic architecture and a serverless cloud architecture.
- Take 15-20 minutes to review the diagrams with your team and discuss the benefits and drawbacks of each architecture.
- Consider aspects such as scalability, maintainability, deployment complexity, cost, performance, and developer productivity during your discussion.
- After the discussion, each team will present their observations to the class.
- Share your team's insights regarding the benefits and drawbacks of each architecture.
Other teams:
- Listen to other teams' presentations and take note of additional points that may not have been discussed in your group.
- Participate in the class discussion following each team's presentation to clarify points and contribute further insights.
- Reflect on the key differences and considerations between the two architectures as summarized by the instructor.
Do you think monoliths will re-appear? Will we be attending Monocon 2030?
Typical Serverless Architecture components
- The Orange sympols denoted with a greek Lambda, are AWS lambda functions. Pieces of application code that needs a soruce code repository, build & deployment pipelines, unit tests, etc.
- Step functions is used to Orchistrate lambda functions and workflows
- Blue icons with the label ; Dyanmo DB is a no-SQL database
- green Icons with a Bucket; S3 is file hosting for websites, media or entire data lakes
- AWS Cognito: Manages user authentication and identity, ensuring secure access to the application.
- Amazon S3: Object storage service for uploading files.
- AWS Lambda: Compute service that can be triggered to process files after they're uploaded.
- S3 & CloudFront: Services for hosting the user interface of your application. CloudFront distributes the content with low latency across the globe.
- AWS Lambda: Runs backend logic in response to HTTP requests via API Gateway.
- Amazon DynamoDB: NoSQL database service for storing and retrieving data.
- AWS SNS & SQS: Messaging and queuing services for event-driven, asynchronous workflows that trigger Lambda functions.
- WebSocket & AWS API Gateway: Enables real-time communication between the backend and frontend clients.
- AWS Step Functions: Coordinates multiple AWS services into serverless workflows.
- AWS SES: Email service for sending notifications and other communications.
- AWS CloudWatch: Monitors application performance, logs data, and sets alarms for resource usage.
- AWS WAF & Shield: Protects the application from web exploits and DDoS attacks.
Each component in this architecture represents a piece of the serverless puzzle, working together to create a scalable, efficient, and manageable application without the need for traditional server management.
We can also imagine the same business logic as above implemented in such a way that all business requirements were implemented as a monolithic application handling all of the above mentioned features - from file upload to UI presentation layer.