[Микросервисы] Лучшие фреймворки для микросервисов (перевод)

Автор Сообщение
news_bot ®

Стаж: 6 лет 7 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
21-Июн-2021 18:34

Выберите правильный фреймворк для архитектуры микросервисов
Архитектура микросервисов — это методология, позволяющая разделить монолитное единое приложение на небольшие приложения и сервисы, которые выполняют легкие задачи. Бизнес-возможности и независимо развертываемые модели являются основными целями разработки микросервисов. Архитектура микросервисов построена с использованием различных языков программирования, они могут быть развернуты и соединены между собой.Преимущества микросервисов
  • Внедрение новых технологий и процессов.
  • Независимое масштабирование приложений.
  • Готовность к облачным вычислениям.
  • Безупречная интеграция.
  • Эффективное использование аппаратного обеспечения.
  • Безопасность на уровне услуг.
  • Функции на базе API для эффективного повторного использования.
  • Независимая разработка и развертывание приложений.
Критерии выбора фреймворкаНиже перечислены некоторые критические аспекты, которые необходимо учитывать при выборе подходящего фреймворка:
  • Популярность — измеряется показателем признания фреймворка в отрасли, основанным на количестве клиентов, которые сделали его (фреймворк) стандартом предприятия. Другими важными аспектами являются наличие документации и количество квалифицированных специалистов, доступных на рынке.
  • Зрелость сообщества — репутация поддерживающих фреймворк компаний, таких как Apache, Google или Spring. Зрелость фреймворка с точки зрения поддержки сообщества / коммерческой поддержки и частоты выпуска релизов для устранения проблем и добавления новых функций.
  • Простота разработки — Фреймворки облегчают разработку приложений и повышают производительность разработчиков. IDE (Integrated Development Environment) и инструменты, поддерживающие фреймворки, также играют существенную роль в быстрой разработке приложений.
  • Кривая обучения — Наличие документации в виде учебников, передовых методов и решений типичных проблем играет важную роль в сокращении кривой обучения и повышении общей производительности разработчиков.
  • Поддержка архитектуры — Фреймворки предоставляют модули кода и интерфейсы со встроенными шаблонами проектирования, которые облегчают разработчикам приложений сложность кодирования.
  • Поддержка автоматизации — Фреймворк поддерживает автоматизацию задач, связанных со сборкой и развертыванием микросервисов.
  • Независимое развертывание — Фреймворк должен поддерживать все аспекты независимого развертывания - прямую и обратную совместимость, многократное использование и переносимость.
  • Непрерывная интеграция — Разработчики часто интегрируют код в общий репозиторий, желательно несколько раз в день. Каждая интеграция может быть проверена с помощью автоматизированной сборки и тестов.
Для разработки микросервисов доступны различные фреймворки в соответствии с требованиями проекта. Java, Python, C++, Node JS и .Net — вот несколько языков для разработки микросервисов. Давайте подробно рассмотрим языки и связанные с ними фреймворки, которые поддерживают разработку микросервисов. На приведенной ниже диаграмме показаны различные фреймворки, связанные с каждым языком, популярным в 2021 году и так далее.
Фреймворки для микросервисов (Microservices Frameworks)1. JavaСуществует несколько фреймворков для разработки архитектуры микросервисов с использованием языка программирования Java:
  • Spring Boot — Spring Boot — это популярный фреймворк микросервисов на Java. Позволяет создавать как небольшие, так и крупномасштабные приложения. Spring boot легко интегрируется с другими популярными фреймворками с помощью инверсии управления.
  • Dropwizard — фреймворк Dropwizard используется для разработки удобных, высокопроизводительных и Restful веб-сервисов. Без дополнительных настроек поддерживает инструменты конфигурации, метрики приложения, протоколирования и работы.
  • Restlet — фреймворк Restlet следует архитектурному стилю RST, который помогает Java-разработчикам создавать микросервисы. Принят и поддерживается Apache Software License.
  • Helidon — Коллекция библиотек Java для написания микросервисов. Простой в использовании, с инструментальными возможностями, поддержкой микропрофилей, реактивным веб-сервером, наблюдаемый и отказоустойчивый.
  • AxonIQ — Событийно-ориентированный фреймворк микросервисов с открытым исходным кодом, сфокусированный на Command Query Responsibility Segregation (CQRS), Domain-Driven Design (DDD) и скоринге событий. 
  • Micronaut — full-stack фреймворк на основе JVM для построения модульных, легко тестируемых микросервисных и бессерверных приложений. Создает полнофункциональные микросервисы, включая внедрение зависимостей, автоконфигурацию, обнаружение служб, маршрутизацию HTTP и клиент HTTP. Micronaut стремится избежать недостатков фреймворков Spring, Spring Boot, обеспечивая более быстрое время запуска, уменьшение объема памяти, минимальное использование рефлексии и спокойное юнит-тестирование.
  • Lagom — Реактивный фреймворк микросервисов с открытым исходным кодом для Java или Scala. Lagom базируется на Akka и Play.
2. GoLang Доступно несколько фреймворков для разработки архитектуры микросервисов с использованием языка программирования Go
  • GoMicro — подключаемая библиотека RPC предоставляет фундаментальные строительные блоки для написания микросервисов на языке Go. Поддерживаются API-шлюз, интерактивный CLI, сервисный прокси, шаблоны и веб-панели.
3. PythonДоступно несколько фреймворков для разработки архитектуры микросервисов с использованием языка программирования Phyton:
  • Flask — Web Server Gateway Interface (WSGI) Веб-ориентированный легкий фреймворк микросервисов на языке Phyton. Flask-RESTPlus - расширение для Flask, которое предоставляет поддержку для быстрого создания REST API.
  • Falcon — веб-фреймворк API для построения надежных бэкендов приложений и микросервисов в Phyton. Фреймворк отлично работает как с асинхронным интерфейсом шлюза сервера (ASGI), так и с WSGI.
  • Bottle — Быстрый, легкий и простой WSGI микросервисный веб-фреймворк на основе Phyton. Распространяется одним файловым модулем и не имеет зависимостей, кроме стандартной библиотеки Python.
  • Nameko — Фреймворк Nameko для построения микросервисов на Phyton со встроенной поддержкой RPC через AMQP, асинхронных событий, HTTP GET и POST, а также WebSocket RPC.
  • CherryPy — CherryPy позволяет разработчикам создавать веб-приложения, используя объектно-ориентированное программирование на Python.
4. NodeJSСуществует несколько фреймворков для разработки архитектуры микросервисов с использованием языков программирования NodeJS
  • Molecular — событийно-ориентированная архитектура микросервисов, построенная с использованием NodeJS. Содержит встроенный реестр сервисов и выполняет их динамическое обнаружение, осуществляет балансировку нагрузки на запросы и события, а также функцию отказоустойчивости и встроенное кэширование.
5. .NETASP.Net, фреймворк, используемый для веб-разработки и делающий ее API.  Микросервисы поддерживают встроенные функции, для их (микросервисов) построения и развертывания с помощью контейнеров Docker.6. MultiLanguageСуществует несколько фреймворков для разработки архитектуры микросервисов с использованием нескольких языков
  • Spark — создание веб-приложений микросервисов с использованием Kotlin и Java.  Выразительный и простой веб-фреймворк DSL на Java/Kotlin, созданный для быстрой разработки.
ЗаключениеВ процессе разработки проектов предприятия и сообщества разработчиков сталкиваются с проблемой выбора правильного фреймворка микросервисов для быстрого и экономически эффективного создания надежных приложений.Выбор фреймворка должен основываться на признании в отрасли, наличии навыков, поддержке сообщества, кривой обучения, простоте разработки и уверенности за счет передового опыта применения. ИТ-организации должны понимать плюсы и минусы выбранного фреймворка и убедиться, что их решение не помешает будущим деловым и операционные потребностям.
Перевод подготовлен в рамках курса"Microservice Architecture". Всех желающих приглашаем на вебинар «Атрибуты качества, тактики и паттерны». На этом открытом уроке рассмотрим, что такое качественная архитектура, основные атрибуты качества и тактики работы с ними.

===========
Источник:
habr.com
===========

===========
Автор оригинала: Ravi Kiran Mallidi
===========
Похожие новости: Теги для поиска: #_mikroservisy (Микросервисы), #_microservices, #_frameworks, #_blog_kompanii_otus (
Блог компании OTUS
)
, #_mikroservisy (
Микросервисы
)
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 21-Сен 18:42
Часовой пояс: UTC + 5