Правила хорошего тона в оркестраторе Flashcards

1
Q

Какие два основных правила касаются четкого разделения обязанностей в оркестрации?

A
  • Оркестратор должен быть ответственен только за управление потоком выполнения и взаимодействие между сервисами или шагами.
  • Логика бизнес-процессов должна находиться в отдельных обработчиках, сервисах или вспомогательных классах.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Что такое идемпотентность в контексте операций оркестратора?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Как минимизировать долгоживущие операции в оркестраторе?

A

Не хранить большие объемы данных в состоянии оркестратора и использовать ссылки на внешние хранилища. Примеры внешних хранилищ: базы данных или blob-хранилища.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Что необходимо делать для обработки ошибок на каждом шаге оркестрации?

A

Обрабатывать все возможные исключения и реализовать retry policies. Например, использовать библиотеку Polly для операций, которые могут временно завершиться сбоем.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Какой подход к асинхронности следует использовать в оркестрации?

A

Использовать async/await во всех методах оркестрации и в вызываемых шагах, чтобы не блокировать потоки. Не следует вызывать синхронные методы внутри оркестратора.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Что подразумевает декомпозиция в контексте оркестрации?

A
  • Разбивать сложные оркестрации на небольшие и независимые шаги.
  • Избегать слишком длинных цепочек шагов — лучше организовать их в виде модульных процессов.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Как обеспечить чистоту кода в оркестрации?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Для чего нужны идентификаторы корреляции в оркестрации?

A

Для отслеживания выполнения оркестрации и связывания логов разных шагов. Примеры идентификаторов: GUID или traceId.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Как обеспечить тестируемость шагов оркестрации?

A

Разрабатывать шаги так, чтобы их можно было тестировать изолированно. Использовать моки или фейки для тестирования взаимодействия с внешними сервисами.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Что учесть при долгоживущих процессах в оркестрации?

A
  • Учитывать сценарии перезапуска сервера или изменения состояния в случае, если оркестрация может продлиться долго.
  • Использовать инструменты вроде Durable Functions или сохранения состояния для обеспечения устойчивости.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Как минимизировать побочные эффекты в шагах оркестрации?

A

Стараться, чтобы каждый шаг был детерминированным. Это означает, что результат шага зависит только от входных данных, а не от внешнего состояния.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Какое значение имеет логирование и мониторинг в оркестрации?

A

Логирование и мониторинг играют ключевую роль в оркестрации, особенно в сложных системах с микросервисной архитектурой. Они помогают обеспечивать прозрачность, отслеживать выполнение процессов, диагностировать проблемы и поддерживать надежность всей системы. Логировать ключевые этапы выполнения оркестрации и настроить мониторинг можно, например, используя Application Insights или Prometheus для отслеживания состояния процессов.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly