Состояние микросервисов по данным Temporal Technologies

  • Jul 19, 2023

Обработка сбоев узлов имеет решающее значение для продолжения работы облачных приложений. Temporal крадет страницу из истории Java с промежуточным программным обеспечением для управления состоянием, предназначенным для обработки сбоев.

часы.jpg
Шаттерсток

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

Понятно, что вы, вероятно, никогда раньше не слышали об этой двухлетней компании, поскольку из-за ее скудного веб-сайта компания выглядит так, будто она все еще скрыта. Неясно, есть ли у Temporal большая часть платной клиентской базы; в нем перечислены несколько логотипов, таких как Datadog, Netflix, Instacart, Qualtrics, Box и другие, но они являются пользователями технологии с открытым исходным кодом, а не платными клиентами. Если вы копнете достаточно внимательно, вы действительно можете найти настоящую документацию. Но на всякий случай, если мы забудем упомянуть об этом, Temporal только что получила раунд серии B на 103 миллиона долларов.

В частности, Temporal определяет узкую задачу: управление состоянием микросервисов. Учитывая, что микросервисы обычно запускаются в сильно распределенных облачных средах, управление состоянием похоже на хореографию транзакций в базе данных без мастера или с несколькими мастерами. Это проблема, которую, например, разработчики Cassandra хорошо знают. В базах данных все сводится к балансу согласованности транзакций с доступностью записи. На уровне приложений или микросервисов речь идет о доступности, где цепочка (в данном случае вычислительные узлы, на которых размещаются определенные микросервисы) будет настолько сильной, насколько сильно ее самое слабое звено.

Управление состоянием, которое фиксирует транзакции, является ключом к обеспечению достоверности и актуальности результатов, а также к предотвращению сбоя системы, будь то база данных или приложение. Например, когда вы снимаете наличные в банкомате банка, управление состоянием необходимо для обеспечения того, чтобы транзакция была завершена только после списания средств со счета.

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

В мире баз данных механизмы состояний обычно были встроенными; если вы запускаете базу данных, вам не нужно писать свой собственный механизм состояний. В мире AppDev это не так; разработчикам обычно приходилось писать свои собственные.

Для микросервисов организациям, как правило, приходится писать свои собственные конечные автоматы в дополнение к программному коду. Для временного пользователя Проверка, служба, которая обеспечивает онлайн-проверки биографических данных сотрудников, типичный рабочий процесс часто включает серию из 50 -- 60 – автоматизированные и ручные шаги (каждый из них – микросервисы), извлекающие данные из самых разных внешних источники. Было много очередей Kafka, которые нужно было жонглировать, записывая данные в несколько целевых баз данных, а затем записывая логику для объединения результатов. С временным сервером они могли сосредоточиться на приложении, а не на механизме состояний.

Temporal характеризует свое решение как «платформу с открытым исходным кодом для управления высоконадежными, масштабирование критически важных приложений». На первый взгляд, для микросервисов это очень похоже на то, что сервисные сетки делают. Но сервисные сетки работают на уровне инфраструктуры, создавая соединения и обеспечивая аварийное переключение, если узлы выходят из строя. Напротив, Temporal фокусируется на уровне приложения, а точнее на проверке того, является ли код или логика в микросервисе выполняется и, если нет, управление обходными путями, связанными с каскадированием зависимости.

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

С Temporal история повторяется на уровне микросервисов. Его серверная технология управления состоянием исходит из пятилетний проект с открытым исходным кодом это результат работы, разработанной в Uber. Он построен вокруг Временный сервер, платформу оркестрации микросервисов, которая находится между вычислительными серверами и исполняемым исходным кодом.

Это вызывает очевидный вопрос: если микросервисы распределены по своей природе, выполнение в распределенных вычислительных сред, не сможет ли центральный сервер оркестрации победить цель, представив единую точку отказ? Ответ - новый "экспериментальный" функция многокластерной асинхронной репликации это должно обеспечить необходимые возможности аварийного переключения. Когда дело доходит до транзакционных гарантий для микросервисов, будущее еще впереди.

Большие данные

Как узнать, причастны ли вы к утечке данных (и что делать дальше)
Борьба с предвзятостью в ИИ начинается с данных
Справедливый прогноз? Как 180 метеорологов предоставляют «достаточно хорошие» данные о погоде
Лечение рака зависит от головокружительного количества данных. Вот как это отсортировано в облаке
  • Как узнать, причастны ли вы к утечке данных (и что делать дальше)
  • Борьба с предвзятостью в ИИ начинается с данных
  • Справедливый прогноз? Как 180 метеорологов предоставляют «достаточно хорошие» данные о погоде
  • Лечение рака зависит от головокружительного количества данных. Вот как это отсортировано в облаке