https://github.com/alexandrbig1/microservice-project
A hands-on DevOps project for mastering CI/CD, infrastructure automation, and microservices. This repository showcases practical skills in Bash scripting, Docker, Kubernetes, Terraform, Jenkins, AWS, and more - covering the full DevOps toolchain from environment setup to automated deployment.
https://github.com/alexandrbig1/microservice-project
argocd aws bash ci-cd devops docker grafana helm jenkins k8s kanban kubernetes linux powershell project prometheus terraform zsh
Last synced: about 1 month ago
JSON representation
A hands-on DevOps project for mastering CI/CD, infrastructure automation, and microservices. This repository showcases practical skills in Bash scripting, Docker, Kubernetes, Terraform, Jenkins, AWS, and more - covering the full DevOps toolchain from environment setup to automated deployment.
- Host: GitHub
- URL: https://github.com/alexandrbig1/microservice-project
- Owner: Alexandrbig1
- License: mit
- Created: 2025-06-12T21:02:33.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-06-22T17:13:51.000Z (8 months ago)
- Last Synced: 2025-06-22T18:24:30.189Z (8 months ago)
- Topics: argocd, aws, bash, ci-cd, devops, docker, grafana, helm, jenkins, k8s, kanban, kubernetes, linux, powershell, project, prometheus, terraform, zsh
- Language: Shell
- Homepage:
- Size: 12.7 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# microservice-project

[](https://github.com/Alexandrbig1/microservice-project/commits/main)
[](https://github.com/Alexandrbig1/microservice-project/actions)
[](https://www.docker.com/)
[](https://aws.amazon.com/)
[](https://www.terraform.io/)
[](https://kubernetes.io/)
[](https://www.gnu.org/software/bash/)
[](https://www.gnu.org/software/bash/)
[](https://www.python.org/)
[](https://www.linux.org/)
[](https://nginx.org/)
[](https://www.jenkins.io/)
## microservice-project
This repository is an educational microservices and DevOps playground that contains multiple example modules showing how to provision and operate microservice infrastructure using modern tooling: shell scripts, Docker, Kubernetes (Helm), Terraform (AWS), Argo CD, Jenkins, and GitHub Actions.
The goal: provide small, reusable modules and hands-on examples for learning and improving DevOps & SRE skills. Each module can be used independently for experiments, CI/CD exercises, and demonstrations.
Key notes:
- This repository is intentionally modular: many subfolders are separate exercises and example projects (Terraform modules, Helm charts, Dockerized apps, CI pipelines).
- Secrets and sensitive values are not stored in the repo. Use environment variables, AWS Secrets Manager, SSM, or your CI secret store.
- The examples are opinionated and simplified for learning; adapt them before using in production.
## What this repo contains
Top-level structure (high level):
```
src/
practice/ # lab exercises and small examples (Docker, Terraform, Helm, etc.)
project/ # larger composed projects and end-to-end examples (EKS, Jenkins, ArgoCD)
script/ # helper scripts for local env setup
```
Highlights:
- Terraform modules: `vpc`, `eks`, `ecr`, `rds`, `s3-backend`, `jenkins`, `argo_cd`.
- Helm charts: `charts/django-app` and others for demo deployments.
- Dockerized sample apps: Django, PHP, FastAPI in different folders under `practice/` and `project/`.
- CI/CD examples: Jenkins Helm deployments, Argo CD configs, and example GitHub Actions workflows (see `.github/workflows`).
## Quick start (local)
1. Clone the repo:
```bash
git clone https://github.com/Alexandrbig1/microservice-project.git
cd microservice-project
```
2. Read the module you want to try, for example:
```bash
ls src/project/aws-kube-jenkins
```
3. Follow the README inside each module (e.g., `src/project/iac-aws-terraform/README.md`) for module-specific setup.
## Common workflows
Terraform (example):
```bash
cd src/project/iac-aws-terraform
# ensure AWS credentials and region are set
terraform init
terraform plan
terraform apply
```
Build & push Docker image to ECR (example):
```bash
docker build -t .dkr.ecr..amazonaws.com/django-app:TAG ./src/project/iac-aws-terraform/django
aws ecr get-login-password --region | docker login --username AWS --password-stdin .dkr.ecr..amazonaws.com
docker push .dkr.ecr..amazonaws.com/django-app:TAG
```
Helm (install demo chart):
```bash
helm upgrade --install django-app src/project/iac-aws-terraform/charts/django-app --values src/project/iac-aws-terraform/charts/django-app/values.yaml --namespace app --create-namespace
```
Argo CD (example flow):
1. Deploy Argo CD into cluster (see module `project/modules/argo_cd` or `src/project/...`).
2. Register the repo/application in Argo CD pointing to the desired chart path (e.g., `charts/django-app`).
Jenkins (demo):
- A Helm-based Jenkins deployment is available in `src/project/...` (or `practice/...`). See the `values.example.yaml` in the module for credential wiring.
CI / GitHub Actions
- This repo contains example GitHub Actions workflows under `.github/workflows/` for CI and simple automation; update the workflow names and secrets for your account. The top badge links to `actions/workflows/ci.yml` if present.
## Security & secrets
- Do not commit secrets. Use AWS Secrets Manager, SSM Parameter Store, Kubernetes Secrets, or CI secret stores.
- If you configure remote Terraform state (S3 + DynamoDB), create the S3 bucket and DynamoDB table before `terraform init`.
## Contributing & learning
This repository is a learning resource. Contributions, corrections, and improvements are welcome. Suggested ways to contribute:
- Add clearer module READMEs with step-by-step lab guides.
- Add CI tests (lint, terraform validate, helm lint) to `.github/workflows`.
- Add small unit/integration tests for any scripts or code under `src/`.
When contributing, prefer small, focused pull requests and include a short description of what was tested locally.
## License
This project is licensed under the [MIT License](LICENSE).
---
## Languages and Tools
---
## Connect with me