OpenFaaS Overview
OpenFaaS is a serverless functions framework that lets you deploy functions as Docker containers.With OpenFaaS developers can deploy event-driven functions and microservices to Kubernetes. OpenFaaS brings the following benefits:
OpenFaaS leverages these technologies to provide a developer-friendly experience on top of Kubernetes, offering features like auto-scaling, metrics, and eventing.
Application Layer
GitOps/IaaC Layer
OpenFaaS Workflow
OpenFaaS uses HTTP and REST for all communication, a simple yet powerful interface enhanced by events and triggers.
The OpenFaaS documentation outlines numerous community and official triggers, which are ways to invoke functions, with a basic HTTP call being the simplest.
Most triggers are built using the open-source connector-sdk, simplifying the connection between event sources and functions.
Examples of triggers include Apache Kafka, cron, SQS, NATS, Minio, RabbitMQ, and MQTT.
If you like to learn more on a specific topic, you can checkout the following links and resources:
- Portable function platform - cloud or on-premise
- Use any language to write functions
- Easy to use - built-in UI, CLI and one-click installation
- Scalable - can scale up during traffic spikes and scale down when idle
For more information, you can check out the OpenFaaS community resources and a list of adopters: OpenFaaS adopters.
- Prometheus: Metrics and time-series monitoring
- Linux/Linkerd: Operating system or service mesh
- OpenFaaS: Management and auto-scaling of compute
- NATS: Asynchronous message bus / queue
- Kubernetes
OpenFaaS leverages these technologies to provide a developer-friendly experience on top of Kubernetes, offering features like auto-scaling, metrics, and eventing.
Infrastructure Layer ▼
- Docker provides a packaging image format, which is cloud-agnostic.
- A container registry holds each version of our function, meaning that we can version it and benefit from distribution, security scanning and many other features of projects like the CNCF Harbor registry.
- Kubernetes provides a control plane to run our functions, including fail-over, high availability (HA), scale-out and secret management.
Application Layer
▼
- The OpenFaaS Gateway is similar to a reverse proxy like Nginx, Kong or Caddy; manages and exposes function containers through its own automatable REST API. Users typically interact with it via the CLI (faas-cli) or the UI.
- Prometheus is a CNCF project for metrics, to inform autoscaling and provide insights into the health of the platform and functions. AlertManager, part of Prometheus, allows for setting up notifications for issues like failing functions.
- NATS - Integrating with NATS, a CNCF messaging project, OpenFaaS enables asynchronous request handling. This allows requests to be queued and processed when the cluster has capacity, without requiring extra code.
GitOps/IaaC Layer
▼
- OpenFaaS Cloud provides a multi-user dashboard with authentication and integrated CI/CD, streamlining workflows with GitHub and GitLab.
- GitHub enables function building and deployment through Travis CI or its own Actions and container registry.
- GitLab offers a complete GitOps toolkit for creating direct build and deployment pipelines to OpenFaaS.
OpenFaaS uses HTTP and REST for all communication, a simple yet powerful interface enhanced by events and triggers.
The OpenFaaS documentation outlines numerous community and official triggers, which are ways to invoke functions, with a basic HTTP call being the simplest.
Most triggers are built using the open-source connector-sdk, simplifying the connection between event sources and functions.
Examples of triggers include Apache Kafka, cron, SQS, NATS, Minio, RabbitMQ, and MQTT.
If you like to learn more on a specific topic, you can checkout the following links and resources:
https://docs.openfaas.com/
https://www.openfaas.com/blog/plonk-stack/
https://nats.io/about/
https://linkerd.io/2.18/getting-started/
https://www.openfaas.com/blog/plonk-stack/
https://nats.io/about/
https://linkerd.io/2.18/getting-started/
Also, checkout our blog Diving Deep into Serverless
Very interesting and practical post.
ReplyDelete