MS, 애저 서비스 패브릭 정식 출시

컴퓨팅입력 :2016/04/01 09:19

[샌프란시스코(미국)=김우용 기자] 마이크로소프트(MS)가 마이크로서비스 아키텍처 기반의 애플리케이션 개발 플랫폼을 정식 출시했다.

MS는 31일(현지시간) 미국 샌프란시스코에서 열린 ‘빌드2016’ 컨퍼런스에서 애저 서비스 패브릭((Azure Service Fabric)을 정식 출시한다고 밝혔다.

애저 서비스 패브릭은 대규모(hyper-scale) 서비스 구축과 운영 시 안정성 및 확장성을 제공하는 개발 플랫폼이다. 작년 빌드2015 컨퍼런스에서 프리뷰로 공개됐다.

인프라 자원의 가용성과 애플리케이션 수요를 본질적으로 이해하고, 업데이트를 자동화하며, 대규모 인프라에서 셀프힐링과 고가용성, 서비스 지속성 등을 제공한다.

MS 애저 서비스 패브릭은 크게 2종류의 애플리케이션프로그래밍인터페이스(API)와 ‘서비스 패브릭’으로 구성된다. 마이크로서비스는 도커 컨테이너에 담긴다.

API는 ‘릴라이어블 서비스(Reliable Service) API’와 ‘릴라이어블 액터(Reliable Actor) API’로 나뉜다. 이중 릴라이어블 서비스 API는 앞선 스테이트리스 아키텍처 구성을 쉽게 해주는 ‘릴라어블 딕셔너리(상태 캐시)’와 ‘릴라이어블 큐’를 제공한다.

애저 서비스 패브릭의 한축인 ‘릴라이어블 서비스 API’는 스테이트리스 아키텍처의 데이터 플로우 구축을 편하게 해준다. 스테이트풀 방식의 모형을 플랫폼 프레임워크 수준에서 안정화시킨 것이다. 지속성 있는 상태를 유지하기 위해 릴라이어블 딕셔너리나 큐를 넣어 설계하면 된다. 개발자는 캐시 구성과 서버 적재, 네트워킹 등을 신경쓰지 않아도 된다. 고가용성이나 재해복구 같은 건 밑단의 서비스 패브릭이 알아서 자동화한다.

릴라이어블 액터 API는 컴퓨트 안에 상태와 로직을 함께 담는 ‘스테이트풀(stateful)’ 아키텍처를 구축하게 해준다. 이를 통해 서비스 디자인이 단순해지고, 레이턴시가 제거된다.

액터는 로직과 큐(캐시)를 담고, 상태도 담은 오브젝트다. 릴라이어블 서비스 API보다 높은 추상화 수준을 갖는다. 마이크로서비스의 각 클래스 하나가 독립적 앱으로서 싱글스레드로 작동한다. 순차적으로 스테이트를 엄격히 하면서, 각 액터는 비동기로 병행 작동한다. 백엔드의 서비스 패브릭은 스테이트를 엄격히 관리하는 역할을 한다. 액터 하나는 싱글스레드다. 한번에 하나의 계산만 하고, 몰리는 작업은 대기시켜 액터와 액터는 간섭하지 않으므로 상태의 충돌이 일어나지 않는다. 작업량이 집중되는 액터만 클러스터로 만들면 된다.

애저 서비스 패브릭은 칼 휴이트에 의해 주창된 액터 프로그래밍 모델을 차용했다. 액터 모델을 활용하려면 새로운 언어와 프레임워크를 익혀야 하지만, 애저 서비스 패브릭의 릴라이어블 액터 API는 C#이나 자바를 프로그래밍 언어로 활용할 수 있게 해 진입장벽을 낮췄다.

서비스 패브릭은 액터들의 복잡한 네트워킹 토폴로지를 엄격히 관리하면서 상태 문제를 해결한다. ‘멀티머신-멀티스레드’를 구현하고 HA, DR, 프로그래밍모델, 하이브리드 오퍼레이션, 고집적, 하이퍼스케일, 데이터 파티셔닝, 롤링업그레이드, 자동 롤백, 로레이턴시, 헬스모니터링, 셀프힐링, 컨테이너 오케스트레이션 및 수명주기 관리, 로드밸런싱 등의 기능을 제공한다.

각 마이크로서비스는 5개로 복제돼 여러 하드웨어에 하나씩 분산 배치된다. 한 액터가 ‘프라이머리’ 고, 나머지 4개가 HA를 위한 ‘세컨드리’다. 읽기 작업은 프라이머리에서 종결된다. 쓰기 작업은 프라이머리에 새 내용을 넣고, 달라진 내용을 다른 세컨드리에 업데이트하는 것으로 종결된다.

프라이머리 액터가 장애를 일으키면, 다른 하드웨어에 있는 세컨드리 하나를 프라이머리로 지정하고, 그 사이 새로운 세컨드리를 만들어 가용성을 보장한다.

애저 서비스 패브릭 구성도

MS는 빌드2016 둘째날 기조연설에서 일리아드게임스의 다중접속게임 ’에이지오브어센트’를 애저 서비스 패브릭 활용사례로 소개했다.

에이지오브어센트는 ASP닷넷코어와 애저 서비스 패브릭을 활용해 개발됐다. 콘솔, 데스크톱, 태블릿, 모바일, 웹 등의 환경에서 모두 이용할 수 있다. 애저 서비스 패브릭을 활용해 대규모 동시접속을 처리하면서 중단없는 애플리케이션 관리가 가능하다. 5만명 이상의 사용자가 동시에 접속해 한 우주 공간에서 전투를 벌인다. 초당 2억6천700만 네트워크 애플리케이션 메시지를 처리할 수 있다. 한 게임 공간이 설계상 수백만명의 사용자를 수용한다.

시연자로 나선 스콧 한셀만은 에이지오브어센트 게임을 구동한 상태를 유지하면서 코드를 수정하고, 에러를 교정하는 모습을 보였다.

일리아드게임스의 에이지오브어센트 게임 화면

MS는 애저 외에도 아마존웹서비스, VM웨어 같은 타 클라우드 환경에서 서비스 패브릭을 사용할 수 있다고 밝혔다. 서비스 패브릭 런타임을 통해 애저에 구축된 서비스 패브릭 기반 애플리케이션을 AWS나 온프레미스 데이터센터의 윈도서버나 리눅스 환경에서 그대로 사용할 수 있다.

관련기사

윈도서버용 서비스 패브릭, 리눅스와 자바 API용 서비스 패브릭 등이 프리뷰로 공개됐다 .또한 올해말 리눅스용 서비스 페브릭 프로그래밍 프레임워크를 오픈소스로 공개할 계획이다.

MS는 프로그래밍 모델로 액터 모델을 사용했지만, 향후 다양한 프로그래밍 모델을 서비스 패브릭에서 쓸 수 있게 될 것이라고 설명했다.

아마존웹서비스 데이터센터에서 작동중인 서비스 패브릭