** Upcoming Kubernetes training starting February 3rd 2024**. Contact 647-677-4055 to know more.

DevOps Course Duration:40 Hrs

Course Details

Linux

Linux is a well-known OS that runs on the server-side. Though there are many vendors of Linux OS, Yet RedHat family OS comes with more stability and is so widely used. From the RedHat family, CentOS is one of the widely used ones.

  • Introduction to Linux OS, Command Syntaxes, Hardware and Software information review.
  • Files: Manage files like list, create, delete, copy & rename files
  • Directories: Directory Structure, Navigate Directories, Manage Directories like list, create, delete, copy & rename dir and Move Dir & Files.
  • Editor: VIM editor, Discuss three modes which are ESC, INSERT & COLON Modes.
  • Utilities: Commands like finding files, Download files from internet & Pipes.
  • Administration Topics: Process Management, User Management with SUDO, Package Management, Service Management,Permission Management & Network informative commands.
  • Project Setup: Using the knowledge of Linux, we will setup theproject end to end manually with the given manual steps using Linux VMs in AWS Cloud.

By end of this topic you will know how to manage and work on Linux OS that run on AWS Cloud.

img
img

GIT REPOS

GIT is the most widely used VCS utility by most of the modern development projects, Since it has its own advantages over other tools. Services like GitHub makes even the things much simpler in using these tools.

  • GitHub: Start Creating account and repositories in GitHub.
  • CLONE: Clone the repositories in local systems using editor from UI and as well as from CLI.
  • COMMIT: Changes to be committed to repositories over editor and CLI.
  • PUSH: Authenticating ways to GitHub to push the Code to Central Repositories
  • Utilities: Commands like finding files, Download files from internet & Pipes.
  • PULL: Pull the code changes to the remote servers to execute the code on the server side.
  • MERGE: In cases we choose to process the approach of editing the code then we usually go with creating Branches and merge the code with main code after the process of approvals.
  • TAGS: Git Tags are the most widely used strategy among the industry in release management and we do perform creating tags and aligning the whole CICD process based on the tags.

By end of this topic you will know how to manage code and commit the local changes and push the changes to remote repositories.Also as a standard practice we pull the code on servers and run those on server rather than making the code on servers.

SHELL SCRIPTING

Shell is the default in Linux and hence most of the automation goes on with Shell Scripting in Linux OS. This is very simple yet very powerful when it comes to automation.

  • SHELL TYPES Types of shell and why do we choose BASH.
  • SHE-BANG & COMMENTS: Use of She-bang in scripts and followed with how to write comments.
  • PRINT OUTPUT: How to print text while running the shells scripts. Colorizing output to make the scripts look much effective.
  • VARIABLES: Deal with basic variables, then followed with properties of the variables, then followed with dynamic variable declarations.
  • INPUTS: Collecting the inputs from the user to run the scripts.
  • FUNCTIONS: Deal with functions to keep the CODE DRY.
  • CONDITIONS & LOOPS: Logic control of scripts using if condition and iterative way of executing things using for and while loop.
  • MISC: Redirectors, Exit Status and their usage in scripts
  • PROJECT SETUP USING SHELL SCRIPTS: Using the knowledge of the topics which were learned we go with implementation in project.

By end of this topic you will know how to write shell scripting and write the code in standard ways.

img
img

ANSIBLE

Shell is the deAnsible is currently the leading Configuration Management tool in the market usage. Though it is simple and most powerful one with a lot of loaded collection with modules.

  • Configuration Management: Introduction to CM, Evolution of CM, Advantages of CM, How Ansible is leader, Ansible Installation
  • Inventory: Ansible Inventory and how best it can be setup as per need.
  • Ansible with SSH: Ansible using SSH Password, then SSH Keys, Overview of LDAP or AD, Ansible Configuration file
  • Ad-Hoc: Executing Ansible Ad-Hoc commands
  • Playbooks: Need of Playbook, Introduction to YAML, Playbook Layout, Simple Playbook that connects to the nodes.
  • Variables: Different ways of parsing variables.
  • Roles: Need of Roles, Role structure, Playbooks on roles
  • Misc: Tags, Filters, Handlers Loops, Vault.
  • Ansible Pull: Need of pull
  • Ansible AWX: UI Management tool for Ansible.

By end of this topics we learn the options in Ansible and then we will implement the project in Ansible to support the way it requires in realtime for multiple environments like "DEV", "PROD".

JENKINS

Jenkins is well known for CI tool, Yet it can be used as automation ool as well. Hence we will try to adopt this tool for automating the work which we did so far with the help of Jenkins pipelines.

  • Configuration Management: Introduction to CM, Evolution of CM, Advantages of CM, How Ansible is leader, Ansible Installation
  • Jobs: FreeStyle vs Pipeline (Declarative vs Scripted).
  • Jenkinsfile: Discuss the different options in Jenkinsfile.
  • Seed Jobs: The way for creating automated jobs in Jenkins by using seed jobs.
  • Plugins: Different plugins that we use for the requirements of automating our efforts.
  • Shared Libraries: When we start using the pipelines extensively then we will start seeing the need of keeping the code DRY and that is where the Shared Libraries in Jenkins comes into picture. Also this is widely used in enterprise market.
  • CI is one of the practice in the modern development. It helps developers to identify the issues in much early before releasing the code. DevOps engineers usually try to make these configurations and help developers to stabilize the process.
  • CI Pipelines: Introduction to CI & Pipelines steps involved in general.
  • SonarQube: Setup sonarqube application and scan the code and report it.
  • Nexus: Use this to archive the artifacts in central place.
  • Selenium: How to do the automated tests when there is a new application has been about to release
  • Builds: How to make the compile the code and make the builds.
  • Release Strategy: Different best practices and its outcomes to enhance these pipelines to Continuous Delivery and then to Continuous Deployment.
  • In this strategy we discuss about branching, tagging and merging the code in Git repos.

By end of this topic you will know how the flow works for the development, CI Pipelines with Jenkins. Also some of the Jenkins best practices like DRY will be implemented with SEED jobs and Shared Libraries.

img
img

TERRAFORM

Infrastructure as Code(IaC) is also a key and foundation for DevOps practices since modern applications are tying to achieve Immutable Infrastructure. Early days infra was the one of the most manual effort involved in the whole process of releasing the applications, But Terraform has solved the problem by providing a common syntax that works with multi-cloud.

  • IaC: Introduction to IaC (Infrastructure as Code) tool and need for it. What Terraform is helping us to achieve.
  • JHCL: Terraform DSL which is HCL v2 (Hashicorp Configuration Language). Introduction to it, Some basics of how it looks like.
  • Introduction: Terraform Files, Terraform Commands.
  • Outputs: Terraform outputs and different ways of using it with root module and sub module.
  • Variables: Different ways of parsing variables to Terraform and its precedence and best practices. Also followed with Data types & Types of Variables in Terraform.
  • Terraform Core Resources: Providers, Resources, Provisioners
  • Modules: Need for modules and how it helps to keep the code DRY.
  • Logical Statements: Terraform Loops & Conditions.
  • Functions: In Built functions of Terraform.

By end of this topic we undergo completing our project with Terraform extensively all the topics in it. Majorly we use terraform to create infra for both Mutable and Immutable approaches and it involves in CICD deployments.

PROMETHEUS & GRAFANA

Monitoring is the key factor in the operations world. Also getting the insights of the application usage and performance is also a very important factor helps you in proactively monitor and resolve the issues of the application platform. Tools like Nagios or Zabbix helps in blackbox monitoring but not whitebox. Hence tools like Prometheus are more demand in market.

  • Introduction: Basics of Monitoring and how Prometheus is different than others.
  • Installation & Configuration: Prometheus Monitoring Setup, Pull Metrics, Dynamic Nodes Setup with AWS.
  • Jenkinsfile: Discuss the different options in Jenkinsfile.
  • Functions: Inbuilt functions of Prometheus and setup custom record rules.
  • Grafana: Create Dashboards from Prometheus Data Source.
  • Alert Manager: Configure Alerts in Prometheus Alert Manager and report any kind of application issue to email.

By end of this topic we undergo learning Prometheus and we monitor our services using this tool and grab Metrics in Grafana.

img
img

ELK

Log Aggregation is a very important piece to get the analytics of the application with respect to performance and usage of it. So all the logs of applications from all the instances are really very important and needs to be placed in some central system. So tools like ELK gives log aggregation in better way and it is open-source as well.

  • Log Aggregation: Introduction to log aggregation and Importance of it in Business.
  • Components: Understand the architecture of ELK, Components Involved in it.
  • Logs: Understand Structured and Unstructured logs and use components like Filebeat & Logstash to handle them.
  • Kibana: Collect log indices and create patters in Kibana, Choose data types for the logs coming in, Dashboards & Data Visualisation in Kibana.

By end of this topic you will know how to collect logs and make some analytics on top of that using Kibana Dashboard and understand the performance of our project application.

DOCKER

Clearly Docker major player in the container field, And Docker is only one form of container technology. So we talk about how to manage containers and focus on making Docker Imaging

  • Docker: Introduction to Containers & Anatomy of Docker, Docker Echo System, Docker container options
  • Docker Imaging: Making Docker Images & Setup project component Images.

By end of this topic you will know how to manage docker containers and make images of docker as per the need of the project.

img
img

KUBERNETES & HELM

Kubernetes is a portable, extensible, open-source platform for managing containerised workloads and services, that facilitates both declarative configuration and automation. It has a large, rapidly growing ecosystem. Kubernetes services, support, and tools are widely available. Helm is a package manager for Kubernetes

  • Kubernetes Introduction: Need of an Orchestration tool and why Kubernetes is leading, Echo System of Kubernetes
  • Installation: Setup a single node cluster for lab purpose and EKS cluster for full project.
  • Kubernetes Resources: Pods, Services, ReplicaSets, Deployments, DaemonSets, StatefulSets, Secrets, ConfigMaps. HPA (Auto scaling), Resources of Pods.
  • Monitoring: Enabling Prometheus & Grafana monitoring.
  • Log Aggregation: Enabling Log aggregation on Kubernetes Cluster
  • Helm Charts: Use of Helm Charts, Charts for project. Deployment of charts using Jenkins.
  • FULL CICD: Full CICD on Kubernetes using rolling updates.

By end of this topic you will know how to manage containers in Kubernetes cluster, Scale them, Release applications in much faster way.

AZURE DEVOPS

Azure DevOp is one of the most trending tool in the market because of its approach towards the requirements of the project. It is a one stop shop for Agile development projects.

  • Pipelines, Releases, Repos, Artifacts

By end of this topic you will know how to manage pipelines with Azure and do CICD with Azure DevOps end to end.

img
img

AWS

In this section we are going to explore different AWS services. So far we would have discussed about setting up the project but not the best practices of setting up the project like Security, Scalability, High Availability and others. In this section we are going to discuss about those concepts and implement using the services of AWS.

  • Load Balancer: We discuss about the need to Load Balancer and we setup the ALB & NLB and understand the need of both with scenario based.
  • ALB Rules: There are different ways of setting up the listener rules we discuss through them.
  • AutoScaling: We discuss the need of autoscale for any application and we discuss the strategy of Instance refresh.
  • Security: We discuss the security aspect of application with VPC in Private subnets, Load Balancers with security enabled services like WAF & Sheild.
  • Databases: We discuss the DB components services of AWS like RDS and ElasticCache.
  • Containers: We discuss EKS cluster and setup application inside the Cluster.
  • CI/CD: We will discuss the CI/CD process tools in AWS like CodeBuild, Code Deploy & Code Pipeline.
  • ElasticSearch: We will use Managed service of ElasticSearch in AWS for aggregating the logs.
  • Prometheus: We will use the Managed Prometheus service in AWS for monitoring the servers.

By end of this topic you will know how to manage AWS Services which are needed for project.