Home

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.

pearl backend

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

LICENSE

MIT