Що нового?

Придбаний Мікросервіси, як в BigTech 2.0 [Тариф Стандарт] [Олег Козирєв]

Інформація про покупку
Тип покупки: Складчина
Ціна: 30000 ГРН
Учасників: 0 з 40
Організатор: Відсутній
Статус: Набір учасників
Внесок: 780 ГРН
0%
Основний список
Резервний список

Gadzhi

Модератор
Мікросервіси, як в BigTech 2.0 [Тариф Стандарт] [Олег Козирєв]



Навчися розробляти високопродуктивні, масштабовані мікросервіси, як в.ВК Yandex OZON Ощад Тінькофф, і збільш свої шанси на працевлаштування в BigTech або підвищення грейду.

Навчання підійде для Junior і Middle backend-розробників

Для курсу потрібно:

Знати основи Golang - всі практичні приклади будуть на ньому
Вміти користуватися git, щоб якісно працювати з кодовою базою

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

Програма


Тиждень 1 HTTP та gRPC: основи мережевої взаємодії мікросервісів
З першого тижня почнеш збирати свій проект на мікросервісної архітектурі. На практиці освоїш два ключових способи спілкування між сервісами — через HTTP і gRPC. Будеш писати API, запускати сервери, підключати клієнтів і пов'язувати між собою окремі сервіси

Блок 1. HTTP в Go: від простого сервера до автогенерації API

Що таке HTTP?
HTTP / 1.1, HTTP / 2 і HTTP / 3-Навіщо придумали і які проблеми вирішують
Що таке REST API і які обмеження він має
Створюємо простий HTTP-сервер на chi
Перша middleware на Go: як розширити поведінку ручок сервера
Що таке OpenAPI і як описувати схеми
Генерація HTTP API на основі OpenAPI схеми

Блок 2. gRPC в Go: швидкий і типобезпечний спосіб спілкування сервісів

Як влаштовані gRPC і protobuf, де вони застосовуються і в чому їх сила
Пишемо перший .proto-файл, вчимося підключати залежності
Генерація Go-коду через buf
Запускаємо gRPC-сервер і підключаємо до нього клієнта
Що таке зворотна сумісність і як її перевіряти при змінах контракту (buf-breaking)
gRPC-Gateway: додаємо http-інтерфейс до gRPC-сервісу
Автогенерація Swagger-описи з .proto
Валідація вхідних даних через плагін protoc-gen-validate
Пишемо свій перший gRPC-інтерцептор

Тиждень 2 Архітектура та тести: будуємо проект по-дорослому
На цьому тижні ти перестанеш писати " все в одному файлі» і почнеш проектувати мікросервіси по шарах: API, сервіс, репозиторій. Освоїш архітектурні підходи і навчишся писати unit-тести-не формально, а так, щоб реально ловити баги і не боятися міняти код

Блок 3. Архітектура проекту на Go: чисто, зрозуміло, гнучко

Що таке архітектура і навіщо вона потрібна (цибульна, гексагональна, чиста-простими словами)
Які бувають шари і як вони пов'язані: API, сервіс, репозиторій, клієнти
Як структурувати проект на Go
Створюємо repository-шар: робота з базою через інтерфейси
Пишемо service-логіку: бізнес-правила без прив'язки до API
Розбираємося з API-шаром: як приймати і віддавати дані
Додаємо клієнтські обгортки: наприклад, виклик Payment Service з Order Service

Блок 4. Unit-Тестування сервісів на Go: тести, які працюють

Що таке юніт-тест і як він відрізняється від інтеграційного
Тестуємо прості функції: починаємо з бази
Як тестувати сервісну логіку: використовуємо тестові сьюти
Як працювати з моками: підключаємо mockery і підміняємо залежності
Як замокати базу і навіщо це може бути зручно
Виводимо покриття в README.md -нехай CI не даремно працює

Тиждень 3 Бази даних і Docker: сервіси знаходять довготривале сховище
Тепер твої сервіси почнуть працювати зі справжніми базами даних — PostgreSQL і MongoDB. А щоб не розгортати все вручну, ти навчишся піднімати інфраструктуру через Docker Compose: бази, оточення, залежності. Поки без упаковки самих сервісів-тільки оточення, як в цьому проекті

Блок 5. Docker і docker Compose: інфраструктура як код

Що таке Docker і навіщо він потрібен
Пишемо свій перший Dockerfile
Що таке docker-compose і як з його допомогою піднімати інфраструктуру
Піднімаємо базу даних і налаштовуємо мережеве взаємодія між контейнерами

Блок 6. Робота з PostgreSQL в Go: SQL, але по-людськи

Навіщо мікросервісам потрібна реляційна база - і чому PostgreSQL
Запуск PostgreSQL через docker Compose
Створюємо і накочуємо міграції за допомогою goose
Пишемо SQL-запити через pgx і squirrel
Інтегруємо PostgreSQL в архітектуру сервісу: репозиторій, моделі, конвертори

Блок 7. Робота з MongoDB в Go: коли не потрібен SQL

Що таке MongoDB і де він виграє від реляційних рішень
Піднімаємо MongoDB через docker Compose і освоюємо базові CRUD-операції
Інтеграція MongoDB в структуру проекту: структура, запити, підходи

Тиждень 4 конфігурація, di контейнер і інтеграційні тести: збираємо все воєдино
На цьому тижні ти зробиш свої сервіси гнучкими, керованими і тестованими. Налаштуєш конфігурацію через змінні оточення, впровадиш DI-контейнер, напишеш перші інтеграційні та E2E-тести, а ще-почнеш будувати свою власну платформну бібліотеку, як у справжніх проектах

Блок 8. Конфігурація: як грамотно зберігати параметри сервісу і передавати їх при запуску

Що таке конфігурація і навіщо виносити параметри з коду
Робота зі змінними оточення (env) - найчастіший спосіб настройки

Блок 9. Бібліотека платформ: загальні компоненти для всіх

Що таке платформна бібліотека і навіщо її виділяти
Пишемо health check для grpc сервера
Створюємо логгер на основі zap і налаштовуємо формат логів, єдиний для всіх сервісів
Розробляємо зручний менеджер закриття ресурсів для забезпечення graceful shutdown

Блок 10. DI-контейнер: управляємо залежностями красиво

Що таке інверсія залежностей і навіщо вона тобі
Як виглядає простий DI-контейнер на Go і як його написати
Інтеграція DI в сервіс: як це полегшує тестування і конфігурування

Блок 11. Інтеграційне та E2E-тестування: йдемо глибше

Інтеграційні тести для бази: використовуємо сьюти, структуру проекту та тестові дані
End-to-End тести сервісів: перевіряємо весь ланцюжок роботи через ginkgo, gomega і testcontainers-go
Як запускати тести автоматично і перевіряти результат до релізу

Тиждень 5 Kafka, події та асинхронна магія мікросервісів
Вийдеш за межі прямих запитів і почнеш вибудовувати подієву взаємодію між сервісами. Познайомишся з Apache Kafka, навчишся піднімати брокер в kraft-режимі, писати продюсерів і консьюмерів, обробляти події і будувати стійкі, слабо пов'язані мікросервіси. Плюс-зробиш сервіси Assembly і Notification, і підключиш Telegram-бота

Блок 12. Apache Kafka в Go: шина подій своїми руками

Що таке Apache Kafka і навіщо вона потрібна мікросервісам
Як працює Kafka в KRaft-режимі (без ZooKeeper)
Піднімаємо Kafka з одним брокером через docker Compose
Пишемо продюсера і консьюмера на Go
Створюємо consumer group і обробляємо події
Інтегруємо Kafka в архітектуру: DI, шари, обгортки

Блок 13. Повідомлення в Telegram: живий відгук системи

Як зареєструвати Telegram-бота і підключити його до сервісу
Використовуємо шаблони Go для генерації повідомлень
Поділяємо логіку по верствам: бот, відправка, шаблони, бізнес-логіка

Тиждень 6 Redis і аутентифікація: захищаємо вхід і зберігаємо сесії
Реалізуєш повноцінну систему аутентифікації. Розберешся, як організувати вхід за логіном і паролем, як зберігати сесії, і як перевіряти доступ до ручок gRPC. На цьому тижні в проект увійде Redis як сховище сесій з TTL і базовими структурами даних

Блок 14. Redis в Go: швидке і зручне сховище

Що таке Redis і навіщо він потрібен в архітектурі мікросервісу
Які структури даних в Redis використовуються на практиці: key-value, hashmap, set
Робота з TTL-автоматичне видалення сесій
Запуск Redis через docker Compose
Інтеграція Redis в сервіс: клієнт, DI, обгортка, збереження і перевірка сесій

Блок 15. Аутентифікація та авторизація: сесії, токени та права доступу

Ідентифікація, аутентифікація — авторизація-в чому різниця
Підходи до аутентифікації: сесії проти JWT-плюси і мінуси
Реалізуємо API для роботи з JWT
Навчимося зберігати сесію в Redis з TTL 24 години
Додамо інтерцептор, що валідує сесію на gRPC-ручках

Тиждень 7 Про Observability не жартують: логи, метрики і Трейси
Впровадиш в систему всі три стовпи спостережуваності: логи, метрики і Трейси. Навчишся збирати дані через OpenTelemetry Collector, відображати метрики в Grafana, логи — в Kibana, а Трейси — в Jaeger. Налаштуєш Алерти на важливі події і виведеш нотифікації в Telegram

Блок 16. Моніторинг сервісів через OpenTelemetry

Як влаштована система спостережуваності: логування, метрики, трасування
Що таке OpenTelemetry і навіщо потрібен Collector
Збір логів через Zap → Opentelemetry Collector → Elasticsearch → Kibana
Збір метрик через Prometheus та Opentelemetry Collector
Відображення даних у Grafana: метрики за послугами та подіями
Підключення трейсов в Jaeger і візуалізація проходження запитів
Налаштування алертів через Alertmanager з відправкою в Telegram
Винесення загальних обгорток та інструментів у бібліотеку платформ

Тиждень 8 Envoy: єдина точка входу та контроль доступу на вході
Налаштуєш центральну точку входу в систему-через Envoy. Навчишся маршрутизувати HTTP і gRPC-запити, прокидати заголовки, а головне — реалізуєш перевірку валідності сесії перед кожним запитом через виклик IAM-сервісу. Все це буде працювати в docker Compose та інтегровано в проект

Блок 17. Envoy як gateway: маршрутизація, захист, зручність

Що таке Envoy і навіщо він потрібен в мікросервісній архітектурі
Піднімаємо Envoy в docker Compose і налаштовуємо як точку входу в систему
Маршрутизація запитів HTTP: Налаштування маршрутів, хостів, портів
Маршрутизація gRPC-запитів з підтримкою grpc_json_transcoder
Інтеграція iam-перевірки: lua-скрипт, що виконує запит на валідацію сесії
Як сховати всі сервіси за Envoy і залишити назовні тільки одну точку доступу


Викладач і автор курсу:
Олег Козирєв


Ndasenior Engineer: розробляє платформу для контролю доступів до продуктових сервісів

HighLoad++ 2024спікер: виступав з доповіддю по декларативній платформі управління доступом і був інформаційним партнером конференції
Ozon Tech: Логістикаѕепіог Engineer: розробляв сервіси організації перевезень товарів продавця на склад
Ozon Tech: Моментиѕепіог Engineer: розробляв систему модерації "рилсів" всередині програми Ozon
Ozon Tech: МаркетплейсMiddle Engineer: розробляв сервіс, який відстежує своєчасність доставки посилок
Route 256преподаватель і тьютор: менторіл і викладав курси з побудови мікросервісів в школі Ozon Tech
Yatalksведущій конференції: вів другий день конференції з програмування від Яндекса

Тариф Стандарт

60 практичних уроків
Щотижневі зустрічі з відповідями на питання по курсу і ДЗ

Ціна 59900 руб

https://olezhek28.courses/microservices
 
Угорі