SAS Event Stream Processing (ESP) 2020버전 이상은 이제 클라우드 네이티브이며 쿠버네티스 환경에서 작동합니다. SAS ESP 프로젝트 개발자나 사용자가 새로운 환경을 효율적으로 활용하기 위해 알아야 할 몇 가지 사항이 있습니다.
-
SAS ESP "factory" 서버가 더 이상 필요하지 않습니다
이전에는 SAS ESP 6.2 및 이전 버전에서 개발자가 ESP 프로젝트를 설계하기 위해 먼저 최소한 하나의 ESP 서버의 작동해야 하고 데이터 소스의 커넥터의 설정값, 입력과 출력 변수, ASTORE 파일을 동적으로 검색해야 했습니다.
쿠버네티스 기반 ESP 버전을 사용하면 개발자가 ESP 프로젝트 설계를 위해 그전처럼 ESP 서버를 먼저 가동하지 않아도 기본적으로 제공되는 ESP 클러스터에 연결만 하면 됩니다.
왜냐하면 특정 쿠버네티스의 포드(pod)에서 사용할 수 있는 지속적으로 실행되는 ESP 서버가 있습니다. 이 서버는 이전에 "factory" 서버가 수행하던 모든 작업 (커넥터의 속성, 온라인 분석 알고리즘 및 ASTORE의 매개변수, 입력 및 출력 변수 검색)을 처리합니다.
개발자가 테스트 모드를 선택할 때 새로운 쿠버네티스의 포드에서 완전히 새로운 ESP 서버가 시작됩니다. 따라서 프로젝트를 설계하는 데 사용되는 ESP 서버와 테스트에 사용되는 ESP 서버는 2개의 별도 서버입니다. 사용자가 동시에 5개의 ESP 프로젝트를 테스트하는 경우 ESP는 각각 단일 ESP 서버를 실행하는 5개의 추가 쿠버네티스의 포드를 시작합니다.
-
SAS ESP 서버를 커스터마이징
개발자는 쿠버네티스에서 ESP 서버가 시작되는 방식에 대해 덜 제어할 수 있으므로 SAS ESP Studio 및 SAS Event Stream Manager 모두의 사용자의 비주얼 인터페이스에 새로운 서버의 커스터마이징 기능이 추가되었습니다. 사용자가 테스트 또는 프로젝트 실행 전에 ESP 옵션 또는 환경 변수를 지정할 수 있습니다.
-
SAS ESP 서버당 하나의 ESP 프로젝트
쿠버네티스의 ESP 2020 버전에는 ESP 서버가 1개의 ESP 프로젝트만 실행하는 새로운 실행 방식입니다. ESP 프로젝트를 테스트 중인지 SAS ESP Studio 또는 SAS Event Stream Manager에서 ESP 프로젝트를 실행 중인지 새로운 쿠버네티스의 포드는 이 ESP 프로젝트를 실행할 단일 ESP 서버로 인스턴스(instance)화 됩니다.
-
물리적 리소스에 대한 액세스
이것이 쿠버네티스의 큰 영향 중 하나입니다. 호스트의 물리적 디렉토리에 있는 파일에 액세스하는 것이 더 이상 "쉬운" 일이 아닙니다. ESP 환경 내부에 표시되는 모든 경로는 가상 경로입니다. 클러스터 외부에 존재하지 않습니다.
따라서 ESP 포드 및 컨테이너에서 물리적인 파일을 볼 수 있도록 Persistent Volumes (PV) 및 Persistent Volumes Claims (PVC)와 같은 쿠버네티스 메커니즘을 설정하기 위해 쿠버네티스 관리자에게 요청해야 합니다.
-
SAS ESP 어댑터 사용
SAS ESP 어댑터는 쿠버네티스 외부에서 더 이상 사용할 수 없습니다. 대부분 해당 커넥터가 있습니다. 따라서 커넥터를 사용하는 것이 권장합니다. 해당 커넥터가 없는 어댑터의 경우에는 커넥터 구성에서 어댑터를 호출할 수 있는 어댑터-커넥터를 사용해야 합니다.
-
REST API 사용
REST API를 사용하여 ESP 서버와 여전히 상호 작용할 수 있습니다. 이전에는 HTTP 포트 (예: 5702)를 수신하는 ESP 서버가 있었습니다. Endpoint은 이 ESP 서버에서 실행되는 프로젝트와 독립적이며 다음과 같았습니다.
이제 쿠버네티스를 사용하여 endpoint를 빌드하려면 프로젝트 이름이 필요합니다.
-
SAS ESPPy 사용
REST API와 유사하게 Python 및 ESPPy (SAS ESP의 오픈소스 패키지)를 사용하여 쿠버네티스에서 ESP와 통신하는 것은 약간 다릅니다.
기존 ESP 서버에 연결하거나 쿠버네티스에서 새 ESP 서버를 동적으로 시작하려면 Python과 ESP 간의 인터페이스로 사용되는 kubectl 프록시라는 추가 객체가 필요합니다.
ESP에 대한 연결은 다음과 같이 표시됩니다 (kubectl 프록시가 포트 8001의 지정된 시스템에서 수신 대기한다고 가정). 이 Python 문은 기존 "myproject" 서버에 연결하거나 즉시 생성합니다.
-
SAS ESP 서버 확장
Kubernetes의 멋진 점 중 하나는 자동 확장을 위한 기본 제공 메커니즘을 제공한다는 것입니다. SAS ESP는 Event Stream Manager로 ESP 프로젝트를 실행할 때 이를 활용합니다. CPU 사용량 또는 메모리 소비 측면에서 일부 임계값에 도달할 때 프로젝트에서 사용할 수 있는 초기 복제본 수와 최대 복제본 수를 지정할 수 있습니다.
결론
Kubernetes의 ESP를 사용하면 이 새로운 아키텍처를 최대한 활용하기 위해 사용자가 알고 있어야 하는 몇 가지 조정 사항이 있습니다. 이 블로그는 그 중 일부를 간략하게 알아봤습니다.
SAS Event Stream Processing 자세한 내용은 홈페이지 에서 확인하십시오.