마이크로서비스와 API 구축의 3대 원칙

컴퓨팅입력 :2016/10/24 16:09

기업의 구성원은 언제나 비즈니스 성과를 높이기 위한 방안을 고민한다. 기업 내 IT담당자도 비즈니스 성장을 위한 솔루션을 고민한다. 그리고 IT가 전 산업의 핵심 전력으로 자리매김하면서 IT 기술이 비즈니스 성공을 담보하게 됐다.

이런 흐름에 따라 최근 수없이 거론되는 단어가 ‘디지털 트랜스포메이션’이다. 비IT기업이 IT 기술을 사업의 중심에 두려는 움직임 정도로 정의할 수 있다.

IT의 소프트웨어 아키텍처는 수년 단위로 유행을 바꾼다. 가장 떠들썩했던 유행은 서비스지향아키텍처(SOA)다. SOA는 2000년대 중반 IT업계를 한바탕 헤집어놨다가 조용히 사라졌다. 모노리틱(monolithic)이라 불리는 거대한 단일 시스템 아키텍처는 굳건히 기업 IT의 주류를 유지하고 있다.

SOA의 아이디어는 완전히 죽지 않았다. 하드웨어에 종속되지 않고 비즈니스의 수요에 따라 유연하고 빠르게 자원을 확보하자는 아이디어는 웹서비스의 세계에서 살아남았고, 마이크로서비스 아키텍처로 이어졌다.

마이크로서비스 아키텍처란 애플리케이션 구성요소를 특정목적별로 쪼갠 뒤 독립적으로 작동하도록 극소형 서비스로 만들고, 여러 극소 서비스들을 조합해 완성된 애플리케이션으로 조립하는 개발 형태를 말한다. 과거의 SOA보다 추상화 수준을 한차원 더 세분화한 것으로 볼 수 있다.

마이크로서비스 환경에서 개발조직은 각 서비스들을 전담해 지속적 통합과 지속적 개발(CI/CD)을 하게 된다. 솔루션과 IT서비스 개발속도를 높이고, 유지보수에 투입되는 공수를 줄일 수 있어 인기를 모으고 있다.

마이크 아문센 CA테크놀로지스 API 아카데미 API 아키텍처 담당 이사

마이크로서비스와 API 구루 중 하나인 마이크 아문센 CA테크놀로지스 API 아카데미 API 아키텍처 담당 이사는 최근 기자간담회에서 “서비스를 목적에 맞게 쪼개 개발하는 방식을 통해 더 빠르고, 더 신속하게 비즈니스에 대응하기 위해 마이크로서비스 아키텍처, API 등의 중요성이 높아졌다”며 “한국 기업의 4분의 3도 API를 활용해 디지털 혁신에 나서고 있다”고 밝혔다.

CA 의뢰를 받아 IT 산업 분석기관 프리폼 다이나믹스가 조사한 보고서에 따르면, 한국 기업은 ▲모바일 앱 개발(71%) ▲백오피스 시스템 통합(69%) ▲웹 애플리케이션 개발(68%) ▲외부 개발자의 접근 허용(62%) ▲외부 서비스 통합(56%)을 목적으로 API 를 도입했다.

전세계 기업 API 활용 현황 및 전망에 대한 이 조사는 전세계 16개국 9개 산업 1442명의 IT 및 비즈니스 고위 임원을 대상으로 진행했다. 아태지역은 한국, 일본, 중국을 비롯한 7개 국가가 조사 대상에 포함됐다.

한국 기업은 기술 측면보다는 비즈니스와 직결된 이유로 API를 도입 및 활용했다. 한국 기업은 ▲수익을 높여주는 새로운 앱의 신속한 개발(79%) ▲IT 관련 비용 절감ㆍ위험성 감소(78%) ▲데이터를 활용한 수익 창출(78%)을 주요 API 활용 동인으로 꼽았다.

사실 마이크로서비스와 API를 비IT기업이 손쉽게 구축하고 다루기 어려운 일이다. 특히 대형 시스템을 수많은 서비스로 쪼개는 만큼 관리 포인트가 증가하고, 각 서비스를 연결하는 통신을 제어하면서, 모든 서비스들이 서로 충돌하지 않고 원활히 돌아가도록 하는 안정화 작업이 요구된다. 데이터 관련 아키텍처도 함께 바뀌므로 고민해야 할 부분이 더욱 늘어난다.

마이크 아문센 이사는 이에 대해 “마이크로서비스는 고속도로를 내는 것이고 API는 도로를 달리는 자동차로 볼수 있다”며 “기업은 누가 도로를 쓸지 모르고 마이크로서비스에 대규모 투자를 하게 된다”고 말했다.

그는 “이는 API를 위해 인프라를 만들어야 한다는 것으로 불확실한 미래를 생각하면서 도로를 만들어야 한다는 것”이라며 “전세계에서 마이크로서비스와 API에서 앞선 기업들, 넷플릭스 같은 회사의 사례에서 마이크로서비스와 API 구축의 3대 원칙을 뽑아낼 수 있다”고 설명했다.

우선 새로운 API를 만들 때 비용을 적게 들여 안전하게 만든다는 것이다. 적은 코드로 서비스를 구현하라는 것으로, AWS 람다나 마이크로소프트 애저 펑션 같은 서비스로 쉽게 API를 만들어 테스트하고 시도하라고 그는 조언했다.

다음은 만든 API를 찾기 쉽게 정리하라는 것이다. 검색 가능한 서비스 카탈로그를 만들어, 누구든 쉽게 API를 찾을 수 있어야 한다고 설명했다.

마지막은 보안이다. 정책 혹은 룰 기반의 시스템을 구축해 보안을 확보하라는 것으로, 마이크로서비스를 도입한 기업들은 정책 서비스 부서에서 보안을 담당하고 있다.

그는 “기업은 마이크로서비스와 API를 위해 언제까지 끝을 간다는 게 아니라 단계별로 자신들의 상황에 맞춰 차근차근 밟아나가야 한다”며 “어떤 여정의 의사결정을 내릴 시점에서 마이크로서비스 모델과 API는 한번에 동시에 내리는 지 않고, 그때 그때 상황에 맞게 내릴 수 있게 한다는 장점을 갖고 있다”고 강조했다.

그는 “흔히 범하는 실수 중 하나가 모든 걸 한번에 하려 한다는 것으로, 오랜 기간에 걸쳐 작은 단계별로 하나씩 밟아나가는 게 중요하다”며 “넷플릭스의 경우 8년전 클라우드를 마이크로서비스에 쓰기 시작했는데, 올해야 비로소 마지막 자체 하드웨어의 전원을 껐을 정도”라고 덧붙였다.

그는 데이터 관련 아키텍처에 대해, 서비스 인터페이스와 데이터 모델을 별도로 가져가는 게 좋다고 조언했다. 데이터베이스에 어떤 변경을 줘도 서비스에 영향을 미치지 않게 하기 위해서라고 설명했다.

그는 “데이터베이스를 위한 API를 따로 만드는 건 좋은 결과가 안 나온다”며 “서비스를 API를 만들고, 데이터베이스는 별도 구축하는게 성공적인 마이크로서비스 기업에서 나타난다”고 밝혔다.

그는 이어 “데이터 모델 문제는 지난 30년간 계속 존재해왔던 문제이며, 매번 같은 문제가 반복적으로 나타났다”며 “마이크로서비스의 경우도 마법 같은 정답이 있다 말하긴 어렵다”고 덧붙였다.

프리폼 다이나믹스 조사 결과, 아직까지 많은 기업이 API 필요성을 뒷받침할 근거 마련에 어려움을 겪는 것으로 나타났다. 한국에서 예산 관리 임원을 설득해 자금을 확보했거나 비즈니스 측면에서 API 가치를 정립한 기업은 10개 중 3개가 되지 않았다. 대다수 한국 기업이 성공적인 API 활용을 위해 필요한 중요 전략에 대해 잘 인지했지만 실행에 옮긴 경우는 소수였다.

한국 응답자의 75%가 개발자를 충분히 고용해야 한다고 답했지만 실행에 옮긴 사례는 18%에 불과했다. 72%가 예산 담당 임원을 설득해 자금을 확보하는 일이 중요하다고 동의했지만 26%만이 해당 전략을 실행하고 있었다. 비즈니스 측면에서 API 중요성을 정립하는 일이 중요하다고 답한 응답자도 70%에 달했으나 4분의 1만이 행동에 나섰다.

기업이 기존 IT 시스템을 마이크로서비스 아키텍처로 전환하고자 하려는 경우도 많다. 시스템 설계에 대해 막막해 보일 수 있다. 그는 인터페이스 디자인을 먼저 하라고 설명했다.

관련기사

그는 “설계 첫날, 기존의 데이터 서비스에 콜을 하게 되고, 둘째날 새로운 서비스를 아주 작은 것을 테스트로 하나 만든 후 게이트웨이를 통해 그 서비스로 라우팅해준다”며 “각 서비스 릴리스마다 서비스 쪽에선 새 라우팅 위해 게이트웨이를 연결하고, 이 작업을 반복하면서 기존 서비스를 없애가야 한다”고 조언했다.

그는 “이렇게 하게 되면 어떤 게 잘못됐을 때도 이전 서비스로 다시 라우팅할 수 있고, 한가지만 고치면 된다는 장점이 있다”며 “그리고 좋은 게이트웨이 툴을 쓰면 손쉽게 할 수 있다”고 덧붙였다.