서버리스 함수 아키텍처 디자인

서버리스 아키텍처는 실행할 인프라에서 코드를 추상화하여 클라우드 플랫폼을 순수 클라우드 네이티브 코드로 확대합니다. Azure Functions는 단일 작업을 수행하는 작은 코드 조각인 함수를 지원하는 서버리스 컴퓨팅 옵션입니다.

Functions 애플리케이션에서 서버리스 아키텍처를 사용할 경우의 이점은 다음과 같습니다.

  • Azure 인프라는 애플리케이션이 대규모로 계속 실행되어야 하는 업데이트된 모든 서버를 자동으로 제공합니다.
  • 컴퓨팅 리소스는 탄력적 요구를 충족하기 위해 동적으로 할당되고 즉시 자동 크기 조정됩니다. 서버리스란 "서버 없이"가 아니라, 서버가 필요할 때만 실행되기 때문에 "서버를 적게"를 의미합니다.
  • 마이크로 청구는 코드가 실행하는 데 사용하는 컴퓨팅 리소스 및 기간에 대해서만 요금을 청구하여 비용을 절감합니다.
  • 함수 바인딩은 다양한 Azure 및 타사 서비스에 대한 선언적 액세스를 제공하여 통합을 간소화합니다.

함수는 이벤트 기반입니다. HTTP 웹 요청, 메시지, 일정 또는 데이터 변경과 같은 외부 이벤트가 함수 코드를 트리거합니다. Functions 애플리케이션은 트리거를 코딩하지 않고 트리거에 대한 응답만 코딩합니다. 진입 장벽이 낮을수록 개발자는 메시징과 같은 인프라 문제를 처리하는 코드를 작성하는 대신 비즈니스 논리에 집중할 수 있습니다.

Azure Functions는 Azure 및 Azure Stack의 관리형 서비스입니다. 오픈 소스 Functions 런타임은 Kubernetes, Azure IoT Edge, 온-프레미스 및 기타 클라우드를 비롯한 많은 환경에서 작동합니다.

서버리스 및 Functions에는 새로운 사고 방식과 애플리케이션 빌드에 대한 새로운 접근 방식이 필요합니다. 모든 문제에 다 맞는 솔루션이 아닙니다. 서버리스 함수 시나리오의 예는 참조 아키텍처를 참조하세요.

구현 단계

Azure Functions를 사용하여 서버리스 기술을 성공적으로 구현하려면 다음 작업이 필요합니다.

  • 결정 및 계획

    설계자TDM(기술 의사 결정자)애플리케이션 평가를 수행하고, 기술 워크샵 및 교육을 수행하거나 그에 참가하고, PoC(개념 증명) 또는 파일럿 프로젝트를 실행하며, 필요에 따라 아키텍처 디자인 세션을 수행합니다.

  • 앱 개발 및 배포

    개발자는 서버리스 Functions 앱 개발 패턴 및 사례를 구현하고, DevOps 파이프라인을 구성하고, SRE(사이트 안정성 엔지니어링) 모범 사례를 사용합니다.

  • 작업 관리

    IT 전문가는 호스팅 구성, 인프라 프로비저닝을 자동화하여 미래 지향적 확장성을 식별하고 비즈니스 연속성 및 재해 복구를 계획하여 가용성을 유지 관리합니다.

  • 보안 앱

    보안 전문가는 Azure Functions 보안 필수 사항을 처리하고, 호스팅 설정을 보호하고, 애플리케이션 보안 지침을 제공합니다.