Микросервис с помощью Serverless (лямбда или функция) - PullRequest
0 голосов
/ 03 июля 2018

У меня есть некоторые опасения по поводу идеи переноса текущей системы микросервисов в безсерверную систему.

Прямо сейчас между сервисами происходит обмен данными по HTTP или API на основе. Безсерверная лямбда или функция могут общаться друг с другом с помощью вызова функции или лямбда-вызова. Это можно сделать, изменив весь HTTP-код на лямбда-вызов во всех сервисах.

Другим способом по-прежнему является использование HTTP-запроса для вызова другой службы, которая работает в лямбде через API-шлюз. Этот метод вызова не подходит, потому что запрос на обслуживание отправляется в Интернет и снова возвращается в API-шлюз, а затем соседний сервис получает запрос. Слишком долго и не имеет смысла для меня.

Я буду рад, если лямбда-приложение вызовет другое лямбда-приложение с HTTP-запросом в локальной сети, это все еще мое исследование о том, как это сделать.

Хотелось бы узнать от всех вас о вашем опыте миграции микросервисов на основе HTTP-связи между сервисами в бессерверные, такие как Lambda или Functions?

Измените ли вы весь свой код на вызов конкретной лямбда-функции? Используете ли вы HTTP через Интернет и API Gateway снова для вызова соседнего сервиса? Вы, ребята, разобрались в лямбда-звонках в локальной / частной сети?

Спасибо

Ответы [ 2 ]

0 голосов
/ 17 августа 2018

Правильно ли я говорю, что вы говорите об управлении вашими микросервисами / функциями?

Если это так, вы рассматривали Функции шага AWS или Надежные функции в Azure ?

Функции шага AWS

Шаговые функции AWS позволяют координировать несколько сервисов AWS в безсерверных рабочих процессах, что позволяет быстро создавать и обновлять приложения. Используя пошаговые функции, вы можете разрабатывать и запускать рабочие процессы, объединяющие сервисы, такие как AWS Lambda и Amazon ECS, в многофункциональные приложения. Рабочие процессы состоят из последовательности шагов, при этом выходные данные одного шага выступают в качестве входных данных для следующего. Разработка приложений проще и интуитивно понятнее с помощью пошаговых функций, поскольку она переводит ваш рабочий процесс в диаграмму конечного автомата, которую легко понять, легко объяснить другим и легко изменить. Вы можете отслеживать каждый шаг выполнения, как это происходит, что означает, что вы можете быстро выявлять и устранять проблемы Шаговые функции автоматически инициируют и отслеживают каждый шаг и повторяют попытки при возникновении ошибок, поэтому приложение выполняется в порядке и в соответствии с ожиданиями.

Источник: https://aws.amazon.com/step-functions/

Функции Azure Durable

Основным вариантом использования Durable Functions является упрощение сложных проблем координации с сохранением состояния в приложениях без сервера. В следующих разделах описаны некоторые типичные шаблоны приложений, которые могут извлечь выгоду из функций длительного пользования: объединение функций, разветвление / разветвление, асинхронные API-интерфейсы HTTP, мониторинг.

Источник: https://docs.microsoft.com/en-us/azure/azure-functions/durable-functions-overview

0 голосов
/ 17 августа 2018

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

Другими словами, это может выглядеть так

function1 ==> queue1 <== function2 ==> queue2 <== function 3 ==> где-то еще, например хранение

...