Skip to content

Project code for cd0354 Monolith to Microservices at Scale course taught by Justin Lee

License

Notifications You must be signed in to change notification settings

nnqt/udacity-project-monolith-to-microservices-project

 
 

Repository files navigation

Udagram Image Filtering Application

Udagram is a simple cloud application developed alongside the Udacity Cloud Developer Nanodegree. It allows users to register and log into a web client, post photos to the feed, and process photos using an image filtering microservice.

The project is split into two parts:

  • Frontend: Angular web application built with Ionic Framework.
  • Backend RESTful API: Node-Express application.

Report

Containers and Microservices

  1. Dividing an Application into Microservices

    • The application is structured into microservices, as shown in the project directory.
  2. Building and Running a Container Image Using Docker

    • The Docker image is available in my Docker Hub repository.

    Docker Hub Repository

Independent Releases and Deployments

  1. CI/CD Pipeline with CircleCI

    • The project uses CircleCI for continuous integration and continuous deployment.
    • The configuration can be found in the .circleci directory.

    CircleCI Pipeline

Service Orchestration with Kubernetes

  1. Deploying Microservices on AWS using Kubernetes

    • The microservices are successfully deployed on a Kubernetes cluster.
    • The output of kubectl get pods indicates that the pods are running successfully with the STATUS value Running.

    Pods Status

  2. Service Descriptions

    • The output of kubectl describe services confirms that no sensitive information such as database passwords is exposed.

    Service Description 1

    Service Description 2

    Service Description 3

    Service Description 4

  3. Configuring Scaling and Self-Healing

    • The Horizontal Pod Autoscaler (HPA) is configured, and its status is shown below.

    HPA Description

Debugging, Monitoring, and Logging

  1. Using Logs for Debugging

    • The logs from the backend API pods capture user activity and API call events, which are crucial for debugging.

    Pod Logs

About

Project code for cd0354 Monolith to Microservices at Scale course taught by Justin Lee

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 79.8%
  • HTML 7.7%
  • SCSS 5.3%
  • JavaScript 4.4%
  • Dockerfile 1.6%
  • Shell 1.2%