Skip to content

Automating the deployment of two microservices based apps using kubernetes and setting up a continuous delivery pipeline with CircleCI. Terraform was used as the IaC tool and setting up of metrics, monitoring and logging was also done.

Notifications You must be signed in to change notification settings

royalteegee/deploying-two-microservices-based-app

Repository files navigation

Microservices CircleCI

Automate CI/CD Pipelines, Monitoring, Metrics & Logging for two microservices based apps

  • Laravel App
  • Sock Shop App

Project Overview

In this project, you will apply ALL the skills you have acquired throughout your learning in ALTSCHOOL AFRICA SCHOOL OF ENGINEERING - CLOUD TRACK to automate the Continuous Delivery of two microservices based app including Monitoring, Metrics, and Logging.

We deploy our microservices-based architecture on Kubernetes and we need to create a clear IaaC (Infrastructure as Code) deployment to be able to deploy our services in a fast manner


Setup

  • Provision a webapp of your choosing with nginx/httpd frontend proxy and a database (mongo, postgresql etc) backend.

  • Provision the Socks Shop example microservice application - https://microservices-demo.github.io/


Project Tasks

  • Everything needs to be deployed using an Infrastructure as Code approach
  • In your solution please emphasize readability, maintainability and DevOps methodologies. We expect a clear way to recreate your setup and will evaluate the project decisions on:
    · Deploy pipeline
    · Metrics
    · Monitoring
    · Logging
    · Use Prometheus as a monitoring tool
    · Use Ansible or Terraform as the configuration management tool
    · You can use an IaaS provider of your choice.
    · The application should run on Kubernetes

Steps to recreate

  • Create a circleCI account
  • Get an AWS account and create a programmatic user with adminstratoraccess and save the access key and secret access key as environment variable on circleCI
  • Create a dockerhub account with user as DOCKERHUB_USER and password as DOCKERHUB_PASSWORD and save this as environment variable in your circleCI account
  • Setup the project repo in circleCI account
  • Replace the domain name in the "./terraform/variables.tf" file
  • Run the pipeline

CircleCI Continuous Delivery Pipeline

pipeline

Build

build

EKS Cluster

eks-cluster

Deploying both apps

deploying-larave deploying-sock-shop

Monitoring, Metrics, and Logging

monitoring-metrics

Nginx Ingress

nginx

laravel app page

laravel

sock shop app page

sock-shop

loki loggings for the laravel app

loki-laravel

loki loggings for the sock shop app

loki-sock-shop

prometheus monitoring

prometheus-monitoring

prometheus cpu usage

prometheus-monitoring

prometheus memory usage

prometheus-monitoring

About

Automating the deployment of two microservices based apps using kubernetes and setting up a continuous delivery pipeline with CircleCI. Terraform was used as the IaC tool and setting up of metrics, monitoring and logging was also done.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published