Skip to content
/ alpha Public
forked from rulanugrh/alpha

Example Implementation Microservice with Docker, Kurbenetes, Go, Javascript, Mysql, and Graphql

Notifications You must be signed in to change notification settings

xllauca/alpha

 
 

Repository files navigation

ALPHA PROJECT

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

Technology Used

  • Docker - Main tools to build this project
  • Golang - The progamming language i use to build order service and book services
  • Javascript - The programming language i use to build user-services
  • Nginx - API Gateway I used to build this project
  • Gorm - Framework i use to client for database mysql
  • Sequelize - Framework for javascript to client database mysql
  • Mysql - The main database for this project
  • Gin-Gonic - Framework for golang web application
  • Express - Framework for javascript web application

Getting Started

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

Design Website

About

Example Implementation Microservice with Docker, Kurbenetes, Go, Javascript, Mysql, and Graphql

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 49.3%
  • CSS 29.3%
  • HTML 16.4%
  • JavaScript 4.0%
  • Other 1.0%