Git Product home page Git Product logo

ayogun / devops-bootcamp-protein Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 1.0 34.29 MB

Here in this repository, I collected the projects that I developed during the DevOps Engineer Bootcamp organised by Patika.dev and sponsored by Protein and Protel.

Shell 51.33% Java 47.26% HTML 0.82% Dockerfile 0.27% Python 0.32%
aws devops docker jenkins kubernetes shell terraform vagrant linux pipeline cicd continuous-delivery

devops-bootcamp-protein's Introduction

DevOps-Bootcamp

I am attending a DevOps Engineer Bootcamp sponsored by Protein. Here in this repository, I am collecting the projects that I developed during the bootcamp. I will ellaborate this section as the time goes by.

 

Under the scope of this bootcamp, the covered topics were as followed by:

  • Introduction to DevOPs - Operation System & Linux Basics
  • Version Control & Git - Build & Package Manager Tools
  • Containers with Docker
  • Build Automation - CI/CD with Jenkins
  • Container Orchestration with Kubernetes
  • AWS & Kubernetes - AWS EKS
  • Infrastructure as Code with Terraform

Protein DevOps Engineer Bootcamp

 

About

  • This repository contains all assignment projects made under the Patika.dev & Protein DevOps Engineer Bootcamp.

  • Each directory has its readme files which contain installation on usage information.

  • Sample projects are provided for testing purposes.

  • Branding works were made with free tools. It does not possess any kind of trademark and it is been made for easy remembering only.

 

Projects are built with;

Linux Bash Docker Git VirtualBox Vagrant

 

Week 1:

Introduction to DevOPs - Operation System & Linux Basics

  • Introduction to DevOps
  • Operating System & Linux
  • Virtualization
  • Package Manager
  • Working with Vim Editor
  • User & Permissions
  • Basic Linux Command
  • Shell Scripting
  • Environment Variables
  • Networking
  • SSH - Secure Shell

Week 2:

Version Control & Git - Build & Package Manager Tools

  • Introduction to Version Control Systems
  • Git & Github
  • Git for DevOps
  • Build & Package Manager Tools
  • Build an artifact
  • Run Application artifact
  • Publish application artifact & artifact repository
  • Dependency Management in Sofware Development
  • Package Manager in JS app
  • Build and run applications in JS
  • Build Tools & Docker

Week 3:

Containers with Docker

  • What is a Container?
  • Docker Components and architecture explained
  • Docker vs. Virtual Machine
  • Main Docker Commands
  • Debugging a Docker Container
  • Demo Project Overview - Docker in Practice (Nodejs App with MongoDB and MongoExpress UI)
  • Developing with Containers
  • Docker Compose - Running multiple services
  • Dockerfile - Building our own Docker Image
  • Deploy containerized app
  • Docker Volumes - Persist data in Docker
  • Volumes Demo - Configure persistence for our demo project

Week 4:

Build Automation - CI/CD with Jenkins

  • What is Build Automation? What is Jenkins?
  • Install Jenkins on cloud server (Docker vs Server install)
  • Jenkins plugins
  • Installing build tools in Jenkins
  • Jenkins Basics Demo
  • Docker in Jenkins
  • Make Docker commands available in Jenkins
  • Build Docker Image
  • Push to DockerHub Repo
  • Jenkins Pipeline (Use Cases)
  • Create a simple Pipeline Job
  • Full Jenkinsfile Syntax Demo
  • Create a full Pipeline Job
  • Build Java App
  • Build Docker Image
  • Push to private DockerHub
  • Credentials in Jenkins
  • Jenkins Shared Library
  • WebHooks - Trigger Jenkins Jobs automatically

Week 5:

Container Orchestration with Kubernetes

  • Introduction to Kubernetes
  • Understand the main Kubernetes Components
  • Node, Pod, Service, Ingress, ConfigMap, Secret, Volume, Deployment, StatefulSet
  • Kubernetes Architecture
  • Minikube and kubectl - Local Setup
  • Main Kubectl Commands - K8s CLI
  • Create and debug Pod in a Minicluster
  • Kubernetes YAML Configuration File
  • Create and Configure Deployment and Service Component
  • Organizing your components with K8s Namespaces
  • Kubernetes Service Types
  • Making your App accessible from outside with Kubernetes Ingress
  • Persisting Data in Kubernetes with Volumes
  • Persistent Volume
  • Persistent Volume Claim
  • Storage Class
  • ConfigMap and Secret Kubernetes Volume Types
  • Deploying Stateful Apps with StatefulSet
  • Deploying Kubernetes cluster on a Managed Kubernetes Service (K8s on Cloud)
  • Helm - Package Manager of Kubernetes
  • Helm Demo: Install a Stateful Application on Kubernetes using Helm
  • Prometheus Operator Demo with Helm: Setup Prometheus Monitoring in K8s
  • Secure your cluster - Authorization with Role-Based Access Control (RBAC)

Week 6:

Kubernetes on AWS - EKS

  • AWS & Kubernetes
  • AWS Container Services: Overview (ECR, ECS, EKS, Fargate)
  • Create an EKS cluster with AWS Management Console (UI)
  • Create cluster VPC
  • Create cluster Roles
  • Use Cloudformation Stack
  • EC2 Worker Nodes
  • Fargate Profile
  • Configure Austoscaler
  • Configure kube context to connect to the cluster
  • Create an EKS cluster with eksctl (the easy way)

Week 7:

Infrastructure as Code with Terraform

  • What is Terraform? How it works
  • Architecture
  • Providers
  • Resources & Data Sources
  • Variables & Output Values
  • Environment variables in Terraform
  • Terraform commands
  • Terraform State
  • Provisioners
  • Modules
  • Remote State
  • Terraform & AWS
  • Create Security Group
  • Create VPC
  • Create Subnet
  • Create Route Table
  • Create Internet Gateway
  • Create key-pair
  • Provision EC2 server
  • Modularize the demo project
  • Terraform & AWS & Kubernetes
  • Use existing modules from Terraform Registry
  • Create VPC
  • Provision EKS cluster
  • Configuration management with Ansible

 

💻 Used Technologies

  • Linux
  • Bash Scripting
  • Git SCM
  • Docker
  • Oracle VM VirtualBox
  • Vagrant by HashiCorp
  • Maven
  • Spring
  • Apache Heaven
  • MySQL
  • MongoB

devops-bootcamp-protein's People

Contributors

ayogun avatar

Watchers

 avatar  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.