Hi! Iβm Ridho Suhaebi Arrowi, a software engineer diving into microservices and cloud-native architecture. This repo is my personal playground for mastering modern distributed systems.
This repository documents my personal journey in learning how to build, containerize, orchestrate, and deploy Microservices using modern tools like Spring Boot, Docker, and Kubernetes.
The project is structured around several key topics Iβve studied hands-on, including microservices architecture principles, cloud-native design patterns, containerization, service discovery, and resilience strategies.
- Spring Boot
- Create SpringBoot project
- DTO pattern
- Model Mapper
- Map Struct
- Spring Doc
- Open API
- Lucidchart Blog
- Docker
- Docker Hub
- Buildpacks
- Google Jib
- Docker Compose
- 12-Factor methodology
- Beyond the Twelve-Factor App book
- Spring Cloud
- Spring Cloud Config
- Spring Cloud Bus
- RabbitMQ
- Hookdeck
- Spring Cloud Netflix
- Spring Cloud OpenFeign
- Netflix OSS Blog
- Resilience4j
- Spring Cloud Gateway
- Stripe RateLimiter Blog
- Apache Benchmark
- Grafana
- Grafana Loki Setup
- Micrometer
- Prometheus
- Grafana Dashboards
- OpenTelemetry
- OpenTelemetry Java Auto Instrumentation
- Keycloak
- Apache Kafka
- Kafka Compose File
- Docker Desktop Kubernetes
- Kubernetes Dashboard
- Helm
- Chocolatey
- Bitnami Helm Charts
- Spring Cloud Kubernetes
- Spring Cloud Kubernetes Blog
- Google Cloud
- GCP SDK Installation
- K8s Ingress
- Ingress Controllers
- Istio
| Command | Description |
|---|---|
mvn clean install -Dmaven.test.skip=true |
Generate JAR inside target folder |
mvn spring-boot:run |
Start Spring Boot Maven project |
mvn spring-boot:build-image |
Generate Docker image using Buildpacks |
mvn compile jib:dockerBuild |
Generate Docker image using Google Jib |
Image:
ridhorezi1212/accounts:s4
| Command | Description |
|---|---|
docker build . -t ridhorezi1212/accounts:s4 |
Build Docker image using Dockerfile |
docker run -p 8080:8080 ridhorezi1212/accounts:s4 |
Run Docker container |
docker images |
List all Docker images |
docker image inspect <image-id> |
Show image details |
docker image rm <image-id> |
Remove image |
docker image push docker.io/ridhorezi1212/accounts:s4 |
Push image to DockerHub |
docker image pull docker.io/ridhorezi1212/accounts:s4 |
Pull image from DockerHub |
docker ps, docker ps -a |
Show running/all containers |
docker container start <id> |
Start container |
docker container stop <id> |
Stop container |
docker container restart <id> |
Restart container |
docker container kill <id> |
Kill container |
docker container inspect <id> |
Inspect container |
docker container logs <id> |
Fetch container logs |
docker container logs -f <id> |
Follow logs |
docker container pause/unpause <id> |
Pause/unpause container |
docker container rm <id> |
Remove container |
docker container prune |
Remove all stopped containers |
docker compose up |
Start services from docker-compose.yml |
docker compose down |
Stop and remove services |
docker run -p 3306:3306 --name accountsdb -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=accountsdb -d mysql |
Run MySQL container |
docker run -p 6379:6379 --name redis -d redis |
Run Redis container |
docker run -p 8080:8080 -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin quay.io/keycloak/keycloak:22.0.3 start-dev |
Run Keycloak container |
| Command | Description |
|---|---|
ab -n 10 -c 2 -v 3 http://localhost:8072/bank/cards/api/contact-info |
Load testing (10 requests, 2 concurrent) |
| Command | Description |
|---|---|
kubectl apply -f filename.yaml |
Apply config |
kubectl get all |
Get all resources |
kubectl get pods |
List pods |
kubectl describe pod <id> |
Pod details |
kubectl delete pod <id> |
Delete pod |
kubectl get services |
List services |
kubectl describe service <id> |
Service details |
kubectl get nodes |
List nodes |
kubectl get replicasets |
List replica sets |
kubectl get deployments |
List deployments |
kubectl get configmaps |
List configmaps |
kubectl get events --sort-by=.metadata.creationTimestamp |
List events sorted |
kubectl scale deployment <deployment-name> --replicas=1 |
Scale deployment |
kubectl set image deployment <name> <container>=<image> --record |
Set new image |
kubectl rollout history deployment <name> |
View rollout history |
kubectl rollout undo deployment <name> --to-revision=1 |
Rollback deployment |
kubectl get pvc |
List PVCs |
kubectl delete pvc <name> |
Delete PVC |
| Command | Description |
|---|---|
helm create [NAME] |
Create chart |
helm dependencies build |
Recompile dependencies |
helm install [NAME] [CHART] |
Install chart |
helm upgrade [NAME] [CHART] |
Upgrade release |
helm history [NAME] |
Release history |
helm rollback [NAME] [REVISION] |
Rollback release |
helm uninstall [NAME] |
Uninstall release |
helm template [NAME] [CHART] |
Render templates locally |
helm list |
List Helm releases |
This is a learning project β use at your own risk. Licensed under the MIT License.