دوره جامع مهندسی دواپس

فرصت عالی برای یادگیری مهارت‌های کلیدی در حوزه توسعه و عملیات

تاریخ شروع دوره:

از 13 دی ماه 1404

شنبه و سه‌شنبه ها

ساعت 16 الی 21

مدت دوره

140 ساعت

مدرس دوره

مهندس آرزو محمدی

پیش نیاز

آشنایی با لینوکس

ضبط جلسات

پشتیبان اختصاصی

🍉هدیه ویژه شب یلدا:

به مناسب یلدا میتونید علاوه بر تخفیف ویژه دوره لینوکس رو هم هدیه بگیرید!

روز
ساعت‌
دقیقه
ثانیه

دوره جامع مهندسی دواپس

دوره مهندسی دواپس یک فرصت عالی برای یادگیری مهارت‌های کلیدی در حوزه توسعه و عملیات نرم‌افزار است. در این دوره، شما با مفاهیم اساسی یادگیری اتوماسیون، یکپارچگی مداوم و تحویل مداوم آشنا می‌شوید و تکنیک‌هایی را یاد می‌گیرید که می‌تواند به بهبود سرعت و کیفیت تولید نرم‌افزار کمک کند. با استفاده از ابزارها و فناوری‌های روز دنیا، شما توانایی راه‌اندازی و مدیریت زیرساخت‌های مقیاس‌پذیر را پیدا می‌کنید و همکاری تیمی را به سطح بالاتری می‌برید. در پایان دوره، با دریافت مدرک معتبر، شانس خود را در بازار کار افزایش می‌دهید و به یک متخصص دواپس تبدیل می‌شوید که می‌تواند بهینه‌سازی و مدیریت سیستم‌های پیچیده نرم‌افزاری را انجام دهد. این دوره نه تنها مهارت‌های فنی شما را تقویت می‌کند، بلکه آمادگی شما برای چالش‌های آینده در دنیای فناوری اطلاعات را نیز افزایش می‌دهد.

این دوره برای چه کسانی مناسب است؟

سرفصل های دوره

دوره جامع مهندسی دواپس

گام ششم:Git and Gitlab and ArgoCD

Git

Introduction to Version Control Systems (VCS)

  • Overview of version control
  • Importance of version control in software development
  • Introduction to distributed version control systems (DVCS) like Git

 

Git Basics

  • Understanding the Git workflow
  • Git terminology (repository, commit, branch, merge, etc.)
  • Installing Git and setting up Git configurations
  • Git Repository
  • Initializing a Git repository
  • Cloning existing repositories
  • Adding and removing files from the staging area

 

Git Commits

  • Committing changes to the repository
  • Writing good commit messages
  • Amending and squashing commits

 

Branching and Merging

  • Creating and managing branches
  • Switching between branches
  • Merging branches and resolving merge conflicts

 

Remote Repositories

  • Adding remote repositories
  • Pushing and pulling changes from remote repositories
  • Managing upstream branches

 

Collaborating with Git

  • Forking and cloning repositories from remote platforms (e.g., GitHub, GitLab)
  • Pull requests and code reviews
  • Managing repository permissions and access control
ArgoCD

 Introduction to ArgoCD

  • What is ArgoCD?
  • Overview of GitOps and how ArgoCD fits into the GitOps paradigm.
  • Differences between ArgoCD and other CD tools.
  • Key benefits of using ArgoCD for continuous delivery.

 

ArgoCD Architecture

  • Understanding the components of ArgoCD (API server, repository server, application controller, etc.).
  • ArgoCD's role in Kubernetes-based environments.
  • How ArgoCD connects to Git repositories and Kubernetes clusters.
  • Understanding ArgoCD’s declarative configuration model.

 

Installing ArgoCD

  • Installation methods (using Helm, kubectl, or ArgoCD operator).
  • Deploying ArgoCD on a Kubernetes cluster.
  • Accessing the ArgoCD web UI and CLI.
  • Initializing ArgoCD with the argocd CLI and setting up your first Kubernetes cluster.

 

Configuring Repositories in ArgoCD

  • Adding Git repositories to ArgoCD.
  • Managing SSH keys and HTTPS credentials for Git repositories.
  • Configuring repository access with webhooks and basic authentication.
  • Syncing repositories with ArgoCD to track changes.

 

ArgoCD Applications

  • Creating and managing applications in ArgoCD.
  • How ArgoCD works with Kubernetes manifests (YAML files).
  • Deploying and managing Helm charts through ArgoCD.
  • Handling different environments (development, staging, production) with ArgoCD applications.

 

Syncing and Managing Deployments

  • The synchronization process in ArgoCD.
  • Manual vs. automated sync options.
  • Understanding the sync status and resolving sync issues.
  • Sync waves and rollout strategies.
  • Using ArgoCD to track and manage deployments across multiple clusters.

 

ArgoCD’s Declarative Setup

  • Defining applications declaratively in Git repositories.
  • Storing ArgoCD configuration as code.
  • Versioning your application and Kubernetes configurations with Git.
  • Best practices for using GitOps with ArgoCD.

 

Rollback and History Management

  • Understanding application history in ArgoCD.
  • How to rollback to a previous deployment in ArgoCD.
  • Viewing and comparing previous application states.
  • Troubleshooting failed deployments and rollbacks.

 

Access Control and Security in ArgoCD

  • Configuring user authentication and authorization with ArgoCD.
  • Integrating ArgoCD with Identity Providers (e.g., GitHub, LDAP, SSO).
  • Role-based access control (RBAC) in ArgoCD.
  • Managing ArgoCD secrets and credentials securely.

 

ArgoCD and Helm Integration

  • Deploying Helm charts with ArgoCD.
  • Handling Helm values and custom configurations.
  • Managing Helm releases through ArgoCD.
  • Syncing Helm-based applications and tracking their changes.

 

ArgoCD Notifications

  • Setting up notifications in ArgoCD.
  • Integrating ArgoCD with Slack, email, or custom notification channels.
  • Configuring notification triggers for different events like sync success, failure, or manual intervention.
  •  

ArgoCD CLI Usage

  • Overview of the ArgoCD CLI and its commands.
  • Managing applications with the argocd CLI.
  • Using the CLI for tasks such as syncing applications, viewing application status, and performing rollbacks.
  • Troubleshooting deployments and configurations using the CLI.

 

ArgoCD with Multiple Clusters

  • Managing multiple Kubernetes clusters with ArgoCD.
  • Configuring ArgoCD to deploy across different clusters.
  • Best practices for working with ArgoCD in multi-cluster environments.

 

Advanced ArgoCD Features

  • ArgoCD’s support for Kustomize for configuration management.
  • GitOps workflows with multiple Git repositories and environments.
  • Using ArgoCD for blue/green deployments and canary releases.
  • Automated and manual approvals for deployments.
  • Integrating with other CI/CD tools (e.g., Jenkins, GitLab CI) for more advanced pipelines.

 

ArgoCD Monitoring and Metrics

  • Monitoring ArgoCD’s health and status.
  • Using Prometheus and Grafana for metrics and monitoring ArgoCD applications.
  • Setting up logging for ArgoCD and troubleshooting deployment issues.
  • Understanding ArgoCD’s health checks and alerts.

 

ArgoCD Best Practices

  • How to structure Git repositories for GitOps with ArgoCD.
  • Optimizing ArgoCD performance in large-scale deployments.
  • Setting up ArgoCD in a production-ready environment.
  • How to manage secrets and sensitive data securely with ArgoCD.

 

Troubleshooting ArgoCD

  • Common issues and error messages in ArgoCD.
  • How to debug synchronization issues.
  • Solving common problems related to Git repository access or sync failures.
  • Logs and event tracking to diagnose problems in ArgoCD deployments.

 

ArgoCD and GitOps

  • Understanding the GitOps workflow with ArgoCD.
  • Benefits of using GitOps principles in software delivery.
  • How ArgoCD supports continuous deployment with GitOps.
  • Challenges in adopting GitOps and how ArgoCD helps mitigate them.

گام هفتم:Kubernetes and Rancher

Getting data from the settings items repeater
Array
(
    [0] => Array
        (
            [title] => Gitlab
            [content_type] => text
            [heading] => 
            [content] => 

Introduction to GitLab

  • Overview of GitLab and its features
  • Key components of GitLab (repositories, issues, merge requests, pipelines, etc.)
  • Comparison with other Git hosting platforms (e.g., GitHub, Bitbucket)

 

Setting up GitLa

  • Installing and configuring GitLab (self-hosted or cloud-based)
  • Creating user accounts and managing access permissions
  • Configuring GitLab projects and groups

 

GitLab Repositories

  • Creating and managing Git repositories in GitLab
  • Cloning repositories from GitLab
  • Pushing and pulling changes to/from GitLab repositories

 

GitLab Issues

  • Managing project issues and feature requests
  • Creating and assigning issues
  • Tracking issue progress and status updates

 

GitLab Merge Requests

  • Introduction to merge requests (MRs) in GitLab
  • Creating merge requests for code review and collaboration
  • Reviewing and approving merge requests

 

GitLab Pipelines

  • Understanding GitLab CI/CD pipelines
  • Configuring CI/CD pipelines with .gitlab-ci.yml files
  • Running tests, building artifacts, and deploying applications using pipelines

 

GitLab Runners and Executors

  • Introduction to GitLab Runners
  • Configuring and registering GitLab Runners
  • Understanding different types of executors (e.g., shell, Docker, Kubernetes)

 

GitLab Snippets

  • Sharing code snippets and examples in GitLab
  • Creating, editing, and managing snippets
  • Collaborating on snippets with team members

 

GitLab Security Features

  • Overview of GitLab's security capabilities
  • Security scanning for vulnerabilities (SAST, DAST, Dependency scanning)
  • Implementing security policies and best practices

 

GitLab Integrations

  • Integrating GitLab with other tools and services (e.g., Slack, JIRA, Jenkins)
  • Configuring webhooks and service integrations
  • Streamlining workflows with third-party integrations
  •  

GitLab API

  • Introduction to GitLab API
  • Authentication and access control with GitLab API
  • Using GitLab API for automation, scripting, and integration with external systems

 

Integration with Kubernetes

  • Overview of integrating GitLab with Kubernetes
  • Deploying applications to Kubernetes clusters from GitLab CI/CD pipelines
  • Managing Kubernetes resources through GitLab's interface

 

[link] => [link_html_attributes] => [link_full] => https:// [link_noprefix] => [button_text] => [template] => Array ( [template] => Array ( [template] => ) [template_templateid] => ) [show_image] => hide [image] => [image_attributes_nosize] => src="" [image_attributes] => src="" [image_size] => medium_large [image_thumb] => [heading_bg] => [heading_border_color] => [tab_id] => [item_repeater_class] => elementor-repeater-item-ea9e47e ) )
Gitlab

Introduction to GitLab

  • Overview of GitLab and its features
  • Key components of GitLab (repositories, issues, merge requests, pipelines, etc.)
  • Comparison with other Git hosting platforms (e.g., GitHub, Bitbucket)

 

Setting up GitLa

  • Installing and configuring GitLab (self-hosted or cloud-based)
  • Creating user accounts and managing access permissions
  • Configuring GitLab projects and groups

 

GitLab Repositories

  • Creating and managing Git repositories in GitLab
  • Cloning repositories from GitLab
  • Pushing and pulling changes to/from GitLab repositories

 

GitLab Issues

  • Managing project issues and feature requests
  • Creating and assigning issues
  • Tracking issue progress and status updates

 

GitLab Merge Requests

  • Introduction to merge requests (MRs) in GitLab
  • Creating merge requests for code review and collaboration
  • Reviewing and approving merge requests

 

GitLab Pipelines

  • Understanding GitLab CI/CD pipelines
  • Configuring CI/CD pipelines with .gitlab-ci.yml files
  • Running tests, building artifacts, and deploying applications using pipelines

 

GitLab Runners and Executors

  • Introduction to GitLab Runners
  • Configuring and registering GitLab Runners
  • Understanding different types of executors (e.g., shell, Docker, Kubernetes)

 

GitLab Snippets

  • Sharing code snippets and examples in GitLab
  • Creating, editing, and managing snippets
  • Collaborating on snippets with team members

 

GitLab Security Features

  • Overview of GitLab's security capabilities
  • Security scanning for vulnerabilities (SAST, DAST, Dependency scanning)
  • Implementing security policies and best practices

 

GitLab Integrations

  • Integrating GitLab with other tools and services (e.g., Slack, JIRA, Jenkins)
  • Configuring webhooks and service integrations
  • Streamlining workflows with third-party integrations
  •  

GitLab API

  • Introduction to GitLab API
  • Authentication and access control with GitLab API
  • Using GitLab API for automation, scripting, and integration with external systems

 

Integration with Kubernetes

  • Overview of integrating GitLab with Kubernetes
  • Deploying applications to Kubernetes clusters from GitLab CI/CD pipelines
  • Managing Kubernetes resources through GitLab's interface

 

Kubernetes

Overview of Kubernetes a(K8s)

  • Introduction to Kubernetes
  • Key features and benefits of Kubernetes
  • Use cases and industry adoption of Kubernetes

 

Kubernetes Components

  • Master components (kube-apiserver, kube-controller-manager, kube-scheduler, etcd)
  • Node components (kubelet, kube-proxy, container runtime)
  • Add-ons (DNS, Dashboard, Ingress controller, etc.)

 

Cluster Architecture

  • Understanding Kubernetes cluster architecture
  • Master node and worker node roles
  • High availability and fault tolerance considerations

 

Namespace

  • Introduction to Kubernetes namespaces
  • Creating and managing namespaces
  • Namespace isolation and resource quotas

 

Labels

  • Understanding labels in Kubernetes
  • Label selectors and matching
  • Best practices for labeling resources

 

Pod VS Container

  • Difference between a Pod and a Container
  • Why Pods are used in Kubernetes
  • Pod design patterns and best practices

 

Init Containers

  • Introduction to init containers
  • Use cases for init containers
  • Writing and configuring init containers in Kubernetes manifests

 

Controllers

  • Overview of Kubernetes controllers (ReplicaSet, Deployment, StatefulSet, DaemonSet)
  • Role and responsibilities of controllers
  • Use cases and best practices for different types of controllers

 

Probes

  • Understanding Kubernetes probes (liveness, readiness, startup probes)
  • Configuring probe parameters
  • Handling container lifecycle events with probes

 

Networking

  • Overview of Kubernetes networking model
  • Kubernetes Services for service discovery and load balancing
  • Ingress and Ingress Controllers for HTTP/HTTPS routing
  • Using Ingress resources to define routing rules

 

Ingress Controller

  • Introduction to Ingress Controllers
  • How Ingress Controllers work in Kubernetes
  • Configuring and deploying Ingress Controllers

 

Nginx Ingress Controller

  • Introduction to Nginx Ingress Controller
  • Installing and configuring Nginx Ingress Controller
  • Advanced features and customization options

 

Traffic Ingress Controller

  • Overview of Traffic Ingress Controller
  • Features and advantages of Traffic Ingress Controller
  • Installation and configuration steps

 

CNI Types (Container Network Interface)

  • Introduction to CNI and its importance in Kubernetes networking
  • Overview of different CNI types (e.g., Calico, Flannel, Weave Net, Cilium)
  • Features, use cases, and considerations for each CNI type

 

Services

  • Introduction to Kubernetes Services
  • Types of Services (ClusterIP, NodePort, LoadBalancer, ExternalName)
  • Use cases and considerations for each type of Service

 

RBAC (Role-Based Access Control)

  • Introduction to RBAC in Kubernetes
  • Role, RoleBinding, ClusterRole, and ClusterRoleBinding resources
  • Implementing RBAC policies for users and service accounts

 

Secret

  • Managing sensitive information with Kubernetes secrets
  • Creating, accessing, and updating secrets
  • Best practices for securing and managing secrets

 

ConfigMap

  • Managing configuration data with Kubernetes ConfigMaps
  • Creating, accessing, and updating ConfigMaps
  • Using ConfigMaps to configure applications

 

PVC (Persistent Volume Claim) and PV (Persistent Volume)

  • Introduction to Persistent Volumes (PVs) and Persistent Volume Claims (PVCs)
  • Configuring storage resources with PVs and PVCs
  • Dynamically provisioning storage with StorageClasse

 

Taints and Tolerations and Node Selector

  • Understanding node affinity and anti-affinity with taints and tolerations
  • Using node selectors to schedule Pods onto specific nodes
  • Implementing node affinity rules for workload placement
  •  

Helm

  • Introduction to Helm and Helm charts
  • Managing Kubernetes applications with Helm
  • Templating and deploying complex applications with Helm charts

 

Rancher

Overview of Rancher 

  • Introduction to Rancher and its role in container orchestration and management
  • Key features and benefits of Rancher

 

Installation and Setup 

  • Options for installing Rancher: Docker, Kubernetes, Helm charts
  • Step-by-step guide to installing Rancher
  • Initial configuration and setup

گام هشتم: AWS

AWS

VPC (Virtual Private Cloud)

  • Overview of VPC
  • CIDR Blocks and IP Addressing
  • Public vs. Private Subnets
  • Route Tables and Network ACLs
  • NAT Gateway and Bastion Host
  • VPC Peering and Transit Gateway

 

EC2 (Elastic Compute Cloud)

  • EC2 Instance Types
  • Amazon Machine Images (AMI)
  • Auto Scaling Groups
  • Elastic Block Store (EBS)
  • Security Groups and Key Pairs
  • Elastic IPs and Placement Groups

 

Subnets

  • Types of Subnets (Public, Private, Isolated)
  • Subnet CIDR Block Planning
  • Multi-AZ Subnet Design
  • Subnet Route Tables

 

Internet Gateway (IGW)

  • Attaching IGW to a VPC
  • Route Table Configuration for IGW
  • Public and Private Network Access

 

Virtual Private Gateway (VPG)

  • Site-to-Site VPN
  • AWS Direct Connect
  • Configuring a VPN Connection

 

Elastic Load Balancer (ELB)

  • Application Load Balancer (ALB)
  • Network Load Balancer (NLB)
  • Classic Load Balancer (CLB)
  • Target Groups and Health Checks
  • Sticky Sessions and SSL Termination

 

AWS Lambda (Serverless Computing)

  • Event-Driven Architecture
  • Triggers (S3, DynamoDB, SNS, API Gateway)
  • IAM Roles for Lambda
  • Writing and Deploying Lambda Functions

 

AWS IAM (Identity and Access Management)

  • Users, Groups, and Roles
  • IAM Policies and Permissions
  • MFA (Multi-Factor Authentication)
  • IAM Roles for EC2, Lambda, and Other Services

 

AWS KMS (Key Management Service)

  • Creating and Managing Encryption Keys
  • Integrating KMS with S3, RDS, EBS
  • Key Rotation and Access Control

 

DynamoDB (NoSQL Database)

  • DynamoDB Tables and Indexing
  • Partition Keys and Sort Keys
  • Read and Write Capacity Modes
  • DynamoDB Streams and Triggers

 

AWS Regions and Availability Zones

  • Difference Between Regions and AZs
  • High Availability and Disaster Recovery
  • Multi-Region Deployment Strategies

گام نهم: Ansible and Terraform

Ansible

Basics of Ansible

Introduction to Ansible.

  • Overview of Ansible and its features
  • Advantages of using Ansible for automation
  •  

Ansible Architecture

  • Control node and managed nodes.
  • Understanding Ansible's agentless architecture
  • Components of Ansible (control node, inventory, modules, etc.)

Setting up Ansible and its Prerequisites

  • Installing Ansible on different operating systems
  • Configuring SSH keys for passwordless authentication
  • Installing Python and other dependencies

Ansible Playbooks

Writing and Organizing Playbooks

  • Structure of Ansible playbooks
  • YAML syntax and formatting
  • Defining tasks, plays, and playbooks

Modules and their Usage in Playbooks

  • Overview of Ansible modules
  • Commonly used modules (e.g., file, copy, template, service)
  • Parameters and options for modules

Tasks, Handlers, and Roles

  • Defining tasks and task blocks
  • Using handlers to trigger actions
  • Organizing tasks into reusable roles for better management

Variables and Templates in Playbooks

  • Understanding Ansible variables
  • Using variables for dynamic configurations
  • Creating and using Jinja2 templates in playbooks

Loops and Items in Playbooks

  • Using loops for iteration in playbooks
  • Iterating over lists, dictionaries, and ranges
  • Examples of loop usage in practical scenarios

Inventory and Configuration Management

Creating and Managing Inventory Files

  • Inventory file formats (INI, YAML)
  • Specifying hosts and groups in the inventory
  • Dynamic inventory and plugins

Grouping Hosts and Variables

  • Organizing hosts into groups for better management
  • Group-specific variables and group_vars directory
  • Host-specific variables and host_vars directory

Using Ansible Vault for Secure Variable Management

  • Encrypting sensitive data with Ansible Vault
  • Managing encrypted files and secrets
  • Decrypting and using variables securely in playbooks

Ad-Hoc Commands

Running Ad-Hoc Commands with Ansible

  • Overview of ad-hoc commands in Ansible
  • Syntax and usage of ad-hoc commands
  • Practical examples of ad-hoc tasks (e.g., gathering facts, running commands)

Common Ad-Hoc Modules

  • Exploring common ad-hoc modules (ping, shell, command, etc.)
  • Use cases and examples for each ad-hoc module
  • Advantages and limitations of ad-hoc commands
Terraform

Introduction to Terraform

What is Terraform

  • Overview of Terraform and its features
  • Benefits of Infrastructure as Code (IaC) with Terraform

 

Infrastructure as Code with Terraform

  • Understanding the concept of Infrastructure as Code (IaC)
  • Advantages of managing infrastructure with Terraform

 

Terraform Basics

Installing and Configuring Terraform

  • Installing Terraform on different operating systems
  • Setting up Terraform CLI and environment variables
  • Configuring backend for state management

 

Defining Resources using HashiCorp Configuration Language (HCL)

  • Introduction to HCL syntax
  • Declaring resources, variables, and outputs in Terraform configurations
  • Best practices for organizing and structuring Terraform code

 

Initializing a Terraform Configuration

  • Initializing Terraform projects with terraform init
  • Downloading provider plugins and modules
  • Initializing a new Terraform workspace

 

Terraform Providers and Resources

Understanding Terraform Providers

  • Overview of Terraform providers and their role
  • Supported providers and community providers
  • Configuring provider blocks in Terraform configurations

 

Defining Resources and Managing their Lifecycle

  • Declaring and managing infrastructure resources in Terraform
  • Resource lifecycle: create, read, update, delete (CRUD)
  • Handling dependencies between resources

 

State Management and Terraform's State File

  • Understanding Terraform state
  • Importance of state management in Terraform
  • State file formats and storage backends

 

Managing Infrastructure:

Creating, Updating, and Deleting Resources

  • Creating infrastructure resources with terraform apply
  • Updating resources with configuration changes
  • Deleting resources and cleaning up infrastructure with terraform destroy

 

Terraform Variables and Data Sources

  • Using variables to parameterize Terraform configurations
  • Different types of variables (input variables, output variables, locals)
  • Retrieving data from external sources using Terraform data sources

 

Terraform Modules for Reusable Configurations

  • Introduction to Terraform modules
  • Creating and using modules for reusable infrastructure components
  • Sharing and managing modules with version control systems (VCS)

 

Advanced Topics

Terraform Workspaces

  • Managing multiple environments with Terraform workspaces
  • Use cases for workspaces in development, staging, and production environments

 

Terraform State Locking

  • Understanding the need for state locking in Terraform
  • Implementing state locking with backend configurations
  • Best practices for preventing concurrent state modification

 

Testing and Continuous Integration

Testing Terraform Configurations

  • Writing unit tests for Terraform configurations
  • Testing infrastructure changes with Terraform's terraform plan command
  • Integration testing of Terraform configurations with test frameworks

 

Continuous Integration with Terraform

  • Integrating Terraform with CI/CD pipelines
  • Automating infrastructure deployments with CI/CD tools
  • Implementing Infrastructure as Code best practices in CI/CD workflows

گام دهم: Monitoring

Zabbix

Introduction to Zabbix

  • Overview of Zabbix monitoring solution
  • Features and capabilities of Zabbix

 

Installing and Configuring Zabbix

  • Installing Zabbix server and agents
  • Configuring Zabbix components (server, agent, database)
  • Setting up Zabbix frontend and web interface

 

Monitoring with Zabbix

  • Adding hosts and monitoring targets to Zabbix
  • Configuring monitoring items (metrics) and triggers
  • Creating dashboards and visualizations in Zabbix

 

Zabbix Alerts and Notifications

  • Configuring alerting rules and triggers
  • Setting up notification methods (email, SMS, etc.)
  • Customizing alert actions and escalations
Prometheus

Introduction to Prometheus

  • Overview of Prometheus monitoring and alerting toolkit
  • Prometheus data model (metrics, labels, time series)

 

Installing and Configuring Prometheus

  • Installing Prometheus server and exporters
  • Configuring Prometheus scrape targets and service discovery
  • Setting up retention policies and storage options

 

Prometheus Query Language (PromQL)

  • Introduction to PromQL for querying Prometheus metrics
  • Writing basic PromQL queries for metric retrieval and aggregation
  • Advanced PromQL functions and operators

 

Alerting with Prometheus

  • Defining alerting rules in Prometheus
  • Configuring alertmanager.yml for alert management
  • Sending alerts to various alerting destinations (email, webhook, etc.)
Grafana

Introduction to Grafana

  • Overview of Grafana visualization and monitoring platform
  • Features and advantages of Grafana for data visualization

Installing and Configuring Grafana

  • Installing Grafana server on different platforms
  • Configuring data sources (Prometheus, Zabbix, etc.) in Grafana
  • Setting up Grafana dashboards and panels

Creating Dashboards in Grafana

  • Building custom dashboards in Grafana
  • Adding and configuring panels for displaying metrics
  • Using variables and templating in Grafana dashboards
Prometheus Alertmanager and Alerting

Introduction to Prometheus Alertmanager

  • Overview of Prometheus Alertmanager for handling alerts
  • Features and capabilities of Alertmanager for alert management

 

Configuring Alertmanager

  • Setting up alerting rules and routes in Alertmanager configuration
  • Defining notification integrations (email, webhook, etc.) in Alertmanager

 

Alerting and Notifications

  • Creating and managing alerting rules in Prometheus
  • Configuring notifications for alerting channels (email, Telegram, Discord)
  • Customizing alert templates and message formats

 

Integrating with Email, Telegram, and Discord

  • Setting up email notification integration with Alertmanager
  • Configuring Telegram bot for sending alerts to Telegram channels
  • Setting up Discord webhooks for alert notifications in Discord channels

گام اول: Linux for DevOps

Partitioning , File system, LVM

Introduction to Disk Partitioning

  • Overview of disk partitioning
  • Importance of partitioning in system setup

Master Boot Record (MBR)

  • Explanation of MBR structure and layout
  • Limitations of MBR partitioning
  • MBR partition types (primary, extended, logical)

GUID Partition Table (GPT)

  • Introduction to GPT and its advantages over MBR
  • Understanding GPT structure and layout
  • GPT partition types (primary, secondary, logical)

Differences Between MBR and GPT

  • Comparing MBR and GPT partitioning schemes
  • Limitations and benefits of each partitioning scheme
  • Choosing between MBR and GPT for different use cases

Partitioning Tools and Utilities

  • Overview of partitioning tools (fdisk, parted, gdisk)
  • Using command-line utilities for disk partitioning
  • GUI-based partitioning tools (GParted, KDE Partition Manager)

Disk Partitioning in Linux Installation

  • Disk partitioning during Linux installation
  • Guided vs. manual partitioning options
  • Best practices for partitioning Linux systems

Logical Volume Manager (LVM)

  • Introduction to LVM and its advantages
  • Logical Volume Management concepts (Physical Volumes, Volume Groups, Logical Volumes)
  • Benefits of LVM over traditional partitioning schemes

Creating and Managing LVM Volumes

  • Setting up Physical Volumes (PVs)
  • Creating Volume Groups (VGs) and adding PVs to VGs
  • Creating Logical Volumes (LVs) from VGs
Partitioning , File system, LVM

Introduction to Disk Partitioning

  • Overview of disk partitioning
  • Importance of partitioning in system setup

Master Boot Record (MBR)

  • Explanation of MBR structure and layout
  • Limitations of MBR partitioning
  • MBR partition types (primary, extended, logical)

GUID Partition Table (GPT)

  • Introduction to GPT and its advantages over MBR
  • Understanding GPT structure and layout
  • GPT partition types (primary, secondary, logical)

Differences Between MBR and GPT

  • Comparing MBR and GPT partitioning schemes
  • Limitations and benefits of each partitioning scheme
  • Choosing between MBR and GPT for different use cases

Partitioning Tools and Utilities

  • Overview of partitioning tools (fdisk, parted, gdisk)
  • Using command-line utilities for disk partitioning
  • GUI-based partitioning tools (GParted, KDE Partition Manager)

Disk Partitioning in Linux Installation

  • Disk partitioning during Linux installation
  • Guided vs. manual partitioning options
  • Best practices for partitioning Linux systems

Logical Volume Manager (LVM)

  • Introduction to LVM and its advantages
  • Logical Volume Management concepts (Physical Volumes, Volume Groups, Logical Volumes)
  • Benefits of LVM over traditional partitioning schemes

Creating and Managing LVM Volumes

  • Setting up Physical Volumes (PVs)
  • Creating Volume Groups (VGs) and adding PVs to VGs
  • Creating Logical Volumes (LVs) from VGs
System Performance and Monitoring

CPU Usage Monitoring

  • top – Real-time CPU and process monitoring
  • htop – Interactive and user-friendly process viewer
  • mpstat – Detailed CPU utilization statistics
  • iostat – CPU and disk performance analysis

Memory Usage Monitoring

  • free -m – Check RAM usage
  • vmstat – Memory, CPU, and disk statistics
  • /proc/meminfo – Detailed memory usage

Disk I/O Performance

  • iostat – Monitor disk read/write speed
  • iotop – Show real-time disk I/O usage by processes
  • df -h – Check disk space usage
  • du -sh /path – Find largest files/directories

Network Performance

  • netstat -tulnp – View open ports and active connections
  • ss -tulnp – Modern alternative to netstat
  • iftop – Real-time network traffic monitoring
  • nload – Simple bandwidth usage tool
Shell Scripting (Bash)
  •  Writing and executing shell scripts (.sh files)
  • Conditional statements (if-else, case)
  • Loops (for, while, until)
  • Functions and exit codes
  • Using cron and systemd for automation
Process and Job Management
  • Foreground & backgro processes (fg, bg, jobs, nohup, &, disown)
  • Process monitoring (ps aux, pgrep, pkill)
  • Resource limits (ulimit, nice, cgroups)
Systemd system and service manager

Introduction to systemd

  • Overview of systemd and its role in modern Linux distributions
  • Advantages of systemd over traditional init systems

 

Basics of systemd Services

  • Understanding systemd service units
  • Types of systemd services (simple, forking, oneshot, etc.)
  • Anatomy of a systemd service unit file
  • Creating and Managing systemd Services
  • Creating a basic systemd service unit
  • Starting, stopping, restarting, and reloading services
  • Enabling and disabling services to start at boot

 

Service Dependencies and Ordering

  • Defining service dependencies with Requires, Wants, Before, After, etc.
  • Controlling service startup order
  • Handling service dependencies dynamically with
  • systemd.target units

 

Logging and Monitoring systemd Services

  • Viewing service logs with journalctl
  • Monitoring service status and health
  • Setting up service-specific logging options

 

Environment Variables and Configuration for Services

  • Passing environment variables to systemd services
  • Using environment files for service configuration
  • Managing service-specific configuration options

 

Resource Control and Limiting

  • Configuring resource limits for systemd services (CPU, memory, etc.)
  • Setting service execution priorities
  • Controlling resource usage with systemd resource control directives

 

Managing Multi-Instance Services

  • Introduction to multi-instance services
  • Creating and configuring multiple instances of a service
  • Managing and monitoring multiple service instances

 

Template Units for Multi-Instance Services

  • Creating template unit files for multi-instance services
  • Dynamic instance naming and instantiation
  • Modifying and customizing template units for specific instances

 

Writing systemd Service Unit for Flask API

  • Understanding systemd service units
  • Writing systemd service unit file for Flask API
  • Configuring service options such as restart policies and environment variables

 

Setting up Multi-Instance Flask API

  • Understanding the concept of multi-instance Flask API
  • Writing multiple configuration files for different instances
  • Starting multiple instances of Flask API with systemd

 

Bind DNS Server and CoreDNS

Introduction to BIND DNS Server

  • Overview of BIND DNS Server
  • Role and Importance of DNS in Networking

 

Installation and Basic Configuration

  • Installing BIND DNS Server on Various Platforms (Linux, Windows)
  • Configuration Files (named.conf, named.conf.options, named.conf.local)
  • Starting and Stopping BIND Service

 

DNS Zone Configuration

  • Understanding DNS Zones (Forward and Reverse Zones)
  • Configuring Forward and Reverse Zones
  • Zone Files Syntax and Records (A, CNAME, MX, NS, PTR, etc.)
  •  

Primary and Secondary DNS Servers

  • Configuring Primary and Secondary DNS Servers
  • Zone Transfer (AXFR and IXFR)

 

DNS Security

  • DNSSEC (Domain Name System Security Extensions)
  • TSIG (Transaction Signature) for Zone Transfers
  • ACLs (Access Control Lists) for DNS Queries

 

DNS Resolution and Forwarding

  • Configuring Forwarders in BIND
  • DNS Resolution Process in BIND
  • Recursive and Iterative Queries

 

Traefik web server

 Introduction to Traefik

  • What is Traefik?
  • Why use Traefik as a reverse proxy and load balancer?
  • Differences between Traefik and other reverse proxies (like Nginx, HAProxy).

 

Traefik Architecture

  • Understanding Traefik's architecture and components.
  • How Traefik works with microservices.
  • Dynamic configuration with Traefik.
  • Traefik's support for multiple backends (Docker, Kubernetes, etc.).

 

Installing and Configuring Traefik

  • Installation methods (Docker, Kubernetes, Binary, etc.).
  • Basic Traefik configuration.
  • Configuring entrypoints, routers, and services.
  • Configuring Traefik with a single container or Kubernetes cluster.

 

Traefik and Docker Integration

  • Running Traefik with Docker containers.
  • Using Docker labels to configure routing.
  • Traefik as an ingress controller for Docker Swarm.
  • SSL termination with Docker and Traefik.

 

Traefik and Kubernetes Integration

  • Setting up Traefik as an ingress controller in Kubernetes.
  • Working with Kubernetes annotations and labels for routing.
  • Traefik’s support for Kubernetes secrets and TLS certificates.
  • Handling ingress resources and services.

 

Routing and Load Balancing in Traefik

  • Understanding routing in Traefik.
  • Advanced routing with path and host-based rules.
  • Load balancing strategies: Round-robin, weighted load balancing.
  • Rate limiting and access control using Traefik.

 

Security and TLS with Traefik

  • Configuring automatic SSL certificates with Let's Encrypt.
  • Enabling HTTPS in Traefik.
  • Custom TLS certificates and keys.
  • Traefik with DNS-01 and HTTP-01 challenges.
  • Setting up SSL termination and HTTPS redirection.
  • Protecting routes with basic authentication.

 

Middleware in Traefik

  • Introduction to Traefik middleware.
  • Using middleware for authentication, headers, and redirects.
  • Rate limiting, IP whitelisting, and other security middlewares.
  • Request/Response manipulation with Traefik middleware.

 

Monitoring and Logging in Traefik

  • Enabling access logs in Traefik.
  • Using Traefik's dashboard for monitoring.
  • Integrating with Prometheus for metrics and Grafana for dashboards.
  • JSON and log aggregation setup.

 

Traefik Dashboard and API

  • Accessing and configuring the Traefik dashboard.
  • Using the Traefik API for dynamic configuration.
  • Customizing Traefik's web UI for better visibility.

 

Traefik and Service Discovery

  • How Traefik discovers services in Docker and Kubernetes.
  • Working with static and dynamic backends.
  • Service discovery using labels in Docker and annotations in Kubernetes.

 

Traefik and High Availability

  • Setting up a highly available Traefik cluster.
  • Scaling Traefik with Docker Swarm and Kubernetes.
  • Handling failover and redundancy with Traefik.

 

Advanced Traefik Features

  • Using Traefik for edge routing (e.g., API gateway use case).
  • Traefik with multi-cluster and multi-cloud setups.
  • Traefik and microservices architecture.

 

Traefik Plugins and Extensions

  • Extending Traefik with plugins.
  • Using community and custom plugins in Traefik.
  • Setting up plugins for custom behavior and features.

 

Troubleshooting and Debugging Traefik

  • Common issues and how to fix them.
  • Using Traefik logs and debug mode.
  • Diagnosing routing and load balancing problems.
  • Troubleshooting SSL/TLS and certificate issues.

 

Traefik vs Nginx vs HAProxy

  • Pros and cons of Traefik compared to Nginx and HAProxy.
  • Which use cases are best for Traefik vs other reverse proxies?
Nginx

Installation and Basic Configuration

  • Installing Nginx on Different Platforms
  • Introduction to nginx.conf Configuration File
  • Basic Server Block Configuration

 

HTTP Server

  • Handling HTTP Requests
  • Location Blocks and Directives
  • Static File Serving

 

Reverse Proxy

  • Configuring Nginx as a Reverse Proxy
  • Proxy_pass Directive
  • Load Balancing Methods

 

SSL/TLS Configuration

  • Generating SSL Certificates
  • Configuring HTTPS
  • SSL/TLS Best Practices

 

Advanced Configuration Directives

  • Rewrite Rules
  • Access Control
  • Rate Limiting

 

Caching

  • Proxy Cache
  • Fastcgi_cache
  • Cache Invalidation

 

Performance Optimization

  • Tuning Worker Processes
  • Connection Handling
  • Gzip Compression

 

Security Features

  • Securing Server Blocks
  • Preventing Common Attacks
  • Using HTTP Headers for Security

 

High Availability and Scalability

  • Load Balancing Strategies
  • Session Persistence
  • Clustering

 

Monitoring and Logging

  • Nginx Access and Error Logs
  • Monitoring Tools and Techniques
  • Log Analysis

 

Integration with Other Technologies

  • PHP-FPM Integration
  • Node.js Integration
  • Caching Solutions Integration

 

Introduction to High Availability with Keepalived and Nginx

  • Overview of Keepalived and its role in achieving high availability
  • Introduction to Nginx as a load balancer
  • Use cases and benefits of a highly available Nginx load balancer setup

 

Installation and Configuration of Keepalived

  • Installing Keepalived on Linux
  • Basic Configuration File (keepalived.conf)
  • Setting up Virtual IP (VIP) for Nginx load balancer
HAProxy

Introduction to HAProxy

  • Overview of HAProxy
  • Use cases and scenarios

 

Installation and Basic Configuration

  • Installing HAProxy on Different Platforms
  • Basic Configuration Files
  • Starting and Stopping HAProxy

 

Frontend and Backend Configuration

  • Configuring Frontend and Backend Sections
  • Bind Options and Listening Ports
  • Backend Server Configuration

 

Load Balancing Algorithms

  • Overview of Load Balancing Algorithms (Round Robin, Least Connections, Source IP Hash, etc.)
  • Configuring Load Balancing Algorithms

 

Health Checks and Monitoring

  • Implementing Health Checks for Backend Servers
  • Monitoring Backend Server Health
  • Failover Strategies

 

SSL/TLS Termination

  • SSL/TLS Offloading with HAProxy
  • SSL/TLS Configuration Options
  • Certificates and Key Management

 

High Availability Setup

  • Implementing High Availability with HAProxy
  • Active-Passive and Active-Active Configurations
  • Heartbeat and Failover Mechanisms

 

گام دوم:Container Runtime & Container Engines

Containerization

Overview of Containerization 

  • Introduction to containerization and its benefits
  • Comparison between containers and virtual machines
  • Use cases for containerization in software development and deployment

 

Container Components and Architecture 

  • Understanding the components of a container: image, container runtime, container engine
  • Exploring the architecture of container runtimes and engines
  • Overview of container orchestration and its role in managing containers at scale
Container Runtime

Understanding Container Runtimes 

  • Definition and role of container runtimes in container execution
  • Types of container runtimes: high-level and low-level runtimes
  • Comparison between container runtimes: Docker, containerd, rkt, cri-o, etc.

 

High-level Container Runtimes 

  • Exploring high-level container runtimes like Docker and containerd
  • Understanding the features and functionalities provided by high-level runtimes
  • Use cases and considerations for choosing a high-level container runtime

گام سوم: Docker and Docker Registry

Docker

Docker

  • Overview of containerization
  • Introduction to Docker and its components
  • Docker use cases and benefits

Docker Architecture

  • Understanding Docker architecture (client-server model)
  • Docker Engine components (Docker daemon, REST API, CLI)
  • Containerd and other components

Docker Images

  • Understanding Docker images
  • Dockerfile syntax and best practices
  • Building custom Docker images

Docker Containers

  • Creating and running Docker containers
  • Managing container lifecycle (start, stop, restart)
  • Inspecting container logs and status

Docker Log Drivers

  • Overview of Docker log drivers
  • Different log driver options (json-file, syslog, journald, fluentd, etc.)
  • Configuring logging options for Docker containers

Docker Networking

  • Overview of Docker networking modes (bridge, host, overlay, macvlan)
  • Docker networking drivers and plugins
  • Configuring container networking (port mapping, network aliases)

Docker Storage

  • Understanding Docker storage drivers
  • Persistent storage options for Docker containers (volumes, bind mounts)
  • Docker volume management and backup strategies

Docker Volumes

  • Introduction to Docker volumes
  • Creating and managing Docker volumes
  • Volume types and usage scenarios (local, named, anonymous)

Docker Compose

  • Introduction to Docker Compose
  • Writing Docker Compose YAML files
  • Managing multi-container applications with Docker Compose

Docker Swarm

  • Introduction to Docker Swarm
  • Setting up Docker Swarm cluster
  • Deploying and managing services with Docker Swarm

Docker Orchestration with Kubernetes

  • Comparing Docker Swarm and Kubernetes

Docker API

  • Overview of Docker Remote API
  • Using Docker Remote API for container management
  • Building applications with Docker API
Docker Registry

Introduction to Docker Registry

  • Overview of Docker Registry and its role in containerization
  • Purpose and benefits of using Docker Registry

 

Setting up a Docker Registry

  • Installing and configuring a private Docker Registry
  • Securing Docker Registry with authentication and access control

 

Pushing and Pulling Images

  • Pushing Docker images to a private Docker Registry
  • Pulling Docker images from a private Docker Registry
  • Managing image versions and tags in Docker Registry

 

Harbor:

Introduction to Harbor

  • Overview of Harbor as an enterprise-class container registry
  • Features and benefits of using Harbor for container management

 

Installing and Configuring Harbor

  • Deploying Harbor in Kubernetes or standalone mode
  • Configuring Harbor projects, users, and permissions

 

Image Management with Harbor

  • Uploading and downloading images to/from Harbor
  • Scanning images for vulnerabilities with Harbor's integrated security features

 

Replication and High Availability

  • Configuring image replication between Harbor instances
  • Implementing high availability and disaster recovery strategies with Harbor

 

Harbor as a Helm Chart Repository

  • Using Harbor as a Helm chart repository for Kubernetes applications
  • Managing Helm charts and releases with Harbor

گام چهارم:API

API, REST API, and HTTP Requests
  • What is an API?
  • Types of APIs (REST, SOAP, GraphQL, etc.)
  • Importance of APIs in modern software development

 

Understanding REST API 

  • Principles of RESTful architecture
  • Key components: Resources, URIs, HTTP methods, Representations (JSON, XML)
  • Characteristics of RESTful APIs: Statelessness, Uniform Interface, Layered System, etc.

 

HTTP Basics 

  • Overview of HTTP (Hypertext Transfer Protocol)
  • Understanding HTTP methods: GET, POST, PUT, DELETE, PATCH
  • HTTP status codes and their meanings (2xx, 3xx, 4xx, 5xx)
  • Hands-on exercises: Making HTTP requests using tools like cURL, Postman, or browser Developer Tools

گام پنجم:Certificates and Certificate Authorities (CAs)

CA and Cerificates

Basics of Cryptography

  • Symmetric vs Asymmetric Cryptography
  • Public Key Infrastructure (PKI)

 

Digital Certificates

  • Definition and Purpose
  • Components of a Digital Certificate
  • X.509 Standard

 

Certificate Authorities (CAs)

  • Role of CAs in PKI
  • Types of CAs: Root CAs, Intermediate CAs
  • Certificate Chain of Trust
Hands-on with OpenSSL

Introduction to OpenSSL

  • Overview of OpenSSL
  • Installation on Various Platforms

 

Working with CSRs and Keys

  • Generating Private Keys
  • Creating CSRs
  • Self-Signed Certificates

 

Managing Certificates

  • Viewing Certificate Details
  • Verifying Certificates
  • Converting Certificate Formats

 

Implementing SSL/TLS

  • Configuring SSL/TLS on Apache
  • Configuring SSL/TLS on Nginx
  • Testing SSL/TLS Configuration

نمونه پروژه های دوره

دوره جامع مهندسی دواپس

ویژگی های دوره مهندسی دواپس

جزوه کامل

اسلاید اختصاصی

پشتیبان اختصاصی

ارائه مدرک

ضبط کامل جلسات

دانشجویان ما در این مجموعه ها مشغول به کار هستند:

نظرات دانشجویان

دانشجویان ما چه میگویند:

🍉هدیه ویژه شب یلدا:

به مناسب یلدا میتونید علاوه بر تخفیف ویژه دوره لینوکس رو هم هدیه بگیرید!

روز
ساعت‌
دقیقه
ثانیه
کامل
اقساطی

پرداخت اقساطی:

قسط اول:

11,000,000

تومان

قسط دوم:

5,500,000

تومـان

تاریخ قسط: 10 دی ماه

قسط سوم:

5,500,000

تومان

تاریخ قسط: 10 بهمن ماه

پرداخت اقساطی:

قسط اول:

11,000,000

تومان

10,200,000

تومان

قسط دوم:

5,500,000

تومان

5,100,000

تومان

تاریخ قسط: 10 دی ماه

قسط سوم:

5,500,000

تومان

5,100,000

تومان

تاریخ قسط: 10 بهمن ماه

مدرس دوره کیست؟

آرزو محمدی

مهندس DevOps

سوابق شغلی:

پشتیبانی دوره

نحوه پشتیبانی دوره جامع مهندس دواپس

جلسات آنلاین

پرسش و پاسخ

گروه تلگرامی

دریافت مشاوره

اگه سوالی در مورد دوره داری فرم زیر رو پر کن:

درباره ما

سال ۹۵ بود که فعالیتمون رو تحت عنوان سانانت در حوزه ی تولید محتوا شروع کردیم و مسیر ما رو تا برگزاری دوره ها و کارگاه های آموزشی در حوزه ی DevOps و دنیای OpenSource آورد و الآن با افتخار مشاور و اعضای تیم DevOps شما در شرکت هستیم .

ارتباط با ما

×

 

سلام!

برای دریافت مشاوره رایگان و یا پشتیبانی در واتساپ در خدمت شما هستیم

× پشتیبانی واتساپ