상상해 보세요. 여러분이 Netflix 같은 거대한 영화 스트리밍 서비스를 운영한다고 가정해 봅시다. 이 서비스는 전 세계의 수많은 서버 (컴퓨터) 에 영화를 저장하고, 사용자에게 실시간으로 보여줍니다.
이때 두 가지 중요한 규칙 (목표) 이 있습니다.
화질과 속도 (SLO): 사용자가 버퍼링 없이 24 초당 30 프레임 (FPS) 으로 영화를 부드럽게 봐야 합니다.
친환경 (탄소 배출): 서버를 돌리는 전기 사용량과 이로 인한 이산화탄소 배출을 줄여야 합니다.
문제점: 이 두 가지는 서로 충돌합니다. 화질을 최고로 유지하려면 서버를 쉴 새 없이 가동해야 해서 전기와 탄소 배출이 늘어납니다. 반대로 전기를 아끼려면 화질이 떨어질 수 있습니다.
또한, 어려운 상황이 하나 더 있습니다.
서비스 개발자 (Netflix): "내 서비스는 어떤지, 어떻게 작동하는지"는 비밀로 하고 싶습니다. (경쟁사에게 알려주기 싫으니까요.)
인프라 제공자 (AWS 등): "서버를 관리하고 전기를 아끼는 방법"을 가장 잘 아는 사람입니다. 하지만 서비스 개발자의 비밀을 알지 못하면 어떻게 최적의 설정을 바꿀지 모릅니다.
이처럼 **"비밀을 지키면서도, 환경까지 생각하며 서비스를 최적화하는 방법"**이 필요했습니다.
💡 해결책: "CASCA (카스카)" 플랫폼
저자들은 CASCA라는 새로운 플랫폼을 만들었습니다. 이는 마치 "서비스와 인프라 제공자 사이를 중재하는 똑똑한 번역가이자 관리자" 역할을 합니다.
1. CASCA 의 핵심 역할
번역가 (API): 개발자가 "화질을 24~30 프레임으로 맞춰줘"라고 말하면, CASCA 는 이를 인프라 제공자가 이해할 수 있는 "스레드 수를 8 개로 늘려줘"라는 기계적 명령으로 바꿔줍니다. 하지만 어떤 파일이, 어떤 코드로 이루어진지는 알려주지 않습니다. (개인정보 보호)
환경 감시자 (EMMA): "지금 이 지역의 전기는 태양광이 많이 쓰여서 친환경일까, 아니면 석탄화력이라 오염이 심할까?"를 실시간으로 알려줍니다.
유연한 관리자 (마이크로서비스): CASCA 는 작은 부품들 (마이크로서비스) 로 이루어져 있어, 필요 없는 부분은 떼어내고 새로운 기능을 쉽게 추가할 수 있습니다.
2. 실험: 세 가지 "관리자"의 대결
연구진은 이 플랫폼 위에서 세 가지 다른 방식의 '관리자 (의사결정 시스템)'를 테스트했습니다.
탐욕스러운 관리자 (GDS): "화질이 떨어지면 무조건 설정을 올리고, 너무 높으면 내린다"는 단순한 규칙을 따릅니다. (화질은 잘 지키지만, 탄소 배출까지 고려하지는 못함)
학습하는 관리자 (RLDS - AI): 과거 데이터를 보고 "지금 전기가 비싸고 오염이 심할 때는 화질을 살짝 낮추고, 전기가 싸고 깨끗할 때는 화질을 높인다"는 최적의 전략을 스스로 배웁니다.
3. 실험 결과
성공: AI 관리자 (RLDS) 가 가장 똑똑하게 작동했습니다. 화질 목표 (SLO) 를 지키면서도 탄소 배출을 가장 적게 줄였습니다.
비밀 유지: 개발자의 서비스 세부 사항 (코드 등) 을 숨겨도 (Obscured), 관리자 (인프라 제공자) 는 서비스를 완벽하게 통제할 수 있었습니다. 즉, 비밀은 지키면서 효율은 극대화했습니다.
속도: CASCA 를 거치면서 약 70~80ms(0.07 초) 정도의 지연이 생겼는데, 이는 인간이 느끼기엔 거의 없는 수준이라 문제가 되지 않았습니다.
유연성: 기존 방식은 설정을 바꾸려면 코드를 고쳐서 다시 프로그램을 만들어야 했지만, CASCA 는 설정 파일만 바꾸면 바로 적용되어 20 배 이상 빨랐습니다.
🌟 결론: 왜 이 연구가 중요할까요?
이 연구는 **"지속 가능한 미래"**와 **"디지털 서비스의 비밀"**을 동시에 잡을 수 있는 길을 제시합니다.
기업에게: 경쟁사에게 내 서비스 구조를 공개하지 않아도, 클라우드 업체가 전기를 아끼며 서비스를 최적화해 줍니다.
환경에게: AI 가 실시간으로 전기의 '친환경 정도'를 보고 전기를 아껴주므로, 탄소 배출을 줄일 수 있습니다.
사용자에게: 버퍼링 없이, 더 친환경적인 방식으로 영화를 즐길 수 있습니다.
간단히 말해, **CASCA 는 "비밀은 지키고, 환경은 살피며, 서비스를 똑똑하게 운영하는 디지털 중재자"**입니다.
1. 문제 정의 (Problem)
현대 애플리케이션은 재사용성, 분산, 상호 운용성을 위해 **마이크로서비스 아키텍처 (MSA)**를 기반으로 개발되고 있으며, 이러한 서비스들은 컴퓨팅 커티넘 (Computing Continuum, CC) 환경에 배포됩니다. 그러나 CC 환경에서 서비스 수준 목표 (SLO) 를 충족시키는 것은 다음과 같은 복잡한 도전 과제를 안고 있습니다.
성능과 지속 가능성의 트레이드오프: 서비스의 성능 (예: 응답 시간, 처리량) 과 탄소 배출량 (지속 가능성) 과 같은 SLO 는 종종 상충됩니다. 예를 들어, GPU 가속을 켜면 처리량은 증가하지만 에너지 소비와 탄소 배출량은 늘어납니다.
프라이버시와 관측 가능성의 충돌: SLO 를 최적화하기 위한 지능형 의사결정 시스템 (Decision Systems) 을 구축하려면 서비스의 내부 상태와 메트릭에 대한 깊은 이해가 필요합니다. 그러나 인프라 제공자 (CC 제공자) 는 서비스 개발자의 프라이버시를 보호해야 하므로 (예: Netflix 가 AWS 에서 호스팅되지만 아마존 프라임 비디오와 경쟁 관계임), 서비스의 구체적인 의미 (Semantics) 를 알 수 없어야 합니다.
기존 솔루션의 한계: 기존 의사결정 시스템들은 특정 서비스에 밀접하게 결합 (Tightly Coupled) 되어 있어 MSA 의 원칙인 느슨한 결합과 재사용성을 저해하며, 다양한 의사결정 기법 (전통적 최적화, 휴리스틱, AI 등) 을 통합하기 어렵습니다.
2. 방법론 (Methodology)
이 논문은 이러한 문제를 해결하기 위해 **CASCA (Carbon-Aware SLO and Control plAtform)**라는 오픈 소스 마이크로서비스 기반 플랫폼을 제안합니다.
아키텍처 설계:
MSA 원칙 준수: 모든 구성 요소가 느슨하게 결합된 미세한 서비스로 설계되어 재사용, 배포, 확장이 용이합니다.
프라이버시 보호 메커니즘: 서비스 개발자와 인프라 제공자 간의 데이터 격리를 위해 서비스 API를 도입합니다. 개발자는 SLO 와 서비스 제어에 대한 의미론적 정보 (Semantic) 를 제거하거나 추상화하여 제공하므로, 인프라 제공자는 서비스의 구체적인 내용 없이도 SLO 충족 여부를 모니터링하고 재구성을 수행할 수 있습니다.
EMMA (Energy Mix Manager): 탄소 강도 (Carbon Intensity) 데이터를 통합하기 위한 전용 마이크로서비스입니다. 외부 데이터 소스 (정부 데이터, 예측 정보 등) 를 통해 실시간 탄소 배출량을 제공하여 탄소 인식 (Carbon-Awareness) SLO 를 지원합니다.
핵심 구성 요소:
Telemetry 모듈: MQTT 와 같은 메시지 지향 미들웨어를 통해 다양한 소스 (클라이언트, 하드웨어, 외부 데이터) 에서 SLO 관련 데이터를 수집하고, Telemetry Hook 을 통해 데이터베이스 (InfluxDB 등) 에 저장합니다.
Service API:SLO 컨트롤러와 서비스 컨트롤러로 구성됩니다.
SLO 컨트롤러: 선언적 설정 파일 (JSON 등) 을 통해 SLO 정의와 데이터 소스 매핑을 관리합니다.
서비스 컨트롤러: 서비스 재구성을 위한 인터페이스를 추상화하여 제공하며, 개발자가 원하는 설정 범위와 접근 권한을 제어합니다.
의사결정 시스템 통합: CASCA 는 특정 기술이나 AI 기법을 강제하지 않습니다. Bash, Rust, Python 등 다양한 언어로 구현된 의사결정 에이전트가 REST API 를 통해 SLO 데이터를 조회하고 서비스 설정을 변경할 수 있습니다.
3. 주요 기여 (Key Contributions)
CASCA 플랫폼 제안: SLO 충족 및 서비스 관리를 위한 재사용성, 확장성, 분산성을 갖춘 MSA 기반 플랫폼을 제안했습니다.
프라이버시 보호 API 표준: 서비스 개발자의 프라이버시를 보호하면서도 인프라 제공자가 SLO 를 관리할 수 있도록 하는 개방형 표준 (OpenAPI 준수) API 를 정의했습니다.
EMMA 마이크로서비스: 탄소 강도 데이터를 통합 관리하기 위한 표준 인터페이스를 제공하는 마이크로서비스를 설계 및 구현했습니다.
실제 구현 및 오픈소스화: 미디어 스트리밍 서비스 (Jellyfin 기반) 에 CASCA 를 적용하여 구현했으며, 모든 소스 코드와 컨테이너 설정을 오픈소스로 공개하여 재현성을 보장했습니다.
실제 테스트베드 평가: Bash, Rust, Python 으로 구현된 세 가지 다른 의사결정 시스템 (무작위, 탐욕적, 강화학습) 을 사용하여 CASCA 의 실용성과 성능을 검증했습니다.
4. 평가 결과 (Results)
실제 컴퓨팅 커티넘 테스트베드 (Raspberry Pi 5, 가상 머신, 노트북 등) 에서 미디어 스트리밍 서비스를 대상으로 한 평가 결과는 다음과 같습니다.
성능 및 SLO 충족률:
RLDS (강화학습 기반): 탄소 배출량을 고려하여 학습된 에이전트로, SLO 충족률 (85.2%) 과 평균 프레임 속도 (24.725 FPS) 에서 가장 높은 성능을 보였으며, 탄소 배출량도 가장 효율적이었습니다.
GDS (탐욕적 휴리스틱): SLO 충족률 (90.6%) 은 가장 높았으나, 탄소 효율성은 RLDS 보다 낮았습니다.
RDS (무작위): 성능이 매우 낮았으며 SLO 를 거의 충족하지 못했습니다.
프라이버시 보호 효과:
SLO 와 설정 파라미터의 이름을 가린 (Obscured) 환경에서도 의사결정 시스템의 성능이 공개된 환경과 유사하게 유지되었습니다. 이는 인프라 제공자가 서비스의 구체적인 의미 없이도 효과적으로 서비스를 관리할 수 있음을 입증했습니다.
오버헤드 (Overhead):
CASCA 를 통한 설정 변경 및 조회 시 발생하는 지연 시간은 약 70~80ms 수준으로, 의사결정 시스템의 동작 주기 (초 단위) 에 비해 수용 가능한 수준으로 평가되었습니다.
재구성 유연성:
선언적 (Declarative) 접근 방식을 채택한 CASCA 는 설정 파일 수정만으로 SLO 를 추가/삭제/변경할 수 있어, 기존 명령형 (Imperative) 방식 (소스 코드 수정 및 재빌드 필요) 에 비해 재구성 시간이 약 20 배 이상 단축되었습니다 (평균 2.76 초 vs 56.47 초).
5. 의의 (Significance)
이 연구는 지속 가능성 (탄소 배출 감소) 과 서비스 품질 (SLO) 을 동시에 달성하면서도 서비스 개발자의 프라이버시를 보호하는 새로운 패러다임을 제시합니다.
지속 가능한 컴퓨팅: 단순한 에너지 소비 감소를 넘어, 탄소 강도를 고려한 지능형 의사결정을 통해 탄소 배출을 최적화할 수 있는 플랫폼을 제공합니다.
MSA 원칙의 확장: 기존에 밀접하게 결합되어 있던 제어 시스템과 서비스를 분리하여, 다양한 AI 및 최적화 기법을 마이크로서비스 아키텍처에 자연스럽게 통합할 수 있는 기반을 마련했습니다.
실용적 적용 가능성: 오픈소스 플랫폼과 실제 테스트베드 평가를 통해 이론적 모델을 넘어 실제 산업 환경 (미디어 스트리밍 등) 에 적용 가능한 솔루션임을 입증했습니다.
결론적으로, CASCA 는 클라우드 및 엣지 컴퓨팅 환경에서 에너지 효율성과 서비스 품질을 균형 있게 관리하면서도 데이터 프라이버시를 보장하는 필수적인 인프라로 자리 잡을 수 있는 잠재력을 가지고 있습니다.