0

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

DamCx
  • 1,047
  • 1
  • 11
  • 25
  • Hi Jack, just to clarify, so the main problem is you are unsure about what is what type of hosting to choose, or do I misunderstand? I unfortunately don't know the Spring boot API at all (I know Spring is a thing, that's about all). Personally, I would probably look into hosting a VM myself on Linode, as it gives you full freedom to set up things how you want. It of course requires some care in securing the machine (I use the ufw tool to set up firewall rules etc). Hope that is of any help! – Samuel Lampa Apr 02 '20 at 16:17
  • Thanks Samuel, yes the main issue was hosting the API. Amazons EC2 instance has been recommended to me which allows me to use the original docker-compose and host with ease. Would you strongly recommend Linode over EC2? The only problem I know have with EC2 is associating my API with a certificate. Is Linode a better fit for this? – Jack Walker Apr 03 '20 at 14:07

1 Answers1

0

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.