Building a serverless application means you usually trade in old issues for new ones. This is an attempt to create a decision framework and break down arguments for and against using serverless vs. other computing models.

If you ever find yourself deciding for or against serverless the following tries to make the decision easier for you. Maybe you should save this post for future reference if you find it useful. Or don’t, it’s up to you. No seriously, save it.

This is also an open document which I will keep improving in the future. Edits are welcome!

Strengths

  1. Faster time to market - The real benefit of serverless is that developers only focus on the business logic and that drastically increases development speed and time to market.
  2. Scalability - If you follow the right architectural patterns, serverless is very scalable.
  3. Cost effectiveness - In most cases, serverless is cheaper than other computing models although exceptions apply for some forms of compute heavy data processing/background jobs.

Weaknesses

  1. Troubleshooting and testing - It’s difficult to test locally and it’s difficult to navigate debugging data. You can set up a local environment for testing but it will take a lot of effort. Dashbird is good for observing and debugging production architectures.
  2. Learning curve - New patterns and tooling can take a while to learn and adopt.
  3. Developer onboarding - Bigger learning curve for new developers mid-project.

#serverless #swot

Serverless SWOT analysis
2.30 GEEK