/!\ This repository is no longer maintained. MedTune official platform under development
Build Status & Coverage
branch |
Status |
Quality |
Coverage |
Master |
|
|
|
Dev |
|
|
|
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