Monday, August 13, 2018

Serverless Architectures

Serverless Architectures 


SA are new approach to application designs. This is hot topic in the software architecture world right now. All "Big Three" (Amazon, Google, Microsoft) are heavily investing in "Serverlessnes" right now.

What is it?

Unlike traditional architectures (where application run on server) it’s run in stateless compute containers that are event-triggered, ephemeral (may only last for one invocation), and fully managed by a third party. These are typically “rich client” applications—think single-page web apps, or mobile apps. These apps use vast ecosystem of cloud-accessible databases authentication services (e.g., Auth0, AWS Cognito), and so on. But if you need computation, you can use for example AWS Lambdas or Azure Functions.

Upsides and downsides

Upsides:

  • No need for system administration (everything is handled by third party)
  • Decreases complexity of your product
  • Natively micro service architecture. 
  • Lesser cost to scale.
  • Elasticity - native scaling 
  • Smaller development and operational costs
  • Decrease time to market

Downsides:

  • Debugging and monitoring is still and issue.
  • Tooling is not there quite yet.
  • Cold start issues.