Рубрики
Без рубрики

Полный учебник по микросервисам с GRPC, Nodejs, Go, Python & Ruby – [Часть 0] Вступление

Ссылка на проект: https://github.com/joker6666/microservice-demo/ Часть 1 – Служба пользователя строительства с GRP … Теги с микросервисами, Go, Node, Python.

Ссылка проекта: https://github.com/joker666/microservice-demo/

Часть 1 – Служба Пользователя с GRPC, узлом. JS и MongoDB

Если вы некоторое время не жили под скалой, MicroService является архитектурой Defacto, чтобы сделать крупномасштабные приложения в наши дни. Многие компании перешли от монолитной архитектуры к архитектуре на основе микросервисов, такой как Uber, Netflix, Etsy и так далее. Компании принимают эту структуру, поскольку она упрощает их развитие и уменьшает сложность.

Это учебник из 6 частей, где мы создадим полное приложение на основе микросервисов с нуля. Вы можете увидеть, что уже было построено в ссылке на проект.

Мотивация

Я уже давно писал микросервисы. Но я помню, как в Интернете мало что не имел ресурсов, чтобы соединить все разные части. Мне пришлось много бороться и найти решения с пробными и ошибками. Это был пугающий опыт. Я желаю уменьшить боль для читателей этого блога.

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

Архитектура

Я не буду подробно рассказать о том, что такое микросервис и насколько это должно быть. Это организационный выбор для создания небольших/крупных услуг. Мы будем архитектировать услуги с помощью различных языков программирования для демонстрации, обратите внимание, что на практике это не требуется.

Мы собираемся создать самое простое в мире программное обеспечение для управления задачами. Пользователь может зарегистрироваться, создавать проекты/теги, добавлять задачи в проекты и пометить задачи в категории. Таким образом, мы разделили обязанности на 3 услуги. Мы также собираемся сделать услугу API Gateway, которая направляет за пределами API вызовы в микросервисы.

╔═════════════════╦═════════════════╦══════════════════════════════╗
║     Service     ║  Technologies   ║         Description          ║
╠═════════════════╬═════════════════╬══════════════════════════════╣
║ User Service    ║ NodeJS, MongoDB ║ Authentication service       ║
║ Project Service ║ Python, MySQL   ║ Project/Tag creation service ║
║ Task Service    ║ Ruby, PosgreSQL ║ Task assignment service      ║
║ API Service     ║ Go              ║ API Gateway service          ║
╚═════════════════╩═════════════════╩══════════════════════════════╝

Инструменты

Мы собираемся использовать несколько облачных инструментов для начала нашего проекта. Наиболее важным является выбор транспортного слоя. В то время как API на основе JSON использовались для общения в услугах, в настоящее время рамки на основе RPC более популярны. Мы собираемся использовать Grpc . Есть ресурсы онлайн, почему это лучший подход, я свяжу некоторые ниже. Основным является уменьшение задержки между сервисными вызовами, и она построена на языковом агентском Буферы протокола Анкет Основные инструменты

  • Докер
  • Протобуф
  • Grpc

Нам также понадобятся разные языки и платформы программирования, установленные в системе для разработки каждой услуги

Встроенное приложение тестируется на основе UNIX, в Windows вы можете использовать WSL2 для запуска служб, но это еще не было протестировано.

Начало работы на некоторых инструментах может быть пугающим, если вы еще не знакомы с ним, как буферы протокола и GRPC или Docker. Я призываю вас сначала пройти через некоторые онлайн -ресурсы и получить базовое понимание того, что делают эти инструменты. Вам не нужно быть ветераном, чтобы начать, просто базовые знания будут делать. Я планирую написать больше об этих инструментах. Если я это сделаю, я буду обращать их на обратную связь здесь.

Подход

Есть много способов писать микросервисы. Подход, который я приму, будет простой подход для начинающих. Как правило, микросервисы представляют собой небольшие кусочки большого программного обеспечения, которое приклеивается вместе, и это делает все приложение в конце. Услуги при развертывании либо независимо, либо в кластере, обычно общаются между ними в частной сети, которая не может быть перехвачена извне или даже подвержена воздействию общественности. Обычно написан шлюз API, который находится в качестве маршрутизатора для публичных вызовов API, который направляет их в соответствующие услуги или услуги и возвращает ответ.

Есть много шлюзов API с открытым исходным кодом, но здесь мы будем писать наши собственные, так как добавленная сложность этих шлюзов API не подходит для начинающих. Также не все шлюзы API предлагают JSON для транскодирования RPC, чтобы он мог принять запросы HTTP 1.0, наш один будет.

Расширение

Хотя я не является основной целью, я планирую добавить больше инструментов в проект и написать об этом. Инструменты для

  • Отслеживание
  • Мониторинг
  • логирование

которые являются столпами наблюдения.

Вывод

Я опубликую следующую статью, которая очень скоро начнет создавать первую службу с Nodejs и MongoDB. До тех пор следите за обновлениями.

Часть 1 – Служба Пользователя с GRPC, узлом. JS и MongoDB

Оригинал: “https://dev.to/joker666/the-complete-microservice-tutorial-with-grpc-nodejs-go-python-ruby-part-0-introduction-52ah”