Program

Fundamentals of DevOps

This course covers all the basics of DevOps principles and tools. Many companies use DevOps, reducing the time to market through automated workflows and deployments. In this program you will hear modern expressions like CI / CD, related sources, Jenkins, Docker, containers, cloud and Kubernetes. The course will increase your knowledge of all these topics and help you understand why you should use them and how each of them really benefits.

Application to the program is currently not active
Start date

-

Duration

4 months/270 hours

Group size

25-30 students

Schedule

II, IV 18:30 - 21:30, VI 10:00- 16:30

Admission requirements
Expectation

Readiness for intensive training

Language skills

Knowledge of English at least Intermediate level

Requirement

To have a personal computer or a laptop

Age

18 years and older

Upon the course completion you will::

During this course we will work with Git and Gitlab

Learn what is a Git flow and how to setup proper branching

We will cover the basics of CI/CD using Gitlab Ci and Jenkins

Learn how containers work using Docker

Later in course we also cover container orchestration tools Docker Swarm and Kubernetes

Learn Infrastructure-as-code using Ansible and Terraform

Program

Fundamentals of DevOps
17

Number of modules

In this module we will discuss what is DevOps in general. What tools and principles are used to achieve business goals in a fast moving industry. 

Topics:

How DevOps is used to cut time to market

Agile vs Waterfall

Basic overview of DevOps tools such as CI/CD, automation, source code management, infrastructure as a code containers and microservices

Topics:

  • System
  • Cgroups
  • Firewalld
  • Chrony
  • SSHD
  • OS monitoring and debugging
  • Logging
  • User management
  • Vagrant and quick installation of customized Linux Box
  • Hashicorp Vault: secret management tool
  • CoreOS: Container OS for CI/CD

Topics:

  • Nginx, PHP-fpm
  • Apache

Topics:

  • SSL/TLS. Let’s encrypt, Certbot
  • PKI (public key infrastructure)
  • Encryption

In this section we will cover the basics of source control management system. How Git works and what are basic command line commands such as git clone, git tag, and git merge. After completion of this module students will have a basic understanding of Git and how to work in real environment. 

Topics:

  • Git basics
  • How to setup and work with Git
  • How to setup our own Git server using Gitlab
  • Git branching strategies
  • Git flow
  • Advanced concepts such as git rebase and code refactoring

We will cover the role of continuous integration and deployment in DevOps using Gitlab Ci and Jenkins.

Topics:

  • Basics of CI/CD
  • How to setup a Jenkins server
  • How to write an automated pipelines
  • How to setup Gitlab CI
  • How to setup automated pipelines

Topics:

  • What is Docker and why we need to use it
  • Installing Docker and running a container
  • How to dockerize web application
  • What are microservices and how they interact with each other
  • How we can create simple microservice application
  • Docker registry

Topics:

  • Infrastructure automation using Terraform
  • How to setup and install Terraform
  • Ansible basic principles
  • How to provision infrastructure using Terraform
  • Templates and modules
  • YAML syntax
  • Ansible playbooks
  • Ansible roles and tasks
  • Jinja templates, loops and conditions

Containerization technologies in details using Docker and Podman.

Topics:

  • How to prepare container image
  • How to use base image and store in container registry
  • Network configuration for containers
  • Pod and containers
  • Stateful and stateless containers
  • Container persistent volumes
  • How to write Docker-compose file and syntax
  • Microservice architecture components in Docker-compose and Podman

Topics:

  • What is artifact repository
  • How to create artifacts using python (Python wheel)
  • Basics of artifacts repository using OSS Nexus
  • Setting up automated CI/CD using Gitlab and OSS Nexus

Topics:

  • What is Kubernetes
  • Kubernetes architecture
  • MiniKube
  • Kubernetes config files
  • K8S integration with Gitlab
  • Automated Delivery
  • K8S persistent network volumes;
  • Testing development and production environment in K8S
  • K8S secrets management
  • Pods and services

Topics:

  • Gathering logs with Fluentd, send to Elasticsearch and visualize in Kibana
  • Service monitoring using Prometheus
  • Building Grafana dashboards to visualize Prometheus metric

Topics:

  • Overview of popular AWS services: EC2, S3, ALB, VPC, RDS, SQS
  • Cloud structure. Regions and availability zones

Overview of continuous delivery tools.

Topics:

  • AWS DevOps Tools
  • GoCD
  • Kubernetes
  • Okd: OpenSource OpenShift Platform

Topics:

  • Maven, Gradle
  • Npm

Learn how to manage configuration automation using Confighub.

Topics:

  • Confighub installation and setup
  • Confighub crating secret codes and variables
  • Confighub integration with GitLab
  • How we can use Confighub in our application
  • Using Confighub with Kubernetes

Topics:

  • Devops tools and principles for databases
  • Microservices and databases
  • How can we orchestrate database updates and patches
  • Database schema and structure versioning
  • Flyway basics and configurations
  • Liquibase basics and configuration
  • Flyway and Liquibase integration examples with Gitlab and K8S
  • Teiid and OpenShift platforms