CaaS vs FaaS: selecting the appropriate architecture for microservices implementation

By Muhammad Ikram

Elevator Pitch

Containers or Functions? the right tool for implementing micro-services, event processing, cron jobs, REST apis, stateful processes What factors should drive this design decision. An overview of AWS Lambda and related services. An overview of managed Kubernetes services.

Description

How to select the right tool for your use-case Decision Factors Usage Pattern Pricing models Logic complexity, cohesive vs split

Functions use cases Event processing Utility logic Short running cron / scheduled jobs

Container use cases High latency-sensitive APIs Inter-dependent services

Overlap / Gray area

Container-as-a-Service offerings ECS Fargate EKS Fargate EKS EC2 (Managed Kubernetes) GKE - Google Kubernetes Engine Pricing Models

Functions as a Service AWS Lambda App Mesh State machine implementation using AWS Step functions Azure Functions Durable functions

Private Cloud implementations AWS EKS Outposts K-native on Openshift

Notes

Been heavily involved in developing reference architectures for Container and Functions based applications.