Serverless

What is serverless?

  • Serverless was first used to describe applications that significantly or fully depend on 3rd party applications / services  to manage server-side logic and state. These are typically ‘rich client’ applications (think single page web apps, or mobile apps) that use the vast ecosystem of cloud accessible databases (like Parse, Firebase), authentication services (Auth0, AWS Cognito), etc.(BaaS)
  • Now serverless is used to describe applications where some amount of server-side logic is still written by the application developer but unlike traditional architectures is run in stateless compute containers that are event-triggered, ephemeral (may only last for one invocation), and fully managed by a 3rd party. One way to think of this is ‘Functions as a service’ (FaaS)

Traditional application:

Serverless application:

Cons:

  • Execution duration(AWS,5 min)
  • RAM ( AWS, 3GB)
  • Disk space ( AWS, 512 MB)
  • State(noState)
  • Vendor control
  • React only to supported stimuli(depends on provider)
  • Cold start
  • Testing
  • Tooling
  • Security concerns

Pros:

  • Costs (Fast code ==Less costs)
  • Scaling
  • Easy to deploy
  • Reusable code

Typical servers in business and enterprise data centers deliver between 5 and 15 percent of their maximum computing output on average over the course of the year.

ScalaFix

  • Linting

  • Rewrite

Migration is painful!

  • AST
  • Scala Meta

Demo time

Big Data

  • Spark

  • Prediction IO

  • TensorFlow

  • Apache Beam 

 

Made with Slides.com