Upgrade to Pro — share decks privately, control downloads, hide ads and more …

FaaS is the Least Important Thing About Serverless

FaaS is the Least Important Thing About Serverless

The serverless trend emerged from the introduction of FaaS from providers like AWS Lambda. Moving compute from instances and containers to on-demand FaaS has massive appeal. But functions are one small part of the serverless story! I present a way of building serverless applications to minimise code and maximise use of managed services. This approach shifts the emphasis from coding to the development of powerful, scalable architectures. I show ways of replacing many of your Lambdas with alternative managed services and explain why code should first and foremost be a tool for building on-demand infrastructure.

I will cover five common uses for serverless functions today; orchestration, delegation, data reshaping, database storage or querying and service integration.

In each case, I will demonstrate how system complexity, cost and maintenance effort can be reduced by adopting client-side orchestration, an event bus, managed data stores and cloud-native data transformation solutions such as AWS Glue, S3 Select, Kinesis, Sagemaker and API Gateway.

Eoin is Co-Founder and CTO of fourTheorem, a modern application development consultancy based in Ireland and New York.

Eoin Shanaghy

April 02, 2019
Tweet

More Decks by Eoin Shanaghy

Other Decks in Technology

Transcript

  1. Era of the Product Mindset LEAN LOW COST EXPERIMENTATION FEEDBACK

    LOOPS CONTINUOUS DEPLOYMENT PRODUCT DISCOVERY BUILD THE RIGHT PRODUCT
  2. Microservice Era Microservices Containers Distributed Systems Organisational Change Faster Adaptable

    Build your own PaaS Infrastructure Investment Scalable Reliable Focus Disposable CD Immutable
  3. λ

  4. Take a Greenfield perspective Forget legacy constraints Disregard current implementation

    Establish a technology vision Serverless Adoption – First Steps
  5. Data Locality Access to Files (S3) Performance Synchronous Fetch Cost

    No EBS or EFS Storage Cost < Compute Cost Move the Code to the Data
  6. Serverless is true Utility Computing • FaaS is one of

    these utilities. There are many. • Favourites (AWS) • S3 • Cognito • DynamoDB • AppSync • Aurora Serverless • Step Functions • IAM • Lambda The Holistic Serverless Definition
  7. The Effect of Managed Services State is Federated Distributed State

    Management Data in the Right Form > Fetch on Demand
  8. Distributed State – Understand Access Patterns SQL DynamoDB Event Streams

    Structured Normalised Arbitrary access patterns Unstructured Single table Predictable access patterns Event sourcing Event-driven Real-time requirement
  9. • Optimise for access – polyglot persistence • Downsample •

    Aggregate • Keep raw data • Iterate on your approach • Keep code close to the data – remember the power of SQL Store with Intent
  10. S3 SELECT Read from S3, Parquet or JSON SELECT temp,

    timestamp, device_id FROM s3Object s WHERE s.date BETWEEN ‘2019- 04-01' AND ‘2019-04-30' 400% faster
  11. GLUE Serverless ETL Build ETL pipelines with Scala or Python

    Shape data for analytics / machine learning
  12. EXPLICIT Lambda AWS Step Functions Synchronously Invoke other services Pay

    while you wait Declarative state machine Pay per transition
  13. Important Things! Product Iteration Speed Automation – CI/CD Expendable components

    Managed services Everything that happens after deployment
  14. One more thing… Full Stack Full Test Pyramid Open Source

    CD Pipeline SLIC Starter Use it – Contribute – Talk to me! @eoins Project Structure Access Control