mirror of
https://github.com/kamranahmedse/developer-roadmap.git
synced 2025-09-01 21:32:35 +02:00
Add new project idea
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
title: 'Automated DB Backups'
|
||||
description: 'Setup a scheduled workflow to backup a Database every 12 hours'
|
||||
isNew: false
|
||||
sort: 15
|
||||
sort: 1600
|
||||
difficulty: 'intermediate'
|
||||
nature: 'Backups'
|
||||
skills:
|
||||
|
@@ -2,7 +2,7 @@
|
||||
title: 'Basic DNS Setup'
|
||||
description: 'Purchase a custom domain and set up basic DNS records.'
|
||||
isNew: false
|
||||
sort: 6
|
||||
sort: 700
|
||||
difficulty: 'beginner'
|
||||
nature: 'DNS'
|
||||
skills:
|
||||
|
@@ -2,7 +2,7 @@
|
||||
title: 'Basic Dockerfile'
|
||||
description: 'Build a basic Dockerfile to create a Docker image.'
|
||||
isNew: false
|
||||
sort: 9
|
||||
sort: 1000
|
||||
difficulty: 'beginner'
|
||||
nature: 'Docker'
|
||||
skills:
|
||||
|
@@ -2,7 +2,7 @@
|
||||
title: 'Blue-Green Deployment'
|
||||
description: 'Setup a blue-green deployment strategy for your application.'
|
||||
isNew: false
|
||||
sort: 20
|
||||
sort: 1700
|
||||
difficulty: 'advanced'
|
||||
nature: 'DevOps'
|
||||
skills:
|
||||
|
@@ -2,7 +2,7 @@
|
||||
title: 'Configuration Management'
|
||||
description: 'Write an Ansible playbook to configure a Linux server.'
|
||||
isNew: false
|
||||
sort: 10
|
||||
sort: 1100
|
||||
difficulty: 'intermediate'
|
||||
nature: 'Ansible'
|
||||
skills:
|
||||
|
@@ -2,7 +2,7 @@
|
||||
title: 'Dockerized Service'
|
||||
description: 'Use GitHub Actions to Deploy a Dockerized Node.js Service'
|
||||
isNew: false
|
||||
sort: 13
|
||||
sort: 1400
|
||||
difficulty: 'intermediate'
|
||||
nature: 'Docker'
|
||||
skills:
|
||||
|
@@ -2,7 +2,7 @@
|
||||
title: 'Dummy Systemd Service'
|
||||
description: 'Create a long-running systemd service that logs to a file.'
|
||||
isNew: false
|
||||
sort: 8
|
||||
sort: 900
|
||||
difficulty: 'beginner'
|
||||
nature: 'Systemd'
|
||||
skills:
|
||||
|
@@ -2,7 +2,7 @@
|
||||
title: 'GitHub Pages Deployment'
|
||||
description: 'Write a simple GitHub Actions workflow to deploy a static website to GitHub Pages.'
|
||||
isNew: true
|
||||
sort: 3
|
||||
sort: 400
|
||||
difficulty: 'beginner'
|
||||
nature: 'CI / CD'
|
||||
skills:
|
||||
|
@@ -2,7 +2,7 @@
|
||||
title: 'IaC on DigitalOcean'
|
||||
description: 'Write Terraform code to create a Droplet on DigitalOcean'
|
||||
isNew: false
|
||||
sort: 11
|
||||
sort: 1200
|
||||
difficulty: 'intermediate'
|
||||
nature: 'Terraform'
|
||||
skills:
|
||||
|
@@ -2,7 +2,7 @@
|
||||
title: 'Log Archive Tool'
|
||||
description: 'Build a tool to archive logs from the CLI with the date and time.'
|
||||
isNew: false
|
||||
sort: 2
|
||||
sort: 200
|
||||
difficulty: 'beginner'
|
||||
nature: 'CLI'
|
||||
skills:
|
||||
|
@@ -2,7 +2,7 @@
|
||||
title: 'Prometheus and Grafana'
|
||||
description: 'Setup monitoring using Prometheus and visualize metrics in Grafana.'
|
||||
isNew: false
|
||||
sort: 21
|
||||
sort: 1800
|
||||
difficulty: 'advanced'
|
||||
nature: 'Monitoring'
|
||||
skills:
|
||||
|
@@ -2,7 +2,7 @@
|
||||
title: 'Multi-Container Application'
|
||||
description: 'Use Docker Compose to run a multi-container application'
|
||||
isNew: false
|
||||
sort: 14
|
||||
sort: 1500
|
||||
difficulty: 'intermediate'
|
||||
nature: 'Docker Compose'
|
||||
skills:
|
||||
|
47
src/data/projects/multiservice-docker.md
Normal file
47
src/data/projects/multiservice-docker.md
Normal file
@@ -0,0 +1,47 @@
|
||||
---
|
||||
title: 'Multi-Service Application'
|
||||
description: 'Setup a multi-service optimized docker implementation'
|
||||
isNew: false
|
||||
sort: 1900
|
||||
difficulty: 'advanced'
|
||||
nature: 'Docker'
|
||||
skills:
|
||||
- 'docker'
|
||||
- 'docker-compose'
|
||||
seo:
|
||||
title: 'Multi-Service Docker'
|
||||
description: 'Setup a multi-service optimized docker implementation'
|
||||
keywords:
|
||||
- 'Multi-Service Docker'
|
||||
- 'Docker'
|
||||
roadmapIds:
|
||||
- 'devops'
|
||||
---
|
||||
|
||||
The goal of this project is to help you practice a more advanced docker setup involving multiple services, volumes, networks, custom base images, multi-stage builds, secrets and more. The project will simulate a real-world scenario with multiple interconnected services, each with its own build requirements and optimizations.
|
||||
|
||||
## Requirements
|
||||
|
||||
Create a multi-service application using Docker that consists of the following components:
|
||||
|
||||
- **Web Application**: A basic react-based frontend application.
|
||||
- **API Service**: A Node.js Express backend API.
|
||||
- **Database**: A MongoDB instance for storing application data.
|
||||
- **Cache**: A Redis cache for improving performance.
|
||||
- **Reverse Proxy**: An Nginx reverse proxy to handle incoming requests.
|
||||
|
||||
Implement the following Docker features and best practices:
|
||||
|
||||
- Use Docker Compose to define and run the multi-container application.
|
||||
- Create custom base images for the web application and API service.
|
||||
- Implement multi-stage builds for the web application to optimize the final image size.
|
||||
- Set up a Docker network to allow communication between services.
|
||||
- Use Docker volumes for persistent data storage (database and cache).
|
||||
- Implement Docker secrets for sensitive information (e.g., database passwords).
|
||||
- Configure health checks for each service.
|
||||
- Optimize Dockerfiles for each service to reduce image sizes and improve build times.
|
||||
- Implement logging and log rotation for all services.
|
||||
|
||||
<hr />
|
||||
|
||||
By completing this project, you'll gain hands-on experience with advanced Docker concepts and best practices in a realistic, multi-service environment. This will prepare you for working with complex containerized applications in production scenarios.
|
@@ -2,7 +2,7 @@
|
||||
title: 'Nginx Log Analyser'
|
||||
description: 'Write a simple tool to analyze logs from the command line.'
|
||||
isNew: true
|
||||
sort: 1
|
||||
sort: 300
|
||||
difficulty: 'beginner'
|
||||
nature: 'CLI'
|
||||
skills:
|
||||
|
@@ -2,7 +2,7 @@
|
||||
title: 'Node.js Service Deployment'
|
||||
description: 'Use GitHub Actions to Deploy a Node.js Service to a remote server'
|
||||
isNew: false
|
||||
sort: 12
|
||||
sort: 1300
|
||||
difficulty: 'intermediate'
|
||||
nature: 'CI/CD'
|
||||
skills:
|
||||
|
@@ -2,7 +2,7 @@
|
||||
title: 'Server Performance Stats'
|
||||
description: 'Write a script to analyse basic server performance stats.'
|
||||
isNew: true
|
||||
sort: 0
|
||||
sort: 100
|
||||
difficulty: 'beginner'
|
||||
nature: 'CLI'
|
||||
skills:
|
||||
|
@@ -2,7 +2,7 @@
|
||||
title: 'Service Discovery'
|
||||
description: 'Setup service discovery with dummy services and Consul'
|
||||
isNew: false
|
||||
sort: 21
|
||||
sort: 2000
|
||||
difficulty: 'advanced'
|
||||
nature: 'DevOps'
|
||||
skills:
|
||||
|
@@ -2,7 +2,7 @@
|
||||
title: 'Simple Monitoring'
|
||||
description: 'Set up a basic monitoring dashboard using Netdata.'
|
||||
isNew: false
|
||||
sort: 7
|
||||
sort: 800
|
||||
difficulty: 'beginner'
|
||||
nature: 'Monitoring'
|
||||
skills:
|
||||
|
@@ -2,7 +2,7 @@
|
||||
title: 'SSH Remote Server Setup'
|
||||
description: 'Setup a basic remote linux server and configure it to allow SSH.'
|
||||
isNew: false
|
||||
sort: 4
|
||||
sort: 500
|
||||
difficulty: 'beginner'
|
||||
nature: 'SSH'
|
||||
skills:
|
||||
|
@@ -2,7 +2,7 @@
|
||||
title: 'Static Site Server'
|
||||
description: 'Setup a basic linux server and configure it to serve a static site.'
|
||||
isNew: false
|
||||
sort: 5
|
||||
sort: 600
|
||||
difficulty: 'beginner'
|
||||
nature: 'Nginx'
|
||||
skills:
|
||||
|
Reference in New Issue
Block a user