GithubHelp home page GithubHelp logo

udacity-capstone's Introduction

Udacity Capstone Project

This project is part of my Udacity Nanodegree requirements.

Project Overview

-CI/CD with Rolling Update This project uses Jenkins as CI/CD tool for deployement of Docker container using Rolling Deployemnt. In Rolling Deployement startegy Kubernates creates additional pods with new Docker Image and wait to pass the health check for new application. After passing the health check only, It routes traffic to new application and destroy older pods. It help us to achieve zero downtime with more reliability.

-Autoscaling with EKS This project uses private Elastic Container Registry (ECR) to store Docker images and AWS EKS Cluster to host application.

-Infrastructure as Code It uses Cloudformation for automating EKS Infra creation.

Project Structure

  • infra : Build related scripts and files.
  • infra > cloudformation : Cloudformation template for EKS Infra
  • infra > k8 : Kubernates connfig for app and deployments
  • infra > scripts : Bash script for running cloudformation and Docker build
  • nest-app : A Sample Nest.js application, using Jest as testing framework.

Running Nest.js application

# development
$ npm run start

# watch mode
$ npm run start:dev

# production mode
$ npm run start:prod

Test the Nest.js application

# unit tests
$ npm run test

# e2e tests
$ npm run test:e2e

# test coverage
$ npm run test:cov

Scripts

  • Go to scripts dir cd infra/scripts and chmod +x * to add execute permission
  • Create EKS Infrastructure via CloudFormation
  • Create Network Infrastructure First
  • ./create-stack.sh <stack_name> ../cloudformation/network.cf.yml ../cloudformation/network.param.json : creates the network stack
  • ./create-stack.sh <stack_name> ../cloudformation/eks.cf.yml ../cloudformation/eks.param.json : creates the EKS stack
  • ./delete-stack.sh <stack_name> : Deletes the <stack_name>

Kubernates Commands

# Get Details of k8 cluster
kubectl get all

# Get Deployemnts 
kubectl get deployments

# Get Nodes
kubectl get nodes

# Get Pods
kubectl get pods

# See PODs logs , Identifier can be label, Id etc 
kubectl logs <pod_idenntifier>

udacity-capstone's People

Contributors

amitkumar-bst avatar

Watchers

Amit Kumar avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.