/pilvi

API Gateway prototype

Primary LanguagePythonMIT LicenseMIT

PilviIcon Pilvi API Gateway

HTTP API gateway prototype

Description

In the cloud era we operate with microservices and APIs. API gateway is an entry point for your microservices swarm.

Whole concept of it can be described with simple pseudo-schema:

Clients (Humans, Services) <--> API Gateway (Auth + WAF + Proxy + LB) <--> Backend services (HTTP API apps) 

Common functions of API gateways:

  • Single entry point for another services
  • Clients authentication
  • May support web-applications firewall (WAF) features
  • May support backend services load-balancing

Design aspects this project relies on:

  • Every backend service must implement any HTTP API (REST, JSONRPC, GraphQL, etc)
  • One backend service can be identified with one url
  • Multiple clients can have fine-grained access to multiple backend services

Components

  • aiohandler -- aiohttp-based HTTP handler
  • management -- api gateway management interface

Dependencies

  • django
  • aiohttp
  • cython

Deployment

Docker container

Not ready

docker pull <not_yet_packaged_image_name>
docker run -t <some_options> <not_yet_packaged_image_name>

Production setup

Not ready

virtualenv --python=python3.5 /opt/pilvi
source /opt/pilvi
pip install pilvi