herokudocker-composetriplestoreblazegraph

How to host my own triplestore using blazegraph?


I am new to using Blazegraph and am have been developing with it locally as part of a project over the past few months. I am currently trying to host an instance of my triple store online and have got to the point where I am lost going around in circles.

My application uses a spring-boot API to manage any interactions with the triplestore. I originally used docker-compose to host both on my local machine and was able to query and update the triplestore with no problem. This is the docker-compose.yml file I used:

version: '3'
services:
  triplestore:
    image: lyrasis/blazegraph:2.1.5

    ports:
      - "9999:9999"
    restart: on-failure
    networks:
      - jacks-net
  api:
    build: .
    ports:
      - "8080:8080"
    networks:
     - jacks-net
networks:
  jacks-net:

When it came to production, I tried using Heroku to deploy my docker-compose application to find that Heroku doesn't seem to support this. I was only able to host the API on Heroku using the following Dockerfile:

FROM openjdk:8-jdk-alpine
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

I have also tried to host the API and Triplestore separately using Docker and Heroku for the spring-boot API which appeared to work fine. I have attempted to use Heroku's executable jar capabailities to host the bigdata.jar file provided by Blazegraph with no success.

I would really appreciate some suggestions and guidance regarding the best way forward. How do I host an instance of Blazegraph to use with my spring boot API? Can I use the docker-compose.yml file I have using locally?

Thanks in advance for the help :)


Solution

  • An easy method is to use an Amazon Elastic Compute Cloud (EC2) instance on AWS.

    Simply install docker-compose on the Linux VM, run the docker-compose file from there and then use an Elastic IP address and Cloudflare for a secure HTTPS connection.

    If you end up needing better scalability, you can offload the Blazegraph instance to its own VM and move to a container service for the APIs after.

    It is also worth noting that Blazegraph is now deprecated and the develops have joined Amazon and became Amazon Neptune.