A collection of simple yet powerful microservices designed for cloud-native applications.
This repository serves as a portfolio of reusable applications, each one designed to be modular, lightweight
and easily integrable with containerized solutions like Docker Compose, AWS ECS and Kubernetes.
| Application | Description |
|---|---|
| Farewell API | Returns a random farewell phrase. |
| Fareweller API | Returns a farewell message based on Farewell and Name APIs. |
| Greeter API | Returns a greeting message based on Greeting and Name APIs. |
| Greeting API | Returns greeting phrases. |
| Greeter Saver | Returns same response as Greeter API and saves response to a database. |
| Name API | Returns a random name. |
| SQS Processor | Processes SQS messages and displays stats in a landing page. |
| Friends App | Displays a greeting message in a bubble next to a character from the TV Show "Friends" |
These applications were created as modular services that can be integrated into larger cloud-native projects.
The primary use cases include:
- Portfolio Projects: Demonstrating cloud-native development with Flask, Docker, ECS, EKS, Terraform and Terragrunt.
- Reusable Modules: Serving as building blocks for larger microservice architectures.
- Learning & Experimentation: Providing a playground for experimenting with cloud technologies, CI/CD pipelines and container orchestration.
- Docker Compose can start all applications locally:
- Review each
READMEfile for each application to understand endpoints and ports.
Within scripts folder, you can build and push all Docker images manually using the following bash script:
cd scripts
./build-and-push-images.shThis repository includes a GitHub Actions workflow to build and push Docker images for all applications.
The workflow is designed to be efficient by only building and pushing images for directories that have changed in a commit.
-
Trigger Conditions: The workflow triggers on push and pull_request events for any file or directory in the repository.
-
Selective Build and Push: Only directories containing a Dockerfile and changed in the current commit are built and pushed to Docker Hub.
-
Image Tagging: The Docker images are tagged using the short commit SHA (HEAD) for traceability.
This approach ensures that Docker images are only built and pushed when necessary, saving time and resources while maintaining traceability through commit SHA tags.
Within scripts folder, you can run a script to clean all docker images, containers and volumes:
cd scripts
./docker-clean-up.shContributions are welcome and greatly appreciated! If you would like to contribute to this project, please follow the guidelines within CONTRIBUTING.md.
This project is licensed under the terms of the MIT License.