Slide 1

Slide 1 text

Leveraging Serverless Architecture for Agile Software Development AWS COMMUNITY DAY 2023 Petra Novandi Barus

Slide 2

Slide 2 text

Hey there! You can call me Petra Technology Advisors Feb-2023 CTO, Kuncie.com 2021-2023 Developer Relation, AWS Indonesia 2019-2021 CTO, 99.co Indonesia 2018-2019 CTO, UrbanIndo.com 2011-2018

Slide 3

Slide 3 text

Agenda 1.Agile Software Development 2.Serverless Architecture 3.Benefits Serverless for Agile Development 4.Example Architecture Patterns on AWS 5.Best Practices

Slide 4

Slide 4 text

Agile Software Development

Slide 5

Slide 5 text

Individuals and interactions over processes and tools Working Software over comprehensive documents Customer Collaboration over contract negotations Responding to Change over following a plan Values of Agile

Slide 6

Slide 6 text

Iterative and Incremental Development In every iteration, we experiment new ideas to our customers. We build, measure, learn, and replan

Slide 7

Slide 7 text

Serverless Overview

Slide 8

Slide 8 text

Serverless Overview No Server to Setup/Manage Automatic Scaling Built-in High-Availability and Reliability Pay only by Usage

Slide 9

Slide 9 text

AWS Serverless Technologies Computation Application Integrations Storage AWS Lambda AWS Fargate Amazon S3 Amazon DynamoDB Amazon Aurora Serverless Amazon Redshift Serverless Amazon Opensearch Serverless Amazon Elasticache Serverless AWS AppSync AWS EventBridge AWS Step Functions Amazon SNS Amazon API Gateway Amazon SQS

Slide 10

Slide 10 text

Benefits of Serverless for Agile

Slide 11

Slide 11 text

1 Benefits of Serverless for Agile REDUCED TIME TO DELIVER TO MARKET INCREASED FOCUS ON THE CUSTOMER’S NEEDS IMPROVED COLLABORATION WITHIN THE TEAM 2 3

Slide 12

Slide 12 text

Example Serverless Architectures My Personal Experiences

Slide 13

Slide 13 text

Single Page Application

Slide 14

Slide 14 text

Simple PHP Application

Slide 15

Slide 15 text

Image Processing

Slide 16

Slide 16 text

Best Practices (Again) My Personal Experience

Slide 17

Slide 17 text

Application Design 1.Modular, well-encapsulated and loosely coupled architecture design. 2.Lightweight model for custom ad-hoc code 3.Stateless Application

Slide 18

Slide 18 text

Develop and Operate 1.Continuous delivery and deployment 2.Multiple environments (Development & Production) 3.Infrastructure as Code 4.Monitoring 5.Empower with resource autonomy.

Slide 19

Slide 19 text

Budgetary 1.Leverage Free-Tier (e.g. 1million request Lambda) 2.Tag resource by team / projects / products 3.Implement Cost Policies 4.Evaluate ROI periodically

Slide 20

Slide 20 text

Learn and Embrace Change 1.Learn about customer. 2.Learn about your team. 3.Always experiment to deliver value 4.Architecture is evolutional. Always prepare for improvements.

Slide 21

Slide 21 text

Conclusion

Slide 22

Slide 22 text

Q&A Let’s discuss!

Slide 23

Slide 23 text

Thank You! @petrabarus @petrabarus KodingBarengPetra