From 10dfd37d402087a2b2a3ec2b79d5ab2bbb49f376 Mon Sep 17 00:00:00 2001 From: Kamran Ahmed Date: Thu, 10 Oct 2024 12:03:57 +0100 Subject: [PATCH] Add new project ideas for deployment and service discovery --- src/data/projects/blue-green-deployment.md | 37 ++++++++++++++++ src/data/projects/monitoring.md | 2 +- src/data/projects/service-discovery.md | 49 ++++++++++++++++++++++ 3 files changed, 87 insertions(+), 1 deletion(-) create mode 100644 src/data/projects/blue-green-deployment.md create mode 100644 src/data/projects/service-discovery.md diff --git a/src/data/projects/blue-green-deployment.md b/src/data/projects/blue-green-deployment.md new file mode 100644 index 000000000..222917273 --- /dev/null +++ b/src/data/projects/blue-green-deployment.md @@ -0,0 +1,37 @@ +--- +title: 'Blue-Green Deployment' +description: 'Setup a blue-green deployment strategy for your application.' +isNew: false +sort: 20 +difficulty: 'advanced' +nature: 'DevOps' +skills: + - 'bash' + - 'devops' + - 'monitoring' +seo: + title: 'Blue-Green Deployment' + description: 'Setup a blue-green deployment strategy for your application.' + keywords: + - 'Blue-Green Deployment' + - 'Deployment Strategy' + - 'DevOps' + - 'Server Metrics' +roadmapIds: + - 'devops' +--- + +The goal of this project is to practice setting up a blue-green deployment strategy for a simple web application. This will allow you to deploy your application in a more efficient and reliable way. + +## Requirement + +You are required to take an existing application (e.g. the one you built in [multi-container service project](/projects/multi-container-service)) and setup a blue-green deployment strategy for it. The goal is to deploy the next version of the application in a separate container and switch the traffic to the new container only when the new version is ready. + +## Bonus + +- Setup a CI/CD pipeline to automatically deploy the application to the server when the code is pushed to the repository. +- Setup a monitoring system to monitor the application and the deployment process. + +
+ +After finishing this project you will have a good understanding of how to deploy a containerized application in a more efficient way without downtime and with zero data loss. \ No newline at end of file diff --git a/src/data/projects/monitoring.md b/src/data/projects/monitoring.md index 4683dfd4c..e7c242378 100644 --- a/src/data/projects/monitoring.md +++ b/src/data/projects/monitoring.md @@ -2,7 +2,7 @@ title: 'Prometheus and Grafana' description: 'Setup monitoring using Prometheus and visualize metrics in Grafana.' isNew: false -sort: 20 +sort: 21 difficulty: 'advanced' nature: 'Monitoring' skills: diff --git a/src/data/projects/service-discovery.md b/src/data/projects/service-discovery.md new file mode 100644 index 000000000..50cebec02 --- /dev/null +++ b/src/data/projects/service-discovery.md @@ -0,0 +1,49 @@ +--- +title: 'Service Discovery' +description: 'Setup service discovery with dummy services and Consul' +isNew: false +sort: 21 +difficulty: 'advanced' +nature: 'DevOps' +skills: + - 'devops' + - 'consul' + - 'api-gateway' + - 'monitoring' +seo: + title: 'Service Discovery' + description: 'Setup service discovery with dummy services and Consul' + keywords: + - 'Service Discovery' + - 'DevOps' + - 'Consul' +roadmapIds: + - 'devops' +--- + +The goal of this project is to help you understand how service discovery works and how to setup Consul to manage your services. The learning objectives are: + +- Understand how services register with Consul +- Learn how to query Consul for service information +- Implement a basic service discovery mechanism +- Understand service-to-service communication in a microservices architecture + +## Requirements + +The project has multiple parts: + +### Dummy Services + +You are required to create 3 dummy services, each service will just have a dummy endpoint (e.g. `/info`) that returns the current timestamp and the service name (e.g. Service A, Service B and Service C). Services should register themselves with Consul on startup. + +### API Gateway + +API gateway acts as a single point of entry for the application. It will be responsible for discovering the services using Consul's DNS interface or the API. The API gateway should be able to route requests to the appropriate service. + +### Consul + +Consul will be used to store the service information and to provide a single point of contact for the API gateway to discover the services. + +
+ +Once you have completed the project, you should have a basic understanding of how service discovery works and how to setup Consul to manage your services. \ No newline at end of file