/beta-platform

MedTune Beta POC

Primary LanguageGoApache License 2.0Apache-2.0

MedTune Platform ~ Beta v0.1.6

/!\ This repository is no longer maintained. MedTune official platform under development

GitHub license GitHub pull-requests GitHub issues GitHub release

Build Status & Coverage

branch Status Quality Coverage
Master CircleCI CodeFactor codecov
Dev CircleCI CodeFactor

Table of content

Overview

MedTune Beta platform is a proof of concept prototype, focused on serving scalable AI solutions, into different types of customers.

Concepts

TODO ASAP

Getting started

1 - Prerequisites

You can compile the binaries your self or use our containers images.

To compile medtune-beta command line you need a Golang Compiler (Tested on 1.11, 1.10 and 1.9)

To run medtune-beta platform side services you will need a container engine/orchestrator (like Docker, Kubernetes).

Database

Medtune Beta runs next to postgres database (if you want to go beyond signup).

Cache

The application cache users sessions on a Redis cache database.

Capsules

Some of MedTune demos might need to setup their correspendent Capsules (server that perform inference computations). Docker or cri-o are enought to make things work, but it requires a lot of handy work. We recommand to use Docker compose or Kubernetes for easier setup.

2 - Configuration

All configurations needed are well commented in config.yaml

3 - Deploy

Once capsules are set (or not), you can build MedTune Beta Platform and use it localy:

Using Golang compiler
# Set your $GOPATH
# Make sure your working directory is $GOPATH/src/github.com/medtune

# Clone project
git clone https://github.com/medtune/beta-platform && cd beta-platform

# Fast run
make run

# Compile for current OS/ARCH 
# Use GOOS=X GOARCH=Y if you are compiling for other platforms
make release
# make release-cmd
# make release-dev
# make release-debug
# make release-linux

# Run server
medtune-beta start
Using Docker engine
# build alpine based image
make build-alpine # medtune/beta-platform:prod-alpine

# build alpine based image for k8s cluster
make build-k8s # medtune/beta-platform:prod-k8s

# build all images
make build-all

# Run container
docker run \
   --name=beta-platform \
   -p 8005:8005 \
   medtune/beta-platform:latest
Using go command
# Install package
go get -u github.com/medtune/beta-platform/...

# Run server
export $STATIC_PATH=/dir/files/static
medtune-beta run --port=8005 --static=$STATIC_PATH
Using Docker hub
# Pull image
docker pull medtune/beta-platform:TAG # TAG=prod | prod-alpine | prod-k8s | latest

# Run container
docker run --name=beta-platform -p 8005:8005 medtune/beta-platform:TAG
Using Docker compose
# Create docker swarm
docker-compose up -d
Using kubernetes
# Create deployment
kubectl create -f deployments/kubernetes/

# Generate kubernetes configuration from docker-compose.yaml
make gen-k8s

Development utils

CICD

See .circleci/config.yaml for more informations about CI/CD setup

Testing
# Unit tests
make tests

# racing & coverage tests
make test-cov
Generating kubernetes deployment yaml files
# Generate kubernetes configuration from docker-compose.yaml
make gen-k8s
Cleaning demo files
# Clean all demos static images
make clean-demos
Scene debuging (capsules)
# Makesure your docker engine is connected to medtune hub
make start-scene

# Stop all capsules containers
make stop-scene

# Kill all capsules containers
make kill-scene

Command line

You can find medtune-beta command line docs at ./cmd

Changelog

See CHANGELOG.md

Contributing

For contributions please refer to our friendly code of conduct in how-we-work repository 😄.

Maintainers

See MAINTAINERS

License

Medtune Beta Platform is released under the Apache 2.0 license. See LICENSE.txt.

TODO

  • End2End Tests
  • pprof