ONLINE-КУРС DEVOPS JUNIOR
Ви отримаєте практичний досвід використання інструментів для впровадження DevOps філософії на проекті
Тривалість курсу 4 місяці |16 Занять| 32 години практики | 16 годин консультацій
Старт 1 групи: чт, 15.06.2023
Старт 2 групи: вт, 20.06.2023
Програма курсу
Тема №1 «Про курс DevOps Junior»
- У чому різниця між DevOps та SRE?
- Формат навчання
- Програма курсу
- Оцінювання та сертифікація
DevOps vs SRE
- Історія DevOps. Терміни та концепції. 4 стовпи DevOps
- Принципи та практики SRE
Тема №2 «Операційні системи та комп'ютерні мережі»
- файлові системи
- стек OSI/ISO. Протоколи IP\TCP\UDP. Часто використовувані порти.
- операційні системи. Гіпервізори та віртуалізація.
- командний рядок
- вивчити роботу з пакетними менеджерами DEB, RPM. Здобути досвід роботи з командами chmod, chown, rm, cp, wget, curl, mc, mv, ls, cat, grep, less, man, ps, env, top, cron, vim П
Практичне завдання: Встановлення ОС. Робота з командним рядком. Робота з мережею – SSH, Telnet, Ping…
Тема №3 «Єдина кодова база. Git.»
- Початкове налаштування Git
- Створення Git-репозиторію та базова робота з ним
- Розгалуження в Git
- Розподілений Git
- Git в інших оточеннях – Git в IntelliJ/PyCharm/WebStorm/PhpStorm/RubyMine
- GitFlow. APIBEST GitFlow
Практичне завдання: Створення облікового запису на GitLab. Створення Merge Request та його злиття у головну гілку
Тема №4 «Terraform. Базове застосування»
- Огляд інструменту та встановлення
- Базова структура проекту
- Змінні
- Провайдери
- Використання сторонніх модулів
- Стан. Локальне та віддалене сховище станів
Практичне завдання: Розгортання сервера за допомогою Terraform в AWS
Тема №5 «Terraform. Оточення та модульність»
- Практичне застосування під час роботи з кількома оточеннями
- Рекомендована структура проекту
- Перевикористання коду. Модулі.
- Автоматизація та інтеграція з GitLab
Практичне завдання: Налаштування CI/CD для Terraform. Тестування та застосування змін інфраструктури на кількох оточеннях
Тема №6 «Docker. Docker Compose. GitLab CI/CD»
- Введення в Docker
- Перевикористання образів та створення власних образів
- Запуск кількох образів як єдиної системи
- Складання образів у GitLab
- Введення в GitLab CI/CD
- Встановлення та налаштування GitLab Runner
Практичне завдання: Налаштування GitLab Runner. Складання та публікація власного образу в GitLab Docker Registry. Створення середовища для запуску Laravel програми
Тема №7 «Ansible»
- Огляд та встановлення інструменту
- Автоматизація встановлення ПЗ на сервер
- Ролі та використання стороннього коду
Практичне завдання: Автоматизувати початкове розгортання програмного забезпечення на сервері
Тема №8 «The twelve-factor App methodology. Laravel»
- 12 факторів додатку. Набір найкращих практик для розробки сучасних веб-додатків на будь-якій платформі
- Створення середовища для запуску 12 факторної програми за допомогою docker-compose (webserver, database, app, …)
- Встановлення Laravel Hello World
Практичне завдання: Створення середовища для локального запуску налагодження Laravel програми
Тема №9 «Continuous Deployment. Environments. Traefik. Let`s Encrypt»
- Реєстрація на Amazon Web Services
- Підготовка dev, stage, production середовищ
- Поділ конфігурації та секретів
- Генерація HTTPS сертифікатів для кількох програм на одному хості
- Версіонування та Автоматизація розгортання
Практичне завдання: Автоматизувати розгортання версій на stage та production середовища
Тема №10 «Автоматизація завдань адміністрування»
- Резервне копіювання та відновлення
- Cron. Запуск завдань за розкладом
- Автоматизація підготовки Stage середовища з Production.
- SQL. Мігрування схеми БД
Практичне завдання: Автоматизувати оновлення stage середовища з та production
Тема №11 «Процеси. Паралелізм»
- Фонові процеси backend додатків
- Черги та масштабування фонових процесів
- Redis. RabbitMQ.
- Laravel Horizon
Практичне завдання: Налаштувати Laravel Horizon для обробки фонових завдань
Тема №12 «Контейнеризація Frontend додатків. CORS. CDN.»
- Особливості frontend додатків та взаємодія з backend
- Конфігурування програм
- Складання, Реліз, Виконання
- Доставка програми. CDN та кешування
Практичне завдання:Налаштувати деплой Frontend програми та встановлення конфігурації. Забезпечити коректне оновлення під час використання кешування CDN
Тема №13 «Моніторинг»
- 7 факторів у підході 12 Factor App, яких бракує
- Встановлення Prometheus
- Встановлення Grafana
- Збір метрик
- PromQL. Налаштування dashboards & alerts
- Інтеграція з Telegram/Slack
- Аналіз метрик та виявлення аномалій
Практичне завдання: Налаштувати моніторинг свого сервера та програми. Налаштувати uptime alert
Тема №14 «Логування»
- Розташування логів
- Рівні логування програм
- Потоки STDIN, STDOUT, STDERR
- Встановлення та налаштування стека ELK
- Аналіз логів та виявлення помилок
Практичне завдання: Розгорнути ELK та налаштувати збір логів програми
Тема №15 «Перехоплення помилок у середовищі виконання»
- Огляд інструменту
- Реєстрація на sentry.com
- Інтеграція з Backend додатком
- Інтеграція з Frontend додатком
- Інтеграція з GitLab
Практичне завдання: Налаштування та використання Sentry. Аналіз помилок
Іспит. Повна автоматизація проекту
- Паралельна демонстрація екранів
- Запуск розгортання проекту:
-автоматичне розгортання інфраструктури
-автоматичне встановлення ПЗ
-оновлення CI/CD
-актуалізація документації - Виконання тестового чекліста (перевірка роботи всіх вузлів та автоматизації)
Підбиття підсумків курсу. Бонус!
Ви опануєте інструменти та технології
Ubuntu
Git
AWS
Vagrant
Docker
Kibana
PostgreSQL
MySQL
GitLab
Sentry
Grafana
Prometheus
Ansible
Terraform
Bash
Формати навчання
Майстер-група
4950 грн/ місяць
18000 грн за весь курс (-10%)
(при оплаті всієї суми одразу)
Ключові навички
- робота у команді з використанням Git
- адміністрування Linux
- автоматизація процесів та вирішення типових завдань за допомогою Bash, Ansible
- налаштування CI/CD у GitLab
- моніторинг з використанням Prometheus, Grafana
- логування за допомогою ELK-стеку
- використання Docker та Docker Compose для запуску додатків
- базове використання Amazon Web Services
- керування інфраструктурою за допомогою Terraform
- володіння методологією The twelve-factor app для створення SaaS-додатків
Рекомендовані знання до старту
- ОС Linux
- Розуміння роботи комп’ютерних мереж
- bash
- Elementary English
Рекомендовані характеристики комп`ютера
CPU 2.5+ GHz & 8+ threads / 8+ GB RAM / SSD / OS Linux