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 :)
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.