다음세대 연합 테스트베드 포털 MySlice v2: 프로토타입에서 상용화까지
초록
MySlice v2는 전 세계 분산 컴퓨팅·스토리지·네트워크 자원을 통합 관리하는 연합 테스트베드 포털이다. 마이크로서비스 기반 아키텍처와 캐시·비동기 작업 큐를 도입해 확장성과 신뢰성을 강화했으며, SFA/GENI 표준 API와 OpenID Connect 인증을 지원한다. 사용자 인터페이스는 React와 Redux로 재구성돼 실시간 모니터링과 직관적인 실험 설계가 가능하다. 본 논문은 설계 원칙, 구현 세부 사항, 성능 평가 및 운영 경험을 종합적으로 제시한다.
상세 분석
MySlice v2는 기존 프로토타입이 안고 있던 단일 모놀리식 서버 구조의 병목 현상과 장애 전파 문제를 해결하기 위해 마이크로서비스 아키텍처로 전환하였다. 각 서비스는 Docker 컨테이너로 격리되어 Kubernetes 클러스터 위에서 자동 스케일링이 가능하며, 서비스 간 통신은 gRPC와 RESTful API를 혼합 사용한다. 특히, 자원 탐색·예약·배포와 같은 핵심 기능은 비동기 작업 큐(RabbitMQ)를 통해 백그라운드에서 처리함으로써 사용자 요청에 대한 응답 시간을 30 % 이상 단축시켰다.
데이터 계층은 PostgreSQL과 Redis를 조합해 영속성과 캐시를 동시에 만족한다. 테스트베드 메타데이터는 정규화된 스키마로 저장하고, 자주 조회되는 토폴로지와 슬라이스 상태는 Redis에 캐시해 10배 이상의 조회 성능 향상을 달성했다. 또한, SFA/GENI 표준 API를 래핑한 어댑터 레이어를 도입해 기존 GENI, FIRE, PlanetLab 등 다양한 연합 테스트베드와의 호환성을 유지하면서도 API 버전 관리와 오류 처리 로직을 중앙집중화했다.
인증·인가 메커니즘은 OpenID Connect와 OAuth 2.0을 기반으로 설계되어, 사용자와 프로젝트 수준의 권한을 세밀하게 제어한다. 토큰 기반 인증은 마이크로서비스 간에도 일관되게 적용되며, 토큰 갱신과 폐기 로직이 자동화돼 보안 사고 위험을 최소화한다.
프론트엔드는 React와 Redux를 활용해 상태 관리와 UI 업데이트를 효율화했으며, WebSocket을 이용한 실시간 모니터링 대시보드를 제공한다. 사용자는 슬라이스 생성, 자원 할당, 실험 실행 과정을 시각적으로 확인하고, 오류 발생 시 상세 로그와 자동 복구 옵션을 선택할 수 있다.
운영 측면에서는 CI/CD 파이프라인을 구축해 코드 변경 시 자동 테스트와 배포가 이루어지며, Prometheus와 Grafana를 통한 메트릭 수집·시각화가 시스템 가용성을 실시간으로 감시한다. 장애 발생 시 Kubernetes의 자체 복구 메커니즘과 서비스 레디니스 프로브가 자동으로 문제를 격리하고 재시작한다.
성능 평가 결과, 동시 사용자 500명 수준에서 평균 응답 시간이 200 ms 이하로 유지됐으며, 대규모 슬라이스(수천 개 자원) 생성 시에도 데이터베이스 부하가 15 % 이하로 억제되었다. 이러한 결과는 MySlice v2가 연구자들에게 안정적이고 확장 가능한 연합 테스트베드 접근성을 제공함을 입증한다.
댓글 및 학술 토론
Loading comments...
의견 남기기