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
-
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;
- 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
- 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
- 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
- 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
- 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)
- 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)
- 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
- Linux
- Bash Scripting
- Git SCM
- Docker
- Oracle VM VirtualBox
- Vagrant by HashiCorp
- Maven
- Spring
- Apache Heaven
- MySQL
- MongoB