본문 바로가기

OpenDev

서버리스를 위한 Azure의 무한 질주 ~ CloudEvent 도 가장 앞서 지원

서버리스 애플리케이션 개발에 관심이 많다면? CloudEvent를 들어 봤을 것입니다. CloudEvent는 일관성 있고, 보편적인 방식으로 이벤트 데이터를 기술하기 위해 만든 공개 표준입니다. 이 표준은 CNCF(Cloud Native Compute Foundation)의 서버리스 워킹그룹에서 만들었습니다. CNCF는 쿠버네티스로 유명한 재단으로 마이크로소프트, 구글, 아마존 등 주요 클라우드 기업과 단체가 참여해 활용하고 있습니다. CNCF가 CloudEvent를 만든 이유는 간단합니다. 클라우드 사업자에 종속적이지 않은 이벤트 처리를 위해서입니다. 


마이크로소프트는 작년에 발표한 애저 이벤트 그리드(Azure Event Grid)의 한 부분으로 CloudEvent를 지원합니다. 애저 이벤트 그리드는 이벤트 처리가 많은 서버리스 플랫폼을 위해 개발된 이벤트 라우팅에 특화된 기능이라 보면 됩니다. 애저 이벤트 그리드를 사용하면 서버리스 환경에서 클라우드 인프라, 플랫폼, 서비스, IoT 장치 관련 이벤트 처리를 할 때 불필요한 컴퓨트와 네트워크 자원 낭비 없이 더 효율적으로 이벤트 데이터를 라우팅합니다. 동작 개념은 다음 그림과 같이 표현할 수 있습니다. 


애저 이벤트 그리드를 실제 애플리케이션 환경에서 사용하는 가상 시나리오를 하나 보시죠. 그럼 이해가 더 빠를 것입니다. 신입 사원이 들어왔을 때, 인사과에서 관련 내용을 시스템에 입력할 때 이벤트가 생성되는데, 이를 트리거로 활용해 신입 사원을 위한 명함 신청, 데스크톱 신청, 입사 환영 이메일 발송이 이루어지도록 하는 시나리오입니다. 

다시 본론으로 돌아와 CloudEvent 지원이 왜 중요할까요? 서로 다른 클라우드와 서비스 그리고 다양한 IoT 장치를 연결하는 구성, 보통 이렇게들 가죠. 기업들은 특정 업체 서비스 하나만을 고집하며 쓰지 않습니다. 이처럼 여러 기업의 서비스와 여러 제조사의 IoT 장치를 사용하는 환경에서 이벤트 데이터에 대한 상호 운용을 보장하는 것은 중요합니다. 개발자가 불필요한 것에 신경 쓰지 않고 서버리스 애플리케이션과 서비스 개발에만 집중하게 해야 합니다. 그래서 CloudEvent 같이 공개 표준이 필요한 것이죠. 


마이크로소프트는 애저 이벤트 그리드의 한 부분으로 CloudEvent를 지원합니다. 다음 그림을 보시죠. 위 구성도와 비교해 보면 이해가 더 빠를 것입니다. 


애저 환경에서는 이벤트 데이터 형식이 CloudEvent에 따라 작성되며, 이렇게 만든 이벤트 데이터는 애저 이벤트 그리드를 통해 처리됩니다. 더 자세한 사항은 CloudEvent 스키마에 맞춰 작성한 이벤트 데이터를 애저 이벤트 그리드에서 생성하고 처리하는 것을 소개하는 문서에서 읽어 볼 수 있습니다.