Heyyo omaetachi, this opportunity I will make a project to learn about microservices. In short this project is about a library system named Alpha
. It consists of 3 services namely book
, order
, and user
service. Each service sends notifications to each other via a message broker, and is centralized to one point, namely the api gateway using nginx
.
Feature | Status |
---|---|
Authentication | ✔️ |
Message Broker | ✔️ |
Book | ✔️ |
User | ✔️ |
Dockerize | ✔️ |
API Gateway | ✔️ |
Frontend | Ongoing |
Pipeline | Ongoing |
Order | ✔️ |
Kurbenetes | Ongoing |
Monitoring | Ongoing |
Docker
- Main tools to build this projectGolang
- The progamming language i use to build order service and book servicesJavascript
- The programming language i use to build user-servicesNginx
- API Gateway I used to build this projectGorm
- Framework i use to client for database mysqlSequelize
- Framework for javascript to client database mysqlMysql
- The main database for this projectGin-Gonic
- Framework for golang web applicationExpress
- Framework for javascript web application
This project is ongoing, and will continue to be updated at any time. For now there are 2 services namely user
and book
. For installation is quite easy
First, installastion kurbenetes if u want use it
alpha@chentauri:~$ sudo adduser kurbenetes
alpha@chentauri:~$ sudo usermod -aG sudo kurbenetes
alpha@chentauri:~$ su kurbenetes
alpha@chentauri:~$ sudo apt install docker docker.io docker-compose -y
Step 2: Install k8s with wget
alpha@chentauri:~$ sudo wget https://github.com/kubernetes/minikube/releases/download/v1.24.0/minikube-linux-amd64
alpha@chentauri:~$ sudo mv minikube-linux-amd64 minikube
Step 3: Change Permission minikube n save to /usr/local/bin/minukube
alpha@chentauri:~$ sudo mv minikube /usr/local/bin/minikube
Step 4: Configure kubectl
alpha@chentauri:~$ sudo curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
alpha@chentauri:~$ sudo chmod +x kubectl
alpha@chentauri:~$ sudo mv kubectl /user/local/bin/kubectl
Step 5: minikube can start n you can see detail
alpha@chentauri:~$ minikube start
* minikube v1.24.0 on Debian 10.2
* Using the docker driver based on existing profile
X The requested memory allocation of 1970MiB does not leave room for system overhead (total system memory: 1970MiB). You may face stability issues.
* Suggestion: Start minikube with less memory allocated: 'minikube start --memory=1970mb'
---
alpha@chentauri:~$ kubectl version
Client Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.3", GitCommit:"c92036820499fedefec0f847e2054d824aea6cd1", GitTreeState:"clean", BuildDate:"2023-25-27T18:41:28Z", GoVersion:"go1.16.9", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.3", GitCommit:"c92036820499fedefec0f847e2054d824aea6cd1", GitTreeState:"clean", BuildDate:"2023-25-27T18:35:25Z", GoVersion:"go1.16.9", Compiler:"gc", Platform:"linux/amd64"}
If you install from docker you can must do this
alpha@chentauri:~$ sudo git clone https://github.com/rulanugrh/alpha
alpha@chentauri:~$ chmod +x install
alpha@chentauri:~$ ./install app
I learning by opinion public, so if you have something opinion you can create issue, thanks :u