An open API service indexing awesome lists of open source software.

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.

Awesome Lists containing this project

README

          

# microservice-project

[![GitHub last commit](https://img.shields.io/github/last-commit/Alexandrbig1/microservice-project)](https://github.com/Alexandrbig1/microservice-project/commits/main)
[![CI](https://github.com/Alexandrbig1/microservice-project/actions/workflows/ci.yml/badge.svg)](https://github.com/Alexandrbig1/microservice-project/actions)
[![Docker](https://img.shields.io/badge/Docker-2496ED?logo=docker&logoColor=white)](https://www.docker.com/)
[![AWS](https://img.shields.io/badge/AWS-232F3E?logo=amazonaws&logoColor=white)](https://aws.amazon.com/)
[![Terraform](https://img.shields.io/badge/Terraform-623CE4?logo=terraform&logoColor=white)](https://www.terraform.io/)
[![Kubernetes](https://img.shields.io/badge/Kubernetes-326CE5?logo=kubernetes&logoColor=white)](https://kubernetes.io/)
[![Shell](https://img.shields.io/badge/Shell-FFD500?logo=gnu-bash&logoColor=black)](https://www.gnu.org/software/bash/)
[![Bash](https://img.shields.io/badge/Bash-4EAA25?logo=gnubash&logoColor=white)](https://www.gnu.org/software/bash/)
[![Python](https://img.shields.io/badge/Python-3776AB?logo=python&logoColor=white)](https://www.python.org/)
[![Linux](https://img.shields.io/badge/Linux-FCC624?logo=linux&logoColor=black)](https://www.linux.org/)
[![Nginx](https://img.shields.io/badge/Nginx-009639?logo=nginx&logoColor=white)](https://nginx.org/)
[![Jenkins](https://img.shields.io/badge/Jenkins-D24939?logo=jenkins&logoColor=white)](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


Bash
Git
Linux
AWS
Docker
Kubernetes
Terraform
Jenkins
Nginx

---

## Connect with me



linkedin


YouTube


Discord


stackoverflow


dribbble


behance


Upwork