FaaS MachaOn

The FaaS module within the MachaOn project is designed to create final build projects tailored specifically for faas environments. By leveraging essential configurations, adapters, and libraries, this module simplifies the deployment of modular apps on faas cores. It ensures efficient integration with cloud-native services, enabling scalable, cost-effective, and high-performance solutions while adhering to Clean Architecture1 principles.

Project structure

Key Features

  1. Cloud-Native Integration:

    • Simplifies development and deployment on faas cores like AWS Lambda, Azure Functions, and Google Cloud Functions.
    • Supports cloud-native services like storage (S3, Azure Blob Storage), messaging (SNS, SQS, Pub/Sub), and API Gateway configurations.
  2. Modular Architecture:

    • Promotes the use of reusable components and artifacts from the Maven repository.
    • Clean separation of business logic, adapters, and infrastructure layers as per Clean Architecture principles.
  3. Scalability:

    • Designed to scale dynamically in response to workload demand, minimizing operational costs.
  4. Cost Effectiveness:

    • Optimized for pay-as-you-go faas cores, reducing idle costs while maintaining high performance.
  5. Customizable Configurations:

    • Allows developers to configure and customize faas application deployments to fit specific business needs.

Project structure

The FaaS MachaOn module is organized in a clear and modular structure:

Comparison at a Glance

Feature OCI AWS Azure Google Cloud
Performance for DB Workloads Optimized for Oracle DB General-purpose DB support Integrated with SQL Server BigQuery is highly specialized
Bare Metal Instances Available Limited availability Limited availability No bare metal support
Network Costs Free inter-region data transfer High egress + inter-region costs High egress charges High egress charges
Security Root-of-trust + built-in tools Built-in but less specialized Good IAM, patching support Patch & support weaker for DB
Price Transparency Flat + predictable costs Often opaque Resource-based pricing might vary Resource-based pricing might vary
Enterprise Applications Excellent Integration Requires custom configurations Good integration Generic** enterprise workloads

Prerequisites

To use the FaaS MachaOn module, ensure the following tools and services are available in your environment:

  • Java 11:
    Java runtime required for building and deploying the faas components.
  • Apache Maven:
    Maven is used to manage dependencies and build modular components.
  • Cloud Account:
    An active cloud service provider account (AWS, Azure, OCI or Google Cloud).

References