디지털 시대, 왜 마이크로서비스인가

컴퓨팅입력 :2017/01/27 13:49    수정: 2017/01/27 13:54

“종전의 애플리케이션은 소프트웨어에 변경 요구사항 생겼을 때 모든 것을 바꿔야 했다. 관련된 모든 당사자가 다 동의해야 변경을 할 수 있었다. 동의가 다 이뤄져도 오랜 시간 소요되는 철저하고 상세한 테스트가 필요하다. 생산성 제약이 가해질 수밖에 없는 것이다. 마이크로서비스는 이런 애플리케이션 아키텍처 이슈를 해결하기 위한 접근법이다. 마이크로서비스는 기업을 초가치 창출로 이끄는 조건이다.”

벤자민 헨셸 레드햇 아태지역 앱개발솔루션부문 이사는 최근 기자간담회에서 새로운 애플리케이션 아키텍처로 뜬 ‘마이크로서비스’의 등장이유를 이같이 설명했다.

그는 “마이크로서비스는 비즈니스 민첩성에 관한 문제”라며 “어떻게 지속적 딜리버리, 배포, 개선 등을 할 것인가에 대한 방법으로서, 기업과 정부 조직을 움직이는 소프트웨어에 좀 더 민첩한 개발, 배포, 개선을 의미한다”고 말했다.

벤자민 헨셸 레드햇 아태지역 앱개발솔루션부문 이사

그는 현재 전세계적으로 마이크로서비스에 대한 기대치가 최고조에 이른 상황이라고 전했다.

그는 “마이크로서비스에 대한 흥미가 최고조에 달했지만, 쉽지 않은 단계”라며 “현 지점을 지나면 환상이 깨지는 깊은 골짜기를 만나게 될 것이고, 다양한 조직이 마이크로서비스를 시도하다가 제대로 작동되는데 많은 고충을 겪게 될 것”이라고 전망했다.

그는 “그러나 일단 직면한 문제를 극복하면, 그 다음으로 초가치 생성이란 단계로 접어들 것”이라며 “소프트웨어가 디지털 변혁, 파괴의 근본적 역할을 하고 있는 시기에 성공적으로 마이크로서비스를 실행하는 기업이 초가치 생성을 통해 매우 큰 성공을 거두고 있다”고 덧붙였다.

그는 마이크로서비스를 성공적으로 운영하기 위한 비결로 데브옵스를 먼저 꼽았다.

그는 “지난 5년간 2만5천곳 기업을 대상으로 조사 한 결과, 데브옵스를 마이크로서비스와 함께 했을 때 현업 코드의 장애 복구 소요시간이 24배 단축되고, 코드 변경 실패율도 3배 감소했으며, 리드 타임은 2천555배 단축됐다”며 “데브옵스가 마이크로서비스와 긴밀하게 연결돼 있고, 성공을 위해서 반드시 필요한 요소란 걸 알려준다”고 강조했다.

그는 현재 한국에서 많이 사용되는 ‘워터폴’ 방식의 개발방법이 마이크로서비스 아키텍처에 적합하지 않다고 지적했다.

그는 “데브옵스는 마이크로서비스를 위한 근본적인 전제조건으로, 반드시 갖춰야 한다”며 “오픈시프트 같은 근본적 툴을 쓰면서 개발과 운영 담당자가 힘을 합쳐 다양한 코드를 개발하고 배포, 재배포 하는게 매우 신속해질 수 있다”고 설명했다.

오늘날 앱 세계는 치열한 생존경쟁 속에 있다. 빠르게 변화하지 못하면 도태된다.

그는 “오늘날 최신 앱은 즉시성과 널리 스며드는 성질, 인텔리전스 등을 갖춰야 한다”며 “앱이 빠른 반응을 보이지 않고, 일하는 방식과 동떨어진다면, 즉시 앱을 삭제하고 대안을 찾을 수 있는 ‘즉각적 경쟁’이 벌어지고 있다”고 말했다.

이어 “애플리케이션을 마이크로서비스로 나누고, 새롭고 풍부한 시스템 구축을 위해 앱과 데이터를 더 나은 방식으로 통합해내야 한다”며 “또한, 다른 데서 더 소비되고 개발에 사용되도록 API 형태로 제공할 수 있어야 한다”고 설명했다.

그는 API와 마이크로서비스를 통해 큰 성공을 거둔 예로 페이팔을 들었다. 페이팔은 이베이의 전자상거래를 위해 만들어진 작은 서비스였지만, API 접근을 통해 전세계로 퍼지며 지불결제 시장의 판도를 바꿨다.

그는 성공적 마이크로서비스를 위한 또다른 요소로 리눅스 컨테이너를 들었다. 둘 사이를 천생연분이라고도 표현했다.

그는 “마이크로서비스는 안에 아주 작은 비즈니스 로직을 담기 때문에, 실행에 OS의 아주 일부분만 필요로 한다”며 “컨테이너 기술은 전체 하드웨어와 OS를 필요로 하지 않고, 코드 개발부터 배포까지 과정을 훨씬 더 민첩하게 해준다”고 말했다.

다음으로 언급된 요소는 오케스트레이션 엔진이다. 마이크로서비스를 확장성과 탄력성을 갖추도록 해야 하는데, 워크로드에 따라 매끄럽게 확대 축소 가능해야 한다. 이같은 확장성 확보를 위해 오케스트레이션 엔진이 필요해진다.

그는 “거대한 기업이 오전 9시면 수십만명 직원이 사무실에서 일할 준비를 하게 된다”며 “모든 직원이 한번에 회사 시스템에 로그인을 시도하고, 시스템 중 로그인 기능만 매우 많이 사용된다”고 예를 들었다.

이어 “이럴 때 모노리틱 시스템은 더 많은 하드웨어를 붙이고, 전체 시스템의 프로비저닝을 해야 하지만, 마이크로서비스의 경우 로그인 서비스 코드를 컨테이너로 자동 확장하게 하면 된다”며 “이런 확장을 위한 최고의 컨테이너 오케스트레이션 엔진은 쿠버네테스”라고 강조했다.

관련기사

그는 “마이크로서비스를 운영하는 기업은 데브옵스와 애자일 원칙에 따라서 IT부서와 현업부서까지 특정분야 전문성 대신 비즈니스 역량을 중심으로 재편된다”며 “각 팀이 서비스를 하나의 제품으로 간주하고, 제품을 책임지며 운영해 비즈니스 결과를 잘 지원하게 응당한 책임을 다하는 것”이라고 말했다.

그는 “또한, 실패를 감안하고 설계해야 한다”며 “빠르게 시행착오를 겪어 점차 완성시켜 가는, 진화하는 마이크로서비스를 설계해야 한다”고 덧붙였다.