Скачать Микросервисы, как в Bigtech-компаниях [Balun.Courses]

  • Автор темы Автор темы admin
  • Дата начала Дата начала
  • Приглашаем разместиться на бесплатной основе в разделе Маркет -> услуг. Наш ТГ: @ble_lol
    Для просмотра КУРСОВ надо статус VIP, КУПИТЬ МОЖНО ТУТ: https://ble.lol/account/upgrades

    Запрещенно работать RU и СНГ! Блок навечно!

admin

Команда форума
Баба Яга
9 Ноя 2024
26,451
269
BCoin
184,247
DEP
41,637р
Микросервисы, как в Bigtech-компаниях

НА КУРСЕ ТЫ ГЛУБОКО ПОГРУЗИШЬСЯ В МИКРОСЕРВИСЫ:
Освоишь базовое использование протокола http в Golang-приложениях
На практике научишься применять архитектурные 
подходы построения сервисов
Освоишь работу с PostgreSQL, написав свои компоненты-заготовки, упрощающие дальнейшую разработку
Поработаешь с кешированием данных на примере Redis и освоишь паттерны отказоустойчивости микросервисов
Обеспечишь мониторинг своего сервиса и покроешь его тестами, чтобы точно исключить ошибки в работе
Реализуешь межсервисное взаимодействие, систему аутентификации и авториизации
Изучишь необходимый стек для разработки микросервисов и сможешь откликаться на классные вакансии: Go, http, gRPC, Redis, Postgres, Prometheus и др.
Узнаешь лучшие практики построения микросервисов для уверенной работы в BigTech-компании
Научишься писать сложные проекты с масштабируемым кодом, как это делают разработчики в ведущих IT-компаниях
Сможешь разработать собственный проект с использованием своих платформенных библиотек
Неделя 1.
Знакомство, протокол http и gRPC
Что такое протокол http
Напишем http-сервер
Что такое REST
Чем плох json
Что такое protobuf
Чем плох http 1.1
Что такое gRPC?
Пишем первый proto-файл
Генерируем proto-файл
Реализуем простую логику ручек
Поднимем gRPC-сервер со своим API
Реализуем gRPC-клиент
Результат: создашь два рабочих микросервиса с gRPC-серверами внутри, которые поддерживают базовый API.
Неделя 2
Deploy сервиса в облако и работа с PostgreSQL
Регистрируемся в Selectel и покупаем свой сервер
Собираем приложение и запускаем его на сервере
Что такое Docker
Разберемся, в чём суть контейнеризации, какая разница между ней и виртуализацией, а также познакомимся с Kubernetes
Пишем Docker файл для приложения и собираем его
Создаем registry для docker образов в Selectel и загружаем наш образ
Устанавливаем docker на наш сервер
Запускаем приложение из нашего образа
Что такое GitHub Actions
Пишем actions для деплоя и запуска нашего приложения
Что такое config и почему их бывает несколько
Пишем config’и для разных сред
Пишем обработчик config’а
Что такое Postgres
Запуск Postgres в Docker Compose
Что такое миграции
Пишем миграции и накатываем их с помощью утилиты goose
Простые запросы в Postgres с помощью pgx
Пишем запросы с помощью билдера squirrel
Заворачиваем накатку миграций в отдельный Docker контейнер
Результат: разработаешь базовую бизнес-логику созданных ранее API с использованием базы данных PostgreSQL.
Неделя 3
Архитектура проекта
Что такое слои и зачем они нужны
Пишем repo-слой
Пишем сервисный слой
Пишем модели и конверторы
Пишем инициализацию всех зависимостей
Что такое DI контейнер
Пишем свой DI контейнер
Недостаток работы с pgx напрямую
Пишем свою обертку над клиентом к БД
Что такое транзакции
Недостаток работы с транзакциями через pgx
Пишем свой transaction manager
Встраиваем transaction manager в свою обертку над клиентом к БД
Результат: научишься рефакторингу и сделаешь удобную, расширяемую и гибкую архитектуру своих проектов.
Неделя 4
Тестирование сервиса и создание платформенной библиотеки
Зачем нужны тесты
Какие виды тестов бывают
Пишем юнит-тесты для простого кода
Пишем юнит-тесты для кода с моками зависимостей
Что такое платформенная библиотека
Создаем свою платформенную
Результат: покроешь функционал своих сервисов unit-тестами и создашь собственную платформенную библиотеку, состоящую из общих компонентов твоих проектов.
Неделя 5
Дополнительные опции экосистемы gRPC
В чем проблема gRPC
Что такое grpc-gateway
Описываем опции gateway в proto-файле
Генерируем proto-файл с gateway
Поднимаем http-сервер для работы с gateway
Что такое proto-валидация
Описываем опции валидации в proto-файле
Генерируем proto-файл с валидацией
Применяем сгенерированную валидацию
Что такое интерцептор?
Пишем валидационный интерцептор
Что такое swagger
Генерируем proto-файл со swagger и используем результат в Postman
Что такое CORS
Поднимаем отдельный swagger-сервер
Результат: в одном из сервисов поднимешь свой gRPC-Gateway, который позволит обрабатывать http-трафик. Опишешь proto-валидацию и автоматически сгенерируешь интерактивную документацию API Swagger.
Неделя 6
Безопасность сетевых взаимодействий между сервисами
Что такое TLS
Генерируем сертификаты
Подключаем сертификаты на сервере
Подключаем сертификаты на клиенте
Что такое JWT
Описываем контракты аутентификационного API
Пишем генерацию access токена
Пишем генерацию refresh токена
Пишем проверку валидности токена
Учимся передавать и принимать токен через контекст
Пишем серверный и клиентский интерцепторы для работы с токеном
Результат: обеспечишь транспортную безопасность взаимодействию твоих сервисов друг с другом. Создашь систему аутентификации и авторизации для своих проектов средствами JWT.
Неделя 7
Мониторинг системы
Что такое логи
Zap-логгер
Пишем обертку над zap-логгером
Что такое метрики
Разворачиваем prometheus в Docker-compose
Поднимаем сервер для метрик и организуем их сбор
Смотрим метрики и интерпретируем их на примере RPS
Что такое Grafana
Разворачиваем Grafana в Docker-compose
Импортируем метрики из prometheus в Grafana
Что такое трейсинг
Разворачиваем Jaeger в Docker сompose
Организуем сбор трейсов
Результат: на примере одного из сервисов добавишь грамотное логгирование о различных событиях, метрики, сигнализурующие о важных показателях системы, а также организуешь сбор трейсов.
Неделя 8
Паттерны отказоустойчивости приложения и потокая обработка данных
Что такое timeout
Применяем timeout через контекст
Что такое Rate Limiter
Пишем свой Rate Limiter
Что такое Curcuit Breaker
Подключаем готовую реализацию Curcuit Breaker
Система ошибок в gRPC
Обсуждаем дизайн системы ошибок для бизнес логики
Пишем реализацию валидатора бизнес логики
Пишем обработчик ошибок
Пишем интерцептор для конвертации бизнес ошибок в транспортные
Что такое стриминговые ручки в gRPC
Добавляем стриминговую ручку в API
Что такое cli утилита
Пишем свою cli утилиту для связи с сервером
Результат: умеешь применять паттерны отказоустойчивости и работать со стриминговыми ручками в gRPC. Кроме этого, ты разработаешь свою cli-утилиту в качестве чат-клиента.

Скрытое содержимое могут видеть только пользователи групп(ы): VIP