Serverless applications pitfalls

wojciech-dabrowski

wojciech-dabrowski

wojc.dabrowski@gmail.com

@grumpycraftsman

Serverless Architecture

The Future of Cloud Computing

and software development

wojciech-dabrowski

wojciech-dabrowski

wojc.dabrowski@gmail.com

@grumpycraftsman

https://pattern-match.com/
 

wojciech-dabrowski

wojciech-dabrowski

wojc.dabrowski@gmail.com

@grumpycraftsman

https://pattern-match.com/
 

Disclaimer

Serverless traits

Serverless traits

  • Complete abstraction of the hosting infrastructure.

Serverless traits

  • Complete abstraction of the hosting infrastructure.
  • Pay-per-use pricing.

Serverless traits

  • Complete abstraction of the hosting infrastructure.
  • Pay-per-use pricing.
  • Simple and immediate provisioning.

Serverless traits

  • Complete abstraction of the hosting infrastructure.
  • Pay-per-use pricing.
  • Simple and immediate provisioning.
  • Elastic scaling on-demand (including to zero). 

Serverless traits

  • Complete abstraction of the hosting infrastructure.
  • Pay-per-use pricing.
  • Simple and immediate provisioning.
  • Elastic scaling on-demand (including to zero). 
  • High Availability and redundancy out of the box.

Serverless traits

  • Complete abstraction of the hosting infrastructure.
  • Pay-per-use pricing.
  • Simple and immediate provisioning.
  • Elastic scaling on-demand (including to zero). 
  • High Availability and redundancy out of the box.

https://youtu.be/oQFORsso2go

Web apps with user interface

Dealing with cold starts

https://docs.aws.amazon.com/lambda/latest/dg/configuration-concurrency.html

https://aws.amazon.com/blogs/aws/new-provisioned-concurrency-for-lambda-functions/

https://www.datadoghq.com/state-of-serverless/

Serverless traits

  • Complete abstraction of the hosting infrastructure.
  • Pay-per-use pricing.
  • Simple and immediate provisioning.
  • Elastic scaling on-demand (including to zero). 
  • High Availability and redundancy out of the box.

Serverless traits

  • Complete abstraction of the hosting infrastructure.
  • Pay-per-use pricing.
  • Simple and immediate provisioning.
  • Elastic scaling on-demand (including to zero). 
  • High Availability and redundancy out of the box.

Serverless traits

  • Complete abstraction of the hosting infrastructure.
  • Pay-per-use pricing.
  • Simple and immediate provisioning.
  • Elastic scaling on-demand (including to zero)
  • High Availability and redundancy out of the box.

IF cold starts are the problem for you,

serverless is probably not for your use case

https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html

BATCH PROCESSING

Dealing with long running processes

AWS

Step Functions

Refactor long-running processes

to multi-step with parallelization

UNLIMITED AUTO-SCALING

Integrations awareness

AVOID INTEGRATING SERVERLESS SOLUTIONS

WITH NO-SERVERLESS COMPONENTS

Vendor lock-in

 

Building proper abstractions

Vendor lock-in

Service Lock-In

Building proper abstractions

https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html

Prepare for the infrastructure evolution

with proper code architecture

SERVERLESS ARCHITECTURE

THE FUTURE OF CLOUD COMPUTING

AND SOFTWARE DEVELOPMENT

SERVERLESS ARCHITECTURE

THE FUTURE OF CLOUD COMPUTING

AND SOFTWARE DEVELOPMENT

Proper Serverless use cases

Proper Serverless use cases

Rarely or burst used APIs in small/medium scale                         

Proper Serverless use cases

Rarely or burst used APIs in small/medium scale, only when you don't care about cold starts.

Proper Serverless use cases

Building serverless is considered faster*. Build PoC/MVP stuff with proper code architecture.

Rarely or burst used APIs in small/medium scale, only when you don't care about cold starts.

Proper Serverless use cases

Building serverless is considered faster*. Build PoC/MVP stuff with proper code architecture.

Rarely or burst used APIs in small/medium scale, only when you don't care about cold starts.

*Only if the development team is familiar with the serverless.

Proper Serverless use cases

Building serverless is considered faster*. Build PoC/MVP stuff with proper code architecture.

Rarely or burst used APIs in small/medium scale, only when you don't care about cold starts.

Batch processing, which can be split into multiple small steps.

*Only if the development team is familiar with the serverless.

Proper Serverless use cases

Building serverless is considered faster*. Build PoC/MVP stuff with proper code architecture.

Rarely or burst used APIs in small/medium scale, only when you don't care about cold starts.

Batch processing, which can be split into multiple small steps.

*Only if the development team is familiar with the serverless.

Asynchronous or event-based processes.

warnings

warnings

Serverless is probably not for you if you need stable and short response times.

warnings

Integrating serverless applications with no-serverless components can be disappointing.

Serverless is probably not for you if you need stable and short response times.

warnings

Building serverless applications need some new skills and techniques. Consider additional training or team augmentation if you want to use it effectively.

Integrating serverless applications with no-serverless components can be disappointing.

Serverless is probably not for you if you need stable and short response times.

key takeaways

key takeaways

Serverless is not a new silver bullet that we should use for every purpose. Even in the future.

key takeaways

It is just yet another tool for software engineers/architects to use in proper use cases.

Serverless is not a new silver bullet that we should use for every purpose. Even in the future.

Materials

wojciech-dabrowski

wojciech-dabrowski

wojc.dabrowski@gmail.com

@grumpycraftsman

https://pattern-match.com/
 

Q&A

wojciech-dabrowski

wojciech-dabrowski

wojc.dabrowski@gmail.com

@grumpycraftsman

Made with Slides.com