발 전문잡지 마이크로소프트웨어의 최신호는 블록체인 기술과 산업, 보안 그리고 연결된 세상에 대한 이야기(Chain Bigbang, 체인 빅뱅)를 담았습니다. 스팀잇, 리모트 워크, 오픈소스, 블록체인 보안 등 마소 392호의 주요 기사들을 IT조선 독자에게도 소개합니다. [편집자주]

최근 신속한 배포, 서비스 간 독립성 등의 마이크로서비스 아키텍처의 장점들만 많이 부각된다. 하지만 서비스가 분할돼 생길 수 있는 전체 시스템의 가용성 저하, 성능 저하 등을 해결할 수 있는 설계 전술들에 대해 고려가 돼야 제대로 된 아키텍처 수립/설계가 가능하다.

이런 측면에서 넷플릭스(Netflix)가 마이크로서비스 아키텍처를 7년간에 걸쳐 자사의 서비스에 적용해 가며 만들어낸 여러 OSS(Open Source Software)를 살펴보는 것은 다른 프로젝트를 마이크로서비스 아키텍처 기반으로 수행할 때 아키텍처 분석과 설계/수립의 틈을 메울 수 있는 좋은 레퍼런스 아키텍처가 될 수 있다.

넷플릭스의 마이크로서비스 구현을 지원하기 위한 오픈소스 소프트웨어 중 하나인 히스트릭스(Hystrix)에 대한 내용을 찾다 보면 서킷 브레이커(Circuit Breaker) 패턴을 구현한 라이브러리라는 내용이 나온다.

서킷 브레이커를 영어 사전에서 찾아보면 '회로 차단기'라고 나오며, 이는 집집마다 설치된 누전 차단기와 같은 의미로 생각할 수 있다. 회로 차단기를 검색해 보면 위키백과에 '회로 차단기는 전기 회로에서 과부하가 걸리거나 단락으로 인한 피해를 막기 위해 자동으로 회로를 정지시키는 장치다. 퓨즈와 다른 점은, 차단기는 어느 정도 시각이 지난 뒤, 원래의 기능이 동작하도록 복귀된다'고 나온다.

서킷 브레이커 패턴은 개념적으로 전기 시스템에서의 회로 차단기/누전 차단기와 같다. 일정 수준(임계치) 이상의 전기를 소모하게 되면 누전 차단기가 작동하는 것처럼 호출하고자 하는 다른 서비스에 문제가 지속해서 생길 경우 해당 문제가 설정한 임계치 기준에 다다르면 서킷(Circuit, 회로)이 열려 차단기가 작동하게 된다.

스프링 클라우드와 넷플릭스 OSS를 이용한 마이크로서비스 아키텍처 구성. / 마이크로소프트웨어 392호 발췌
스프링 클라우드와 넷플릭스 OSS를 이용한 마이크로서비스 아키텍처 구성. / 마이크로소프트웨어 392호 발췌
스프링 클라우드 넷플릭스(Spring Cloud Netflix)는 넷플릭스에서 마이크로서비스 아키텍처를 자사의 서비스에 적용하기 위해 만들어낸 서킷 브레이커(Circuit Breaker - Hystrix), 클라이언트 사이드 로드 밸런싱(Client Side Load Balancing - Ribbon), 서비스 디스커버리(Service Discovery - Eureka), 인텔리전트 라우팅(Intelligent Routing - Zuul) 등의 넷플릭스 OSS에 대한 통합을 지원한다.

서비스 지향 아키텍처(Service Oriented Architecture, SOA)는 이미 존재하던 기능들을 서비스 관점에서 어떻게 하면 잘 재사용할 수 있는가의 관점에서 나온 것이었다면, 마이크로서비스 아키텍처는 개발될 기능들을 어떻게 만들면 에러 상황에 탄력성을 가지고 잘 대처하며 빠른 배포가 가능하고 서비스 부하에 능동적으로 잘 대처하는 형태로 만들 수 있는 지의 관점에서 나왔다. 넷플릭스 OSS는 이런 고민의 해결책이자 결과물 중 하나다.

마이크로서비스 아키텍처는 기존 모노리틱 애플리케이션을 클라우드로 마이그레이션하며 최대의 서비스 가용성을 확보하기 위해 만들어진 아키텍처이며 넷플릭스 OSS가 효과를 잘 설명해주고 있다.

우영식 롯데정보통신 정보기술연구소 수석연구원의 넷플릭스 OSS에 대한 자세한 내용은 '마이크로소프트웨어 392호(https://www.imaso.co.kr/archives/2518)'에서 확인할 수 있다.