모던 앱 개발 - 이벤트 중심

이벤트 기반 애플리케이션 패턴을 사용하면 클라우드 리소스의 변경 사항과 애플리케이션에서 생성된 이벤트에 거의 실시간으로 대응할 수 있습니다.

이벤트는 시스템에서 중요한 발생이나 변경(예: 오브젝트 스토리지에 새로 생성된 오브젝트 또는 애플리케이션의 성능 경고)입니다. 이 애플리케이션 패턴은 확장 가능하고 안전하며 안정적이며 고성능 이벤트 기반 애플리케이션을 생성하기 위한 설계 원칙 및 아키텍처를 나타냅니다.

Oracle Cloud Infrastructure(OCI)는 이벤트 기반 애플리케이션을 구축하는 데 도움이 되는 OCI 서비스 커넥터 허브 및 OCI 이벤트와 같은 서비스를 제공합니다. OCI 서비스 커넥터 허브를 통해 서비스 간 데이터 이동을 위한 서비스 커넥터를 생성할 수 있습니다. 서비스 커넥터는 이동할 데이터, 선택적 작업 및 태스크 완료 시 데이터 전달을 위한 대상 서비스가 포함된 소스 서비스를 지정합니다. 선택적 작업의 예로는 소스에서 데이터를 처리하는 함수 작업 또는 소스에서 로그 데이터를 필터링하는 로그 필터 작업이 있습니다. 서비스 커넥터에 지원되는 소스 서비스에는 OCI 모니터링, OCI 로깅 및 OCI 스트리밍이 포함됩니다. 대상 서비스의 예로는 OCI Functions, OCI Notifications 및 OCI Object Storage가 있습니다. OCI 이벤트를 사용하면 스트림을 사용하여 서비스 커넥터가 수집할 수 있는 리소스 변경 이벤트를 발생시킬 수 있습니다. 마찬가지로 앱은 사용자 지정 이벤트를 발생시키고 스트림을 사용하여 서비스 커넥터에 라우팅할 수 있습니다.

설계 원칙

이벤트 기반 애플리케이션을 위한 아키텍처를 설계할 때 다음과 같은 최신 앱 개발 원칙을 사용합니다.

  • 가능한 경우 로우 코드 플랫폼 사용, 그렇지 않은 경우 성숙한 프로그래밍 언어 및 경량 프레임워크 사용

    개방형 업계 표준 형식인 CloudEvents를 사용하여 이벤트 데이터를 설명하십시오. CloudEvents를 사용하면 널리 사용되는 일관된 형식으로 이벤트 데이터를 설명하고 Java를 비롯한 여러 프로그래밍 언어에 대한 SDK(소프트웨어 개발 키트)를 제공할 수 있습니다. Oracle Cloud Infrastructure Events를 사용하여 생성된 이벤트는 CloudEvents 형식을 사용합니다.

  • 관리형 서비스를 사용하여 앱 개발 및 운영의 복잡성 해소

    관리형 서비스를 사용하여 이벤트 데이터를 통신, 처리 및 유지합니다.

    OCI 서비스 커넥터 허브를 사용하여 서비스 간 데이터 이동을 통합관리합니다. OCI Functions 또는 OKE(Oracle Container Engine for Kubernetes)와 같은 관리형 서비스를 사용하여 이벤트를 처리합니다. OCI 통지를 사용하여 서비스 커넥터를 전자 메일, SMS, Slack 또는 PagerDuty와 같은 다운스트림 서비스에 연결합니다.

  • 계기 포괄적인 모니터링 및 추적

    OCI 서비스 커넥터 허브 및 OCI 이벤트와 같은 이벤트 라우터는 OCI 모니터링에서 측정항목을 생성하므로 애플리케이션 이벤트를 쉽게 모니터링하고 사용자정의 측정항목 및 알람을 구축할 수 있습니다. 엔드투엔드 분산 추적의 경우 로깅 규칙(OCI Logging Analytics)과 알람 기반 모니터링(OCI Notifications)을 통해 커스터마이징 대시보드를 구축하여 관리자가 모든 문제를 발견하고 신속하게 대응할 수 있습니다. 또한 이벤트 라우터는 이벤트의 설치 공간에 단일 화면 뷰를 제공할 수 있는 고유한 기능을 제공합니다.

구조

이 아키텍처는 최신 앱 개발 원칙을 사용하여 이벤트 중심 애플리케이션을 생성합니다.



mad-event-driven-아키텍처-oracle.zip

구조에는 다음과 같은 구성 요소가 있습니다.

  • 스트리밍

    Oracle Cloud Infrastructure 스트리밍은 실시간으로 소비하고 처리할 수 있는 대용량의 연속 데이터 스트림을 입수하기 위한 확장 가능하며 내구성 있는 완전 관리형 스토리지 솔루션을 제공합니다. 스트리밍을 사용하여 애플리케이션 로그, 운영 원격 측정, 웹 클릭-스트림 데이터 같은 대용량 데이터를 입수하거나, 발행-구독 메시징 모델에서 데이터가 연속적으로 생성되고 처리되는 다른 사용 사례에 사용할 수 있습니다.

  • 함수

    Oracle Cloud Infrastructure Functions는 전담 관리 멀티테넌트, 확장성이 뛰어난 온디맨드 Functions-as-a-Service(FaaS) 플랫폼입니다. Fn Project 오픈 소스 엔진에 의해 구동 됩니다. 함수를 사용하면 코드를 배치하고 직접 호출하거나 이벤트에 대한 응답으로 트리거할 수 있습니다. Oracle Functions는 Oracle Cloud Infrastructure Registry에서 호스팅되는 Docker 컨테이너를 사용합니다.

  • 서비스 커넥터

    Oracle Cloud Infrastructure Service Connector Hub는 OCI의 서비스 간 데이터 이동을 조정하는 클라우드 메시지 버스 플랫폼입니다. 서비스 커넥터를 사용하여 소스 서비스에서 대상 서비스로 데이터를 이동할 수 있습니다. 서비스 커넥터를 사용하여 선택적으로 대상 서비스로 전달되기 전에 데이터에 대해 수행할 작업(예: 함수)을 지정할 수도 있습니다.

    Oracle Cloud Infrastructure Service Connector Hub를 사용하면 SIEM(보안 정보 및 이벤트 관리) 시스템에 대한 로깅 집계 프레임워크를 신속하게 구축할 수 있습니다.

  • 서비스 커넥터를 사용하여 소스 서비스에서 대상 서비스로 데이터를 이동할 수 있습니다. 서비스 커넥터를 사용하여 선택적으로 대상 서비스로 전달되기 전에 데이터에 대해 수행할 작업(예: 함수)을 지정할 수도 있습니다.
  • 통지

    Oracle Cloud Infrastructure Notifications 서비스는 게시-구독 패턴을 통해 분산된 구성요소로 메시지를 브로드캐스트하여, Oracle Cloud Infrastructure에서 호스팅되는 애플리케이션에 대해 안전하고 신뢰성이 높으며 짧은 대기 시간 및 내구성 있는 메시지를 전달합니다.

예제 사용 사례

Alarm on Log Data 사용 사례는 이벤트 기반 아키텍처를 채택하여 Oracle Cloud Infrastructure(OCI) Service Connector Hub, OCI Logging 및 OCI Monitoring 서비스를 사용하여 로그 데이터에 대한 알람을 구현합니다.

이 사용 사례는 서비스 커넥터 및 알람을 만듭니다. 서비스 커넥터(OCI 서비스 커넥터 허브)는 수신된 로그 데이터로 트리거될 때 알람이 실행되는 동안 로그 데이터를 OCI 로깅에서 OCI 모니터링으로 처리하고 이동합니다. 자세한 내용은 자세히 탐색 항목에서 시나리오 링크를 참조하십시오.



이벤트 기반 사용 사례-oracle.zip

배치

UHO(Universal Health Organization)는 모던 앱 개발 프레임워크의 원칙을 준수하는 샘플 애플리케이션입니다. 특히 웹 또는 모바일, 메시징 및 이벤트 기반 아키텍처 패턴의 요소를 구현하고 GitHub에서 사용할 수 있습니다.
  1. GitHub으로 이동합니다.
  2. 저장소를 로컬 컴퓨터로 복제하거나 다운로드합니다.
  3. README 문서의 지침을 따릅니다.

추가 탐색

관련 리소스에 대해 자세히 알아봅니다.

로그 변경

이 로그에는 중요한 변경 사항이 나열됩니다.