Сервисы интроверты

Если вы думаете, как упростить разработку сервисов, то эта заметка для вас.

Основные рекомендации такие:

  1. Минимизируйте количество контактов сервиса.
  2. Используйте оркестратор по возможности.
  3. Не усложняйте логику обработки серийного отказа сервиса.

Минимизация контактов

Качественно написанный сервис имеет несколько типовых промежуточных и финишных коммуникаций. Например:

  • Служебные сообщения: alerts (сообщения о нештатных ситуациях), check points, process metrics.
  • Чтение и сохранение состояния процесса.
  • Специальные сигналы для запуска прочих сервисов.

Проектируйте архитектуру так, чтобы сервис общался с минимальным количеством контрагентов (endpoints), максимально простым образом.

Идеальным вариантом был бы highly available, fault tolerance API Gateway, поддерживающий асинхронные вызовы (т.е. клиенту сразу отвечает OK, а доставку потребителю выполняет самостоятельно в настойчивом варианте).

Использование оркестратора

Применение оркестратора делает сервис пассивным в части кода, обрабатывающего получение задания. Код получается более типовым и простым (особенно, если задание закрепляется за подписчиком), что также ускоряет разработку. Дополнительно, оркестратор помогает строить маппинг данных между сервисами в формате No-Code, что уменьшает зависимость сервисов. То есть, в случае изменения выходного формата вызывающего сервиса реже придется менять API вызываемого сервиса.

Серийный отказ

Если сервис упал, его можно перезапустить, а если он упал несколько раз, то лучше уведомить о серийном отказе службу поддержки, а если он потом заработал, то уведомить еще раз. Прекрасный алгоритм, но сервисы станут проще, если будут просто отправлять alerts и check points, а на ошибку реагировать максимально примитивно. Отследить историю и состояние сервисов можно по логам, с помощью мониторинговой платформы, даже если сервис упал бесшумно или завис.

Начать дискуссию
Кибербезопасность: как защитить платформу и завоевать доверие клиентов

Сейчас при разработке у проектов есть целый блок, посвящённый кибербезопасности: компании не хотят получать штрафы за утечку персональных данных, терять деньги и доверие клиентов. Рассказываем на примерах кейсов, с какими задачами по кибербезу обращаются крупные компании.

Кибербезопасность: как защитить платформу и завоевать доверие клиентов
2828
11
реклама
разместить
Как сократить время обработки заявок без потери качества: 5 проверенных практик

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

66
11
Новые инструменты для владельцев бизнесов от Яндекс Карт
Новые инструменты для владельцев бизнесов от Яндекс Карт
Как ускорить 1С: Топ-10 способов для эффективной работы

Многих владельцев бизнеса и сотрудников компаний волнует и даже бесит вопрос: почему 1С медленно работает, глючит и постоянно зависает? Рассказываем об основных причинах этих проблем и способах их решения.

Как ускорить 1С: Топ-10 способов для эффективной работы
3636
1111
22
22
11
11
11
11
11
11
11
Контроль ошибок для интернет-магазинов и других сложных веб-проектов

В 5 УГЛОВ мы разработали собственный мониторинговый сервис, который позволяет обнаружить ошибки до того, как они станут критичными.

Контроль ошибок для интернет-магазинов и других сложных веб-проектов
11
Правда или миф: почему в разработке не все так быстро, как кажется

Клиент заказал разработку сайта.

Ожидание: все готово еще вчера.

Реальность: составление ТЗ, прототипирование, доработки, конфликты, снова доработки, и только потом результат.

Правда или миф: почему в разработке не все так быстро, как кажется
88
44
Как упростить бракоразводный процесс? 5 советов от Податьвсуд.РФ

Развод – процесс, который может затянуться на месяцы, если не подготовиться заранее. Чтобы всё прошло быстро и без лишних сложностей, важно сразу подготовить нужные документы.

Как упростить бракоразводный процесс? 5 советов от Податьвсуд.РФ
1010
11
От хаоса к системе: как повысить зрелость IT-службы вашей компании? (заключение)

Завершающая часть статьи о наиболее важных действиях для повышения зрелости IT-службы, которая «не тянет».

От хаоса к системе: как повысить зрелость IT-службы вашей компании? (заключение)
1616
55
22
11
11
11
11
11
[]