Azure Functions란?

완료됨

경영진이 추진하는 새로운 마케팅 요구 사항을 가장 잘 이행하는 방법에 대한 Tailspin Space Game 웹 팀의 논의 내용을 살펴보고 있습니다. 팀은 몇 가지 서버리스 기술, 특히 Azure Functions를 해당 DevOps 프로세스에 통합해야 합니다.

팀 구성원과 함께 확인해 보겠습니다.

새 요구 사항

Irwin: 이렇게 급한 통보에도 회의에 참석해 주셔서 감사합니다. 상황이 고조되고 있는 가운데 마케팅 팀은 우리 모두의 일을 복잡하게 만들 수 있는 몇 가지 약속을 했습니다. 마케팅 팀은 우리 사이트를 정말로 좋아해요. 그들은 우리가 최종 출시를 앞두고 있는 현재는 물론 이후에도 게임을 프로모션하는 데 순위표를 사용할 수 있다고 생각합니다. 또한 우리가 원래 계획했던 것 이상으로 스케일 아웃하려고 합니다.

Mara: 잘됐네요, 그렇죠? 우리는 Azure를 사용하고 있어서 필요한 만큼 서비스를 스케일 아웃할 수 있어요.

Irwin: 그들은 그저 누구나 순위표 데이터를 자체 애플리케이션에 통합할 수 있는 기능을 원해요. 그들은 우리 사이트에서, 게임에서, 게임 리뷰 사이트에서 그리고 심지어 외부 블로그와 개인 사이트에서도 동일한 순위표 옵션을 제공한다면 정말 멋질 것이라고 생각해요. 게임 엔진 팀은 현재, 우리가 순위표 데이터를 끌어오는 프로덕션 데이터베이스를 소유하고 있다는 것이 한 가지 문제입니다. 그들은 앞으로 API를 빌드하고 소유해야 한다고 생각해요.

Andy: Mara 님, 생각하신 게 있나요?

Mara: 저는 우리가 뭔가를 찾아낼 수 있다고 확신해요. 다음 사항에 주의해야 해요.

  • 신속하게 제공해야 하므로 우리 코드와 기술을 사용할 수 있는 솔루션을 찾아야 합니다.
  • 작은 기능을 독립적인 서비스로 리팩터링해야 합니다.
  • 프로덕션에서 관리 오버헤드를 최소화해야 합니다.
  • 엄청난 노력 없이도 대규모 스케일링이 가능해야 합니다.

팀원들이 동의하며 고개를 끄덕입니다.

내 머신에서 작동

회의가 끝났습니다. 다음 날 아침 Andy는 신이 나서 즉흥적으로 대화하기 위해 Mara의 사무실에 방문했습니다.

Andy: 생각났어요! 순위표 API에 대한 모든 요구 사항을 충족하는 솔루션을 찾았어요. Azure Functions라고 하는 서버리스 서비스이에요.

Mara: 잘됐네요! 무엇인가를 시연할 수 있을 때까지 얼마나 걸리나요?

Andy: 이미 준비를 해놓았죠. GitHub 리포지토리를 포크하고 순위표 코드를 새 Azure Functions 프로젝트로 리팩터링했어요. 해당 기능은 간단한 HTTP GET 요청을 통해 순위표 데이터를 표시해요. 저는 또한 순위표 요청 시 해당 엔드포인트를 사용하도록 웹 사이트를 업데이트했어요. 누구든지 똑같이 할 수 있어요.

Mara: 정확히 우리에게 필요한 것 같네요. 저는 기존 CI/CD 파이프라인을 확장하여 기본 사이트 프로젝트에서와 마찬가지로 빌드 및 배포를 지원하도록 도울 수 있어요.

참고

이 모듈에서는 앱을 Azure Functions에 연결하는 방법을 중점적으로 다루지는 않습니다. 관심이 있다면 소스 코드를 검토할 수 있습니다. 해당 코드는 C#용 Azure Functions 런타임을 사용하여 Azure Functions에서 순위표 데이터를 읽습니다.

Azure Functions란?

Azure Functions는 광범위한 Azure 서버리스 컴퓨팅 기술 영역 내의 특정 서비스로, 개발자가 상태 비저장, 서버리스 환경에 존재하는 간단한 함수를 쉽게 빌드할 수 있는 방법을 제공합니다. 함수는 HTTP 요청, 스토리지의 데이터 변경, 큐에서 메시지 수신 등 다양한 방법을 사용하여 트리거할 수 있습니다. Azure Functions 트리거 및 바인딩 개념에서 트리거 및 바인딩에 관해 자세히 알아볼 수 있습니다.

Tailspin 팀은 이 시나리오에서 Azure Functions를 선택했습니다. Azure Functions가 다음과 같은 모든 요구 사항을 충족했기 때문이었습니다.

  • 신속하게 제공해야 하므로 우리 코드와 기술을 사용할 수 있는 솔루션을 찾아야 합니다.
    • 이미 가지고 있는 코드를 적용하는 ASP.NET Core 애플리케이션으로 솔루션을 신속하게 빌드할 수 있습니다.
  • 작은 기능을 독립적인 서비스로 리팩터링해야 합니다.
    • ‘다른 애플리케이션 노출 영역을 걱정할 필요 없이 독립적인 기능을 제공할 수 있습니다.’
  • 프로덕션에서 관리 오버헤드를 최소화해야 합니다.
    • ‘Azure Functions를 사용하면 호스팅 환경에 대해 걱정할 필요가 없습니다.’
  • 엄청난 노력 없이도 대규모 스케일링이 가능해야 합니다.
    • 서버리스 기술은 가상 머신 또는 앱 서비스보다 훨씬 더 빠르게 자동으로 확장 또는 축소할 수 있는 사실상 무제한의 스케일링을 제공합니다.

Azure Functions 및 기타 서버리스 기술이 모든 솔루션에 항상 적합한 것은 아닙니다. 나중에 작업에 적합한 기술을 선택하는 데 도움이 되는 리소스를 찾을 수 있는 위치에 대해 살펴보겠습니다.

지식 점검

1.

다음 중 서버리스 컴퓨팅에 적합한 프로젝트는 무엇인가요?

2.

다음 중 Azure Functions를 사용하는 적합한 이유가 아닌 것은 무엇인가요?

3.

다음 중 Azure Functions 앱을 직접 트리거하는 데 지원되는 방법이 아닌 것은 무엇인가요?