Сервисы интроверты
Если вы думаете, как упростить разработку сервисов, то эта заметка для вас.
Основные рекомендации такие:
- Минимизируйте количество контактов сервиса.
- Используйте оркестратор по возможности.
- Не усложняйте логику обработки серийного отказа сервиса.
Минимизация контактов
Качественно написанный сервис имеет несколько типовых промежуточных и финишных коммуникаций. Например:
- Служебные сообщения: alerts (сообщения о нештатных ситуациях), check points, process metrics.
- Чтение и сохранение состояния процесса.
- Специальные сигналы для запуска прочих сервисов.
Проектируйте архитектуру так, чтобы сервис общался с минимальным количеством контрагентов (endpoints), максимально простым образом.
Идеальным вариантом был бы highly available, fault tolerance API Gateway, поддерживающий асинхронные вызовы (т.е. клиенту сразу отвечает OK, а доставку потребителю выполняет самостоятельно в настойчивом варианте).
Использование оркестратора
Применение оркестратора делает сервис пассивным в части кода, обрабатывающего получение задания. Код получается более типовым и простым (особенно, если задание закрепляется за подписчиком), что также ускоряет разработку. Дополнительно, оркестратор помогает строить маппинг данных между сервисами в формате No-Code, что уменьшает зависимость сервисов. То есть, в случае изменения выходного формата вызывающего сервиса реже придется менять API вызываемого сервиса.
Серийный отказ
Если сервис упал, его можно перезапустить, а если он упал несколько раз, то лучше уведомить о серийном отказе службу поддержки, а если он потом заработал, то уведомить еще раз. Прекрасный алгоритм, но сервисы станут проще, если будут просто отправлять alerts и check points, а на ошибку реагировать максимально примитивно. Отследить историю и состояние сервисов можно по логам, с помощью мониторинговой платформы, даже если сервис упал бесшумно или завис.
Сейчас при разработке у проектов есть целый блок, посвящённый кибербезопасности: компании не хотят получать штрафы за утечку персональных данных, терять деньги и доверие клиентов. Рассказываем на примерах кейсов, с какими задачами по кибербезу обращаются крупные компании.
В сервисной компании время – это деньги. Долгое ожидание ответа раздражает клиентов, а сотрудники теряют эффективность из-за перегрузки. Я это видел своими глазами, начиная с первых дней работы в службе поддержки. Но! Есть способы ускорить процессы, не жертвуя качеством обслуживания. Делюсь своим опытом и реальными решениями.
Многих владельцев бизнеса и сотрудников компаний волнует и даже бесит вопрос: почему 1С медленно работает, глючит и постоянно зависает? Рассказываем об основных причинах этих проблем и способах их решения.
В 5 УГЛОВ мы разработали собственный мониторинговый сервис, который позволяет обнаружить ошибки до того, как они станут критичными.
Клиент заказал разработку сайта.
Ожидание: все готово еще вчера.
Реальность: составление ТЗ, прототипирование, доработки, конфликты, снова доработки, и только потом результат.
Развод – процесс, который может затянуться на месяцы, если не подготовиться заранее. Чтобы всё прошло быстро и без лишних сложностей, важно сразу подготовить нужные документы.
Завершающая часть статьи о наиболее важных действиях для повышения зрелости IT-службы, которая «не тянет».