Awesome
<h1 align=center>PEARL API & Infrastructure</h1> <img width="1161" alt="image" src="https://user-images.githubusercontent.com/371666/155303281-fafe417e-3e66-46c2-8a1d-20b9d25b89cd.png">PEARL is a landcover mapping platform that uses human in the loop machine learning approach. This repository contains the API and infrastructure to run the platform. The frontend is maintained at pearl-frontend.
Overview
PEARL infrastructure uses Kubernetes to manage resources and provide on-demand GPU support. The following is a high-level architecture. A websocket router manages available GPU/CPU and allocates them to clients.
This repository contains code for the api
, gpu
, socket
and tiles
services in the services
directory. Code to deploy all the services and infrastructure on Azure can be found in the deployment
directory. We have also included terraform resource definitions in deployment/terraform
and a Helm chart in deployment/helm
. The Helm chart is published separately at https://devseed.com/pearl-helm-chart and instructions for using the helm chart can be found here.
The machine learning components are documented here.
Development
Initial development can be bootstrapped by running all of the services via docker-compose
docker-compose up --build -d
This script will ensure that you have a postgres database set up, and will configure and start all necessary services locally for a fully functional dev environment
API Documentation
API documentation can be found by opening the following location in your browser file://<path-to-git-repo>/lulc-infra/api/doc/index.html
or ideally, once your development environment has been started, API documentation can be found
by navigating to http://localhost:2000/docs
.
Deployment and CI
Notes on deploy process and CI integration can be found here.
You can also helm
to deploy directly onto a Kubernetes cluster. Instructions can be found here.
Note: This has currently been tested using AKS on Azure, but should ideally work on any Kubernetes cluster with minimal changes.
Debugging and Logs
Instructions for accessing the Grafana UI to inspect application logs can be found here