goloco
is a sample application based on microservices architecture. Its in very intial stages and I use it as my playground application to experiment with microservices.
There are 3 microservices running written in different languages communicating over GRPC.
- frontend (written in
Golang
) - locationservice (written in
Python
) - recommendationservice (written in
Kotlin
)
There are currently two databses that I added in the application
- Postgres (in an external cluster)
- Redis (dockerized and deployed in kubernetes cluster)
Skaffold: Application is deployed to Kubernetes with a single command using Skaffold.
- Kubernetes: The app is designed to run on Kubernetes.
- gRPC: Microservices use a high volume of gRPC calls to communicate to each other.
-
Install tools to run a Kubernetes cluster locally:
- Local Kubernetes cluster deployment tool:
- Minikube.
- Docker for Desktop: It provides Kubernetes support as noted here.
- skaffold
- Run
kubectl get nodes
to verify you're connected to “Kubernetes on Docker”.
- Local Kubernetes cluster deployment tool:
-
Run
skaffold run
This will build and deploy the application.