ExpressJS will expose 4 endpoints that correspond to deployment commands to be run on the Salt Master.
Ubuntu is used as the base operating system for the Salt Master. SaltStack will be installed here by the YouSpace team.
Docker containers will be hosted and run on a single Amazon EC2 instance. This will likely be the t2.small or t2.medium instance type as listed here: https://aws.amazon.com/ec2/instance-types/
The repository will be stored in BitBucket for git and also potentially for issue management.
Docker Compose will be used to create and manage the following containers: PostGreSQL, Prisma, Vue.js.
Prisma will act as the database client, translating the database schema from GraphQL into a typed and consistent database tables in PostGresQL
CircleCI will be used for deployment and continuous integration using a scripted configuration that deploys to Amazon EC2.
PostGreSQL was chosen for the data persistence layer for the front end because of it's capability for handling complex queries, it's portability, and scalability.
GraphQL will be used as the public API for the data persistence layer. It communicates nicely with all other languages and can provide API responses in the format specified in the request.
Apollo will be used to make requests to the GraphQL server and manage data handling/caching of responses.
Webpack is used to build the front end. It will compile Vue.js source code into a static site.
Node.js will run the Express server that is used to execute deployment commands on the Salt Master.