Брат Тук
Брат Тук

Брат Тук

Редактор
badge 1 год с нами! badge Награда за 5000 очков репутации badge За 500 сообщений!
Регистрация
18/04/2023
Сообщения
6.401
Репутация
12.367
Автор: Balun.Courses
Название: Микросервисы, как в Bigtech-компаниях (2023)

[Balun.Courses] Микросервисы, как в Bigtech-компаниях (2023)


Описание:

НА КУРСЕ ТЫ ГЛУБОКО ПОГРУЗИШЬСЯ В МИКРОСЕРВИСЫ:
  • Освоишь базовое использование протокола 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-утилиту в качестве чат-клиента.

Подробнее:
Авторизуйтесь, чтобы посмотреть скрытый контент.

Скачать:
Авторизуйтесь, чтобы посмотреть скрытый контент.
 

Создайте учетную запись или войдите, чтобы комментировать или скачивать материалы!

У вас должна быть учетная запись, чтобы оставлять комментарии

Зарегистрироваться

Создайте учетную запись. Это просто!

Авторизоваться

У вас уже есть аккаунт? Войдите здесь.

Последние темы автора

Брат Тук
Ответы
0
Просмотры
770
Брат Тук
Брат Тук
Брат Тук
Ответы
0
Просмотры
518
Брат Тук
Брат Тук
Брат Тук
Ответы
1
Просмотры
416
Marsik8888
Брат Тук
Ответы
3
Просмотры
646
Els i El
Брат Тук
Ответы
3
Просмотры
735
Elena27B
Elena27B

Похожие темы

Малыш Джон
Ответы
2
Просмотры
6K
не робот
не робот
Малыш Джон
Ответы
3
Просмотры
8K
instaman
instaman
Алан-э-Дейл
Ответы
1
Просмотры
4K
notarget
notarget
Малыш Джон
Ответы
3
Просмотры
8K
instaman
instaman
Малыш Джон
Ответы
2
Просмотры
6K
не робот
не робот
Алан-э-Дейл
Ответы
1
Просмотры
4K
notarget
notarget
Сверху Снизу