Coder Social home page Coder Social logo

devops-project-001's Introduction

DevOps-Project-001

The project involves building a complete automated deployment

Problem Statement

  1. Build a complete automated deployment for a web app residing in a GitHub repository into a Kubernetes Cluster hosted on a cloud platform. The web app should have a url so that public users can access it.
  2. Add autoscaling to handle unexpected load whereby the cluster determines the load and scales up web apps horizontally.
  3. Deploy a single monitoring tool to monitor and visualize the cluster.

Setup

  1. Using a remote Jenkins Automation Server running on my local machine. The Jenkins Server is configured with docker and kubectl.
  2. Install Docker Pipeline and Google Kubernetes Engine plugins.
  3. Create a kubernetes cluster with Google Kubernetes Engine on the Google Cloud Platform
  4. Configure credentials on the Jenkins Server that allows it to authenticate into GKE using Service Account, configure credentials for GitHub Repo and Docker Hub
  5. Keep Dockerfile, Jenkinsfile, deployment.yaml and application files on the GitHub repository.
  6. Dockerfile contains the instructions on how to containerize the application
  7. deployment.yaml contains the kubernetes manifest files that define how to deploy the application from docker hub unto the kubernetes cluster.
  8. Jenkinsfile contains the following 5 stages; Checkout, Build, Test, Push Image, Deploy to GKE
  9. Configure build triggers for the GitHub Repository to automatically build and deploy to the kubernetes test cluster and then wait for approval for the deployment unto the production cluster
  10. Implement Autoscaling using HorizontalPodAutoscaler(k8s) for pods and Cluster Autoscaler(cloud platform)
  11. Using Helm install/deploy Prometheus and Grafana to kubernetes cluster, configure them to monitor the cluster

devops-project-001's People

Contributors

maxwell-oyaro2 avatar

Stargazers

Otieno Gabriel 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.