MS, '헤일로4' 개발 프레임워크 오픈소스로 공개

일반입력 :2014/12/17 17:36

마이크로소프트(MS)가 인기콘솔게임 '헤일로4' 개발에 사용했던 클라우드 개발 프레임워크를 오픈소스로 공개한다. 개발자는 이 프레임워크를 사용해 클라우드를 위한 분산 애플리케이션 개발을 쉽게 할 수 있다.

15일(현지시간) MS는 MSDN 블로그를 통해 헤일로4 개발에 사용했던 분산 클라우드 프로그래밍 모델 ‘올리언스(Orleans)’를 내년초 오픈소스로 공개하겠다고 밝혔다.

올리언스는 MS 익스트림컴퓨팅그룹이 만들어 헤일로4 개발팀에 제공한 프레임워크다. 올리언스팀에 따르면, MS는 3년여 동안 헤일로리치와 헤일로4 백엔드 서비스 현업 시스템에 올리언스를 사용해왔다.

4월 열린 MS 연례개발자컨퍼런스 '빌드2014'에서 MS는 올리언스 프레임워크 퍼블릭 프리뷰를 공개했다. 이어 헤일러4 개발팀은 애저 클라우드에서 게임 서비스를 제공하기 위해 올리언스를 사용하는 방법을 소개했다.(☞관련동영상보기)

MS는 올리언스 소스코드를 내년초 MIT 라이선스 기반으로 공개할 계획이다. 현재는 퍼블릭프리뷰 샘플 코드를 볼 수 있다.

MS 헤일로4팀에 의하면 헤일로4로 멀티 플레이를 즐기는 사용자는 광범위하다. 그러다보니 동시에 많은 사용자가 한 인프라에 집중된다. 이런 상황에서 원활한 게임 경험을 지원하려면 분산 아키텍처가 필요하고, 인프라가 확장성을 가지면서 높은 성능을 유지해야 한다. 많은 컴퓨트 노드를 안정적으로 운영하는 것도 필수다. 헤일롬4팀은 올리언스로 이를 해결했다고 설명했다.

올리언스는 클라우드 서비스를 구축하기 위한 프로그래밍 모델과 런타임으로 이뤄져 있다. 액터 모델 기반 클라우드 프로그래밍 모델로 개발자가 고수준의 분산형 컴퓨팅 환경을 쉽게 활용할 수 있게 해준다.

애플리케이션 개발자가 확장성 있는 백엔드 시스템에 대해 깊숙하게 이해하기는 쉽지 않다. 올리언스는 애저 클라우드 환경에서 애플리케이션 개발에 필요한 백엔드 인프라를 서비스로 쓸 수 있게 해준다.

액터모델이란 1973년 칼 휴이트에 의해 제안된 프로그래밍 개념으로 동시성 프로그램과 병렬처리 프로그램 개발에 사용된다. 액터는 ‘스레드’나 ‘객체’란 개념과 구별되는 추상단위다.

액터가 차지하는 메모리 공간에는 어느 다른 쓰레드 혹은 액터가 접근할 수 없다. 액터 내부에서 일어나는 일은 무엇과도 공유되지 않다는 얘기다. 공유란 속성을 제거함으로써 멀티스레드와 관련된 문제의 대부분을 제거했다는 설명이다.

공유되지 않기 때문에 액터 내부에서 작업을 수행할 때는 ‘락(lock)’이나 ‘싱크로나이짓(synchronized)’와 같은 부자연스러운 키워드가 필요 없다. (☞참고기사)

올리언스에서 액터를 지칭하는 말은 ‘그레인(Grain)’이다. 그레인이 하나의 작업을 수행한다.

그리고 여러 그레인이 모여 ‘사일로(Silo)’란 컨테이너를 이룬다. 사일로는 런타임 실행을 위한 컨테이너다. 액티베이션은 단일 스레드가 기본이다. 스테이트를 공유하지 않으며, 멀티태스킹으로 작업이 이뤄진다. 런타임이 메소드 실행 스케줄을 관리한다.

헤일로4팀은 게임, 채팅, 인증 등의 작업을 하나의 그레인으로 만들고, 이들을 묶어 컨테이너로 만들었다. 여기에 애저 HD인사이트와 시각화툴을 적용, 게임서비스 상황을 실시간으로 분석할 수 있는 환경을 구축했다.

올리언스팀은 블로그를 통해 “빌드2014에서 올리언스 퍼블릭프리뷰를 공개한 이래 커뮤니티에서 긍정적 피드백을 많이 받았다”며 “이번달 리프레시 릴리스에서 보고된 이슈 다수를 수정하고 제안을 수용했다”고 밝혔다.

관련기사

이어 “이제 다음 단계로 오픈소스 올리언스 요청에 응하기로 결정했고, 이미 개시할 준비작업을 마쳤으며, 내년초 공개할 것으로 기대한다”고 덧붙였다.

니클라스 구스타프슨 MS 클라우드플랫폼툴링팀 프린시펄프로그램매니저는 “분산 시스템에 대한 경험을 갖지 않은 프로그래머조차 개발 생산성을 확보할 수 있으며, 프로그래머가 특별한 노력을 하지 않아도 기본적으로 투명한 확장성을 획득할 수 있다”고 올리언스의 이점을 설명했다.