Skip to content

AhmedRaafat-AR/TechTrends

Repository files navigation

TechTrends

TechTrends is an online website used as a news sharing platform, that enables consumers to access the latest news within the cloud-native ecosystem. In addition to accessing the available articles, readers are able to create new media articles and share them.

Imagine the following scenario: you joined a small team as a Platform Engineer. The team is composed of 2 developers, 1 platform engineer (you), 1 project manager, and 1 manager. The team was assigned with the TechTrends project, aiming to build a fully functional online news sharing platform. The developers in the team are currently working on the first prototype of the TechTrends website. As a platform engineer, you should package and deploy TechTrends to Kubernetes using a CI/CD pipeline.

The web application is written using the Python Flask framework. It uses SQLite, a lightweight disk-based database to store the submitted articles.

Where:

About page - presents a quick overview of the TechTrends site

Index page - contains the content of the main page, with a list of all available posts within TechTrends

New Post page - provides a form to submit a new post

404 page - is rendered when an article ID does not exist is accessed

Project Steps Overview

1- Apply the best development practices and develop the status and health check endpoints for the TechTrends application.

2- Package the TechTrends application by creating a Dockerfile and Docker image.

3- Implement the Continuous Integration practices, by using GitHub Actions to automate the build and push of the Docker image to DockerHub.

4- Construct the Kubernetes declarative manifests to deploy TechTrends to a sandbox namespace within a Kubernetes cluster. The cluster should be provisioned using k3s in a vagrant box.

5- Template the Kubernetes manifests using a Helm chart and provide the input configuration files for staging and production environments.

6- Implement the Continuous Delivery practices, by deploying the TechTrends application to staging and production environments using ArgoCD and the Helm chart.

About

Cloud Native Application Architecture Nanodgree - Udacity TechTrends - Throughout this project, I have used Docker to package the application, and CI with GitHub Actions. For the release process, I have used Kubernetes declarative manifests, which were templated using Helm. To automated the CD process, you have used ArgoCD.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors