• TopKursy - РЕДКИЕ Удаленные КУРСЫ!

    Эксклюзивные материалы, недоступные на других источниках.

    Откройте доступ к уникальным знаниям прямо сейчас!

    Подробнее

Скоро! Микросервисы, как в BigTech [Тариф Без проверки] [Олег Козырев]

  • Автор темы EGround
  • Дата начала
Статус
В этой теме нельзя размещать новые ответы.
EGround

EGround

Редактор
Сообщения
24.321
Реакции
127

Складчина: Микросервисы, как в BigTech [Тариф Без проверки] [Олег Козырев]​


olezhek28.png

Курс адаптирован под частые проблемы backend-a, которые встречаются на работе.
Обучение подойдет для Junior и Middle backend-разработчиков
Узнаешь необходимый стек для разработки микросервисов (Go, http, gRPC, Redis, Postgres, Prometheus и др.) и сможешь откликаться на классные вакансии
Узнаешь лучшие практики, нюансы и лайфхаки построения микросервисов, которые применяются в Yandex, Ozon, Avito, СБЕР, Tinkoff и др.
Напишешь высокопроизводительные микросервисы с масштабируемым кодом и разработаешь проект с использованием своих платформенных библиотек
Научишься использовать протокол gRPC в Golang-приложениях
Освоишь работу с PostgreSQL, написав свои компоненты-заготовки, упрощающие разработку
На практике научишься применять архитектурные подходы построения микросервисов
Освоишь паттерны отказоустойчивости микросервисов
Реализуешь межсервисное взаимодействие, систему аутентификации и авторизации
Обеспечишь мониторинг своего сервиса и покроешь его тестами, чтобы исключить ошибки в работе
Для курса нужно:
— знать основы Golang — все практические примеры будут на нем
— уметь пользоваться Git, чтобы качественно работать с кодовой базой

Преподаватель и автор курса: Олег Козырев (Senior Engineer из Avito)

[Тариф Без проверки]

  • 18 практических уроков
  • Доступ к курсу на 2 года
  • Домашка после лекций
  • Дипломный проект
  • Q&A-сессии и live-разборы домашек
  • Доп.модуль от HR-специалиста
  • Доп.модуль по торгу за ЗП

Спойлер: ‘Программа курса Неделя 1. Знакомство, протоколы http и gRPC

  • Что такое протокол http
  • Напишем http-сервер
  • Что такое REST
  • Чем плох json
  • Что такое protobuf
  • Чем плох http 1.1
  • Что такое gRPC?
  • Пишем первый proto-файл
  • Генерируем proto-файл
  • Реализуем простую логику ручек
  • Поднимем gRPC-сервер со своим API
  • Реализуем gRPC-клиент

Неделя 2. Deploy сервиса в облако и работа с PostgreSQL

  • Регистрируемся в Selectel и покупаем свой сервер
  • Собираем приложение и запускаем его на сервере
  • Что такое Docker
  • Разберемся, в чём суть контейнеризации, какая разница между ней и виртуализацией
  • Пишем Docker файл для приложения и собираем его
  • Создаем registry для docker образов в Selectel и загружаем наш образ
  • Устанавливаем docker на наш сервер
  • Запускаем приложение из нашего образа
  • Что такое GitHub Actions
  • Пишем actions для деплоя и запуска нашего приложения
  • Что такое config и почему их бывает несколько
  • Пишем config’и для разных сред
  • Пишем обработчик config’а
  • Что такое Postgres
  • Запуск Postgres в Docker Compose
  • Что такое миграции
  • Пишем миграции и накатываем их с помощью утилиты goose
  • Простые запросы в Postgres с помощью pgx
  • Пишем запросы с помощью билдера squirrel
  • Заворачиваем накатку миграций в отдельный Docker контейнер

Неделя 3. Архитектура проекта

  • Что такое слои и зачем они нужны
  • Пишем repo-слой
  • Пишем сервисный слой
  • Пишем модели и конверторы
  • Пишем инициализацию всех зависимостей
  • Что такое DI контейнер
  • Пишем свой DI контейнер
  • Недостаток работы с pgx напрямую
  • Пишем свою обертку над клиентом к БД
  • Что такое транзакции
  • Недостаток работы с транзакциями через pgx
  • Пишем свой transaction manager
  • Встраиваем transaction manager в свою обертку над клиентом к БД

Неделя 4. Тестирование, кэширование и разработка своей платформенной библиотеки

  • Зачем нужны тесты
  • Какие виды тестов бывают
  • Пишем юнит-тесты для простого кода
  • Пишем юнит-тесты для кода с моками зависимостей
  • Что такое кэширование и зачем оно нужно
  • Redis и как с ним работать: простые примеры
  • Интегрируем клиента Redis в чистую архитектуру
  • Что такое платформенная библиотека
  • Создаем свою платформенную библиотеку

Неделя 5. Дополнительные опции экосистемы gRPC и асинхронное взаимодействие через Apache Kafka

  • В чем проблема gRPC и что такое grpc-gateway
  • Описываем опции gateway в proto-файле и поднимаем http-сервер для работы с gateway
  • Описываем опции валидации в proto-файле, применяем сгенерированную валидацию и пишем валидационный интерцептор
  • Описываем proto-файл со swagger, используем результат генерации в Postman и поднимаем отдельный swagger-сервер
  • Что такое Apache Kafka и в каких случаях его стоит применять
  • Разбираемся с топиками, партициями, продюсерами и консьюмерами
  • Пишем простые примеры продюсера и консьюмера
  • Интегрируем продюсера и консьюмера в чистую архитектуру

Неделя 6. Безопасность сетевых взаимодействий между серверами

  • Что такое TLS
  • Генерируем сертификаты
  • Подключаем сертификаты на сервере
  • Подключаем сертификаты на клиенте
  • Что такое JWT
  • Описываем контракты аутентификационного API
  • Пишем генерацию access токена
  • Пишем генерацию refresh токена
  • Пишем проверку валидности токена
  • Учимся передавать и принимать токен через контекст
  • Пишем серверный и клиентский интерцепторы для работы с токеном

Неделя 7. Мониторинг системы

  • Что такое логи
  • Zap-логгер
  • Пишем обертку над zap-логгером
  • Что такое метрики
  • Разворачиваем prometheus в Docker-compose
  • Поднимаем сервер для метрик и организуем их сбор
  • Смотрим метрики и интерпретируем их на примере RPS
  • Что такое Grafana
  • Разворачиваем Grafana в Docker-compose
  • Импортируем метрики из prometheus в Grafana
  • Что такое трейсинг
  • Разворачиваем Jaeger в Docker сompose
  • Организуем сбор трейсов

Неделя 8. Паттерны отказоустойчивости приложения и потоковая обработка данных

  • Что такое timeout
  • Применяем timeout через контекст
  • Что такое Rate Limiter
  • Пишем свой Rate Limiter
  • Что такое Circuit Breaker
  • Подключаем готовую реализацию Circuit Breaker
  • Система ошибок в gRPC
  • Обсуждаем дизайн системы ошибок для бизнес логики
  • Пишем реализацию валидатора бизнес логики
  • Пишем обработчик ошибок
  • Пишем интерцептор для конвертации бизнес ошибок в транспортные
  • Что такое стриминговые ручки в gRPC
  • Добавляем стриминговую ручку в API
  • Что такое cli-утилита
  • Пишем свою cli-утилиту для связи с сервером


Материал «Микросервисы, как в BigTech [Тариф Без проверки] [Олег Козырев]», возможно, скоро появится на EGROUND.
Воспользуйтесь поиском, может быть, он уже опубликован.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу