https://github.com/shahroz16/goloco
Repository contains a sample of micro-services written in different languages (GO, Python, Kotlin) communicating over GRPC and deployed on Kubernetes
https://github.com/shahroz16/goloco
docker golang grpc kotlin kubernetes microservices python
Last synced: about 1 year ago
JSON representation
Repository contains a sample of micro-services written in different languages (GO, Python, Kotlin) communicating over GRPC and deployed on Kubernetes
- Host: GitHub
- URL: https://github.com/shahroz16/goloco
- Owner: Shahroz16
- License: apache-2.0
- Created: 2020-01-28T18:17:01.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2022-12-08T01:51:36.000Z (over 3 years ago)
- Last Synced: 2025-01-23T05:41:28.869Z (about 1 year ago)
- Topics: docker, golang, grpc, kotlin, kubernetes, microservices, python
- Language: Python
- Homepage:
- Size: 3.43 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# goloco
## Introduction
`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.
## 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`)
## Database
There are currently two databses that I added in the application
- Postgres (in an external cluster)
- Redis (dockerized and deployed in kubernetes cluster)
## Deployment
Skaffold: Application is deployed to Kubernetes with a single command using Skaffold.
## Communication
- **[Kubernetes](https://kubernetes.io):**
The app is designed to run on Kubernetes.
- **[gRPC](https://grpc.io):** Microservices use a high volume of gRPC calls to
communicate to each other.
## Installation
1. Install tools to run a Kubernetes cluster locally:
- Local Kubernetes cluster deployment tool:
- [Minikube](https://kubernetes.io/docs/setup/minikube/).
- Docker for Desktop: It provides Kubernetes support as [noted
here](https://docs.docker.com/docker-for-mac/kubernetes/).
- [skaffold]( https://skaffold.dev/docs/install/)
1. Run `kubectl get nodes` to verify you're connected to “Kubernetes on Docker”.
1. Run `skaffold run`
This will build and deploy the application.