All Projects → access-company → Antikythera

access-company / Antikythera

Licence: apache-2.0
Elixir framework to build your own in-house PaaS

Programming Languages

elixir
2628 projects

Projects that are alternatives of or similar to Antikythera

Knctl
Knative CLI
Stars: ✭ 163 (+46.85%)
Mutual labels:  faas, paas
Picluster
A Simplified Docker Swarm or Kubernetes Alternative to Container Scheduling and Orchestration
Stars: ✭ 390 (+251.35%)
Mutual labels:  faas, paas
Docs
User documentation for Knative components.
Stars: ✭ 3,106 (+2698.2%)
Mutual labels:  faas, paas
Community Cluster
OpenFaaS Cloud Cluster for Community
Stars: ✭ 59 (-46.85%)
Mutual labels:  faas, paas
Faas
OpenFaaS - Serverless Functions Made Simple
Stars: ✭ 20,820 (+18656.76%)
Mutual labels:  faas, paas
Dockerweb
A docker-powered bash script for shared web hosting management. The ultimate Docker LAMP/LEMP Stack.
Stars: ✭ 89 (-19.82%)
Mutual labels:  paas, web-server
Tensorflow Lambda Layer
Lets you import Tensorflow + Keras from an AWS lambda
Stars: ✭ 79 (-28.83%)
Mutual labels:  faas
Faast.js
Serverless batch computing made simple.
Stars: ✭ 1,323 (+1091.89%)
Mutual labels:  faas
Openwhisk Cli
Apache OpenWhisk Command Line Interface (CLI)
Stars: ✭ 73 (-34.23%)
Mutual labels:  faas
Roll
AWS Blue/Green deployment using Clojure flavoured devops
Stars: ✭ 66 (-40.54%)
Mutual labels:  paas
Functionscript
An API gateway and framework for turning functions into web services
Stars: ✭ 1,518 (+1267.57%)
Mutual labels:  faas
Mofuw
mofuw is *MO*re *F*aster, *U*ltra minimal *W*ebserver.
Stars: ✭ 107 (-3.6%)
Mutual labels:  web-server
Awesome Low Code
Awesome Low-Code Application Platforms | 全球低代码平台开发资源大全
Stars: ✭ 90 (-18.92%)
Mutual labels:  paas
Datakernel
Alternative Java platform, built from the ground up - with its own async I/O core and DI. Ultra high-performance, simple and minimalistic - redefines server-side programming, web-development and highload!
Stars: ✭ 87 (-21.62%)
Mutual labels:  web-server
Faasd
A lightweight & portable faas engine
Stars: ✭ 1,330 (+1098.2%)
Mutual labels:  faas
Hook.io
Open-Source Microservice Hosting Platform
Stars: ✭ 1,201 (+981.98%)
Mutual labels:  faas
Functions Samples
Collection of sample apps showcasing popular use cases using Cloud Functions for Firebase
Stars: ✭ 10,576 (+9427.93%)
Mutual labels:  faas
Paus
Docker Compose PaaS
Stars: ✭ 68 (-38.74%)
Mutual labels:  paas
Workflow
The open source PaaS for Kubernetes.
Stars: ✭ 1,291 (+1063.06%)
Mutual labels:  paas
Openfaas Operator
Official OpenFaaS Operator and CRD for Kubernetes
Stars: ✭ 105 (-5.41%)
Mutual labels:  faas

Antikythera Framework

hex badge

Antikythera is an Elixir framework to build your own in-house PaaS (Platform as a Service).

You can run multiple web services while managing only a single cluster of ErlangVM nodes. From the viewpoint of service developers antikythera provides FaaS(Function as a Service)-like development experiences.

Note: Antikythera is already used in production at ACCESS, though as an OSS, it is still in early development stage and missing many components. Please be aware of that, and stay tuned for further additions!

Features

  • As a platform for multiple services:
    • Resource control for multi-service and multi-tenant use cases
    • Automated deployment without affecting other running services
    • Built-in logging, monitoring and configuration management
    • Service-to-service communications without network overhead
  • As a web framework:
    • HTTP request processing with arbitrary Elixir code with WebSocket support
    • Domain-based routing for multiple services; path-based routing within single service
    • CDN support for static contents, HAML template for dynamic web pages
  • As an asynchronous job executor:
    • Built-in distributed job queues
    • Running arbitrary Elixir code for each job

Basic architecture

Antikythera Architecture

  • We refer to each antikythera cluster as an "antikythera instance", and each web service running within an antikythera instance as a "gear".
  • Antikythera is heavily dependent on the power of ErlangVM.
    • Antikythera is written in Elixir, and all gears must also be written in Elixir.
  • Multiple gears are co-located and executed within the same ErlangVMs of an antikythera instance.
    • This type of co-location of multiple applications are sometimes referred to as "nano-services architecture".
    • This way we can eliminate the infrastructure/operational cost for having multiple web application stacks.
    • Also, inter-service communications in a micro-services architecture become gear-to-gear communications in this nano-services architecture. Unlike micro-services architecture, it doesn't require network roundtrip as all gears are running within a single ErlangVM, resulting in lower communication overhead.
    • Although gears share the same computing resources, they are executed in an independent manner thanks to the Erlang's process model.
    • Antikythera instance and its gears are all separate mix projects.
      • Developers of different gears can work on their own projects, independently.
      • Library dependencies are defined per-antikythera-instance, and all gears inherit those dependencies.

Getting Started

See our Getting Started guide!

Documentation

Contributing

We encourage you to contribute to antikythera! Please check out our Contributing Guide.

For both core and gear development, please make use of our Style Guide.

Copyright and License

Copyright(c) 2015-2021 ACCESS CO., LTD. All rights reserved.

Antikythera source code is licensed under the Apache License version 2.0.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].