Azure Durable Functions

zz1·2024년 12월 13일

Durable Functions

서버리스 컴퓨팅 환경에서 상태 저장 함수(stateful functions)를 작성할 수 있도록 하는 Azure Functions의 기능이다. Azure Functions 프로그래밍 모델에서 오케스트레이터 함수를 작성하여 상태 저장 워크플로를 정의하고, 엔터티 함수를 작성하여 상태 저장 엔터티를 정의한다.

  • Durable Functions은 Azure Functions의 확장
  • 함수 실행의 상태 저장 오케스트레이션에 대한 Durable Functions를 사용할 수 있다.
  • 지속성 함수 앱은 다양한 Azure Functions로 구성된 솔루션이다.
  • 현재 Azure Functions에는 활동, 오케스트레이터, 엔터티 및 클라이언트의 네 가지 지속성 함수 형식이 있다.

Azure Functions

더 적은 코드를 쓰고, 인프라를 적게 유지하고, 비용을 절감할 수 있도록 하는 서버리스 솔루션.
stateless이기 때문에 다양한 함수들을 쉽게 연결하지 못한다.

orchestrator function

시스템 관리에서 오케스트레이션은 컴퓨터 시스템과 소프트웨어의 자동화된 구성, 조율, 관리를 뜻한다.
오케스트레이터 함수는 작업이 실행되는 방법 및 작업이 실행되는 순서를 설명하고, 오케스트레이션을 설명한다. 오케스트레이션에는 활동 함수, 하위 오케스트레이션, 외부 이벤트 대기, HTTP 및 타이머를 비롯한 다양한 유형의 작업이 포함될 수 있다.

  • 오케스트레이터 함수를 사용하여 함수 앱 내에서 다른 지속성 함수의 실행을 오케스트레이션 할 수 있다.
  • 오케스트레이터 함수는 절차적 코드를 사용하여 함수 워크플로를 정의한다.
  • 다른 지속성 함수를 동기적 및 비동기적으로 호출할 수 있다.
  • 지속적이고 신뢰할 수 있다.
  • 장기 실행될 수 있다.

애플리케이션 패턴

Durable Functions에 대한 기본 사용 사례는 서버리스 애플리케이션에서 복잡한 상태 저장 조정 요구 사항을 단순화하는 것이다.

함수 체이닝

일련의 함수가 특정 순서로 실행된다. 한 함수의 출력은 다른 함수의 입력에 적용된다.

팬아웃/팬인

여러 함수를 병렬로 실행한 다음 모든 함수가 완료될 때까지 기다린다.

비동기 HTTP API

외부 클라이언트와 장기 실행 작업의 상태를 조정하는 문제를 해결한다. 일반적으로 HTTP 엔드포인트에서 장기 실행 작업을 트리거하도록 한다.

모니터

유연한 되풀이 프로세스를 나타낸다. 예를 들어 특정 조건이 충족될 때까지 폴링한다.

인간 상호 작용

시간 제한 및 보정 논리를 사용하여 사용자와의 상호 작용을 허용할 수 있다.

집계 (상태 저장 엔터티)

일정 기간 동안의 이벤트 데이터를 주소 지정 가능한 단일 엔터티로 집계하는 것이다.


Durable Functions 앱의 함수

  • 오케스트레이터 함수: 다른 함수를 오케스트레이션하는 워크플로
  • 작업 함수: 오케스트레이터 함수에 의해 호출되는 함수로, 작업을 수행하고 선택적으로 값을 반환
  • 클라이언트 함수: 오케스트레이터 함수를 시작하는 Azure의 일반 함수.
    ➡️ 오케스트레이터가 전체적인 함수 흐름을 정의하고 그 흐름 안에서 실제 동작을 처리하는 것은 작업 함수.

참고

0개의 댓글