Deployment Options

(Michael McKenzie) #1

For anyone who has posted a web application using the GRANDstack, what deployment options did you use for each aspect of the stack? I am looking for easier and cheaper options. I am working on few personal projects and am just curious how the process has gone for others.

(M. David Allen) #2

I'm working on some small/simple GRAND stack applications.

With Neo4j, I do a lot of work on deploying the database itself into Kubernetes (you can read about that here, so that's how I run the DB portion.

Because that's in kubernetes already, the back-end (based on neo4j-graphql-js, not the neo4j java plugin for graphql) I tend to build into a docker container and deploy on kubernetes as well.

The front end is just a react SPA. For that I do a react build and end up copying static files to cloud bucket hosting (like S3, or google storage) and run the app hosted straight out of that.

So for the web end of this -- static bucket hosting is such a simple way to go....I don't know why a person wouldn't do it that way. Sure I could package that into docker and run it in kubernetes too but at the end of the day the react front end is just a bunch of static files so kubernetes is really overkill.

The hardest parts about this are the boring admin aspects, that have everything to do with running a real app and nothing to do with the GRANDstack per se. For example setting up SSL and a domain name for the web tier, so that it can talk to your graphql back-end without needing to set special CORS headers and so on. Or writing some kubernetes YAML and injecting configuration secrets so that neo4j-graphql-js backend knows where to contact the database. In the sample code, you get this clean easy example where you have a dotenv file and you're pre-wired to some simple database (like localhost) but when you deploy any app for real (grandstack or otherwise) there are always all of these configuration bits and bobs that take time to get right

(Michael McKenzie) #3

yeah. I am using an older version of the GRANDstack starter application and am still learning how to use Docker all that jazz #ShinyObjectSyndrome