Run the deploy-cloud.sh
script. If you get the following error error when creating "k8s/ingress-service.yaml"
, run kubectl apply -f k8s/
. To delete, run the delete-cloud.sh
script.
Requirements: You need to have access to kubectl of a k8s cluster.
Run deploy-charts-minikube-local.sh
.
Requirements: You need to have minikube (with ingress enabled) and helm installed on your machine.
Run docker-compose up --build
.
Requirements: You need to have docker and docker-compose installed on your machine.
-
env
Folder containing the Redis env variables for the docker-compose deployment -
helm-config
Helm chart values for Redis and ingress-nginx -
k8s
Folder containing the kubernetes deployments, apps and services for the ingress, order, payment and stock services. -
k8s-local
Folder containing the kubernetes deployments, except they don't pull from the cloud -
order
Folder containing the order application logic and dockerfile. -
payment
Folder containing the payment application logic and dockerfile. -
stock
Folder containing the stock application logic and dockerfile. -
test
Folder containing some basic correctness tests for the entire system. (Feel free to enhance them)
After implementing our synchronous SAGA based architecture we tried implementing a partly asynchronous Event-Driven architecture with a message queue. This was however not entirely consisten but did seem to scale very well. In the 7-implement-event-driven-architecture branch, you can run docker-compose up --build and see a working version with 6 (per microservice) proxies and 10 services (per microservice) running together. We did however not manage to deploy it with k8s (yet)
- Joey: Stock implementation + start of proxies for event-driven architecture
- Gaspar: Sagas implementation + Cloud deployment/testing :( --> GCP's quotas inhibit horizontal scaling
- Safouane: Payment implementation + CRDT Investigation with antidoteDB :( --> Practical implementation of CRDT's with lowerbounds is lacking
- Merlijn: Order Implementation + Event Driven Architecture investigation :( --> Async programming is hard, k8s deployment was hard