Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mmorejon/microservices-docker-go-mongodb
Example of Microservices in Go with Docker, Kubernetes and MongoDB
https://github.com/mmorejon/microservices-docker-go-mongodb
cuelang docker docker-compose golang helm kubernetes microservices mongodb
Last synced: 29 days ago
JSON representation
Example of Microservices in Go with Docker, Kubernetes and MongoDB
- Host: GitHub
- URL: https://github.com/mmorejon/microservices-docker-go-mongodb
- Owner: mmorejon
- License: apache-2.0
- Created: 2016-08-16T22:42:11.000Z (about 8 years ago)
- Default Branch: main
- Last Pushed: 2023-12-19T00:09:45.000Z (11 months ago)
- Last Synced: 2024-09-27T17:40:53.219Z (about 1 month ago)
- Topics: cuelang, docker, docker-compose, golang, helm, kubernetes, microservices, mongodb
- Language: CUE
- Homepage:
- Size: 4.54 MB
- Stars: 660
- Watchers: 26
- Forks: 206
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Cinema - Example of Microservices in Go with Docker, Kubernetes and MongoDB
## Overview
Cinema is an example project which demonstrates the use of microservices for a fictional movie theater.
The Cinema backend is powered by 4 microservices, all of which happen to be written in Go, using MongoDB for manage the database and Docker to isolate and deploy the ecosystem.* Movie Service: Provides information like movie ratings, title, etc.
* Show Times Service: Provides show times information.
* Booking Service: Provides booking information.
* Users Service: Provides movie suggestions for users by communicating with other services.The Cinema use case is based on the project written in Python by [Umer Mansoor](https://github.com/umermansoor/microservices).
The project structure is based in the knowledge learned in:
* Golang structure:
* Book Let's Go:Container images used support multi-architectures (amd64, arm/v7 and arm64).
## Index
* [Deployment](#deployment)
* [How To Use Cinema Services](#how-to-use-cinema-services)
* [Related Posts](related-posts)
* [Significant Revisions](#significant-revisions)
* [The big picture](#screenshots)## Deployment
The application can be deployed in both environments: **local machine** or in a **kubernetes cluster**. You can find the appropriate documentation for each case in the following links:
* [local machine (docker compose)](./docs/localhost.md)
* [kubernetes (helm)](./docs/kubernetes-helm.md)
* [kubernetes (timoni)](./docs/kubernetes-timoni.md)## How To Use Cinema Services
* [endpoints](./docs/endpoints.md)
## Related Posts
* [Traefik 2 - Advanced configuration with Docker Compose](https://mmorejon.io/en/blog/traefik-2-advanced-configuration-docker-compose/)
## Significant Revisions
* [Microservices - Martin Fowler](http://martinfowler.com/articles/microservices.html)
* [Umer Mansoor - Cinema](https://github.com/umermansoor/microservices)
* [Traefik Proxy Docs](https://doc.traefik.io/traefik/)
* [MongoDB Driver for Golang](https://github.com/mongodb/mongo-go-driver)
* [MongoDB Golang Channel](https://www.youtube.com/c/MongoDBofficial/search?query=golang)## Screenshots
### Architecture
![overview](docs/images/overview.jpg)
### Homepage
![website home page](docs/images/website-home.jpg)
### Users List
![users list page](docs/images/website-users.jpg)