+380 67 826 62 92

Оновили програму курсу «Basic DevOps for WEB developers course». Мега-цікавий та доволі складний курс, головною метою якого є - отримати базові знання про те, як змусити ваш код працювати не лише на вашій «машині».

Кожен розробник повинен бути відповідальним за проект, який він розробляє. І ця відповідальність обмежується не лише пушом коду в репозиторій, чи пересуванням Jira карток. Насправді ж, відповідальність за проект закінчується тільки тоді, коли останній сервер, на якому був запущений проект, буде знищено. Але щоб дістатись туди, інженер повинен мати змогу збудувати всю інфраструктуру самостійно, не очікуючи міфічної домопоги.

З іншої сторони, проект повинен бути також достатньо стійким, для того щоб мати змогу вносити зміни в нього, не боячись, що після чергового розгортання уся інфраструктура рухне.

Після успішного закінчення курсу, розробник повинен мати змогу робити наступні речі:

  1. Розгорнути новий проект та підключити його до Continuous Integration системи
  2. Мати уявлення про gitflow бранчування, та як воно допомагає в роботі. Також познайомитись з pre-commit хуками.
  3. Розробляти проекти використовуючи ізольоване робоче середовище, яке не залежить від операційної системи розробника використовуючи Vagrant або Docker
  4. Постійно підтримувати робочий код проекту в хорошому стані за допомогою статичних код аналізаторів, unit тестів так утиліт які заміряють code coverage
  5. Побудувати успішну інфраструктуру для проекту в залежності від його потреб використовуючи AWS, Heroku або будь яку іншу Cloud платформу*
  6. Викочувати зміни на testing/staging/production сервери як тільки в бранчу попадає черговий коміт (Continuous Delivery)
  7. Повідомляти команду про нові коміти/білди/проходження тестів або викочування на будь які сервери за допомогою Slack, Telegram, Push повідомлень, або у будь який інший доступний спосіб
  8. Постійно підтримувати проект в робочому стані, та проводити аналіз за допомогою: логів, health-check систем, performance метрик, а також статус-сторінок.
* в курсі використані матеріали лише для AWS та частково Heroku based cloud platforms. Але отриманих базових знань повинно вистачити щоб розгорнути хорошу інфраструктуру на будь яких схожих cloud платформах.

Додаткова інформація

Навчальний план

1. Вступ

2. Робота з кодом

1. Git

2. Gitflow

3. Статичні аналізатори

4. Gulp

5. Msakefile

6. Package.json

3. СІ інтеграція 1.

1. Підготовка репозиторія та написання конфігураційного файлу.

2. Запуск статичних аналізаторів та аналіз результатів

3. Налаштування та запуск Unit тестів

4. СІ інтеграція 2.

1. Аналіз результатів юніт тестів

2. Інтеграція з coveralls та іншими статистичними сервісами

3. Інтеграція сповіщень

5. AWS 1.

1. EC 2

2. Base AMI

6. AWS 2

1. S3

2. Code Deploy

3. Cloud Front

4. Static web hosting

5. CDN

7. AWS 3

1. ELB

2. Launch Configuration

3. Route 53

4. AutoScalingGroup

8. AWS 4

1. s3 SLI

2. Code Deploy CLI

3. EC2 CLI

9. Документація.

1. JS Doc

2. Deployment to S3

3. StaticWebsite hosting

10. Віртуалізація 1.

1. Vagrant

2. Provisioning

11. Віртуалізація 2.

1. Docker Basics

2. Docker Repo, Docker Private Repos

12. Віртуалізація 3.

1. Docker creating own image

13. Віртуалізація 4.

1. Docker compose & orchestration

2. AWS ECX

14. Provisioning.

1. Chef

15. Менеджмент Баз Даних.

1. SQL

2. NoSQL

16. Розгортання 1

1. Deployment попередньо визначених бранчів(development, release, master).

2. Deployment feature бранчів

17. Розгортання 2.

1. Green/Blue deployment

18. Розгортання 3.

1. Heroku deployment

19. Моніторинг

1. Health checks

2. Status page

3. logs

4. elastic search

5. HealthDashboard (Geckoboard)

20. Бонус

1. Building Quick Rest Micro-service platform, using AWS Lambda with Unit tests, s3, DynamoDB, with full CD

Рекомендована базова підготовка

Курс розрахований на програмістів середнього рівня, які уже мають уявлення про те що таке код, та не мають достатньо досвіду що з ним робити в момент коли розробка закінчена.

Основні вимоги:

  1. Знання Node/Python/Ruby/PHP будь якої серверної мови програмування
  2. Базове знання мережевих технологій
    1. HTTP
    2. HTTPS
    3. Як розподіляються IP-адреси
    4. Що таке DNS

Поширені запитання (FAQ)

  1. Чи зможу я, після цього курсу, звільнитись і стати DevOps-ом?
    - Загалом - зможете, але щоб бути хорошим девопсом, доведеться підівчити ще декілька десятків технологій :) Метою нашого курсу - є дати можливість програмістам самим вирішувати найпопулярніші DevOps задачі, але аж ніяк не замінити їх в компаніях.
  2. Чому так багато уваги приділено роботі з AWS?
    - Мій досвід останніх 5-ти років в США, Німеччині і аутсорсіння з України, показує що великі технологічні компанії, а також маленькі стартапи всі обирають AWS. Рідше Heroku. Ще рідше щось інше. А разом з тим, курс було створено так, щоб дати програмістам уявлення не лише про команди за якими можна вирішити проблему, але й принципи за якими ці проблеми вирішуються. І тоді, в не залежності від Cloud провайдера, ви зможете самостійно застосувати наявні знання.
  3. Чи буде розглянуто основи нетворкінгу та налаштування VPC?
    - Ні, нажаль цей огляд зайняв би мінімум 3 лекції, тому він буде залишений на особисте опрацювання за потребою.

РОМАН ШУВАРИК

Викладач "Basic DevOps course"