책 커버 표지
일경컴퓨터_2022/08/04마이크로서비스 활용의 성공 비결
  • 저자 : 日経BP社
  • 발행일 : 20220804
  • 페이지수/크기 : 138page/28cm

요약

Nikkei Computer_2022.8.4 (p24~37)

마이크로서비스 활용의 성공 비결
선진 기업을 통해 보는 설계의 '현실적 해법’

애플리케이션의 신속한 개선을 가능하게 하는 ‘마이크로서비스 아키텍처’. 지금까지의 국내 도입 사례들은 선진 인터넷 기업 등에 한정되어 왔지만, 최근에는 은행이나 JCB 등 금융기관들의 채택이 이어지고 있으며, 미츠코시이세탄(三越伊勢丹)과 같은 전통 기업들도 도입하는 등 본격적인 보급기에 접어들고 있다.

하지만 기존 시스템으로의 적용에는 가로막고 있는 난제들이 존재한다. 예를 들면, 애플리케이션을 독립성이 높은 서비스로 분할할 필요가 있다는 점 등이다. 그렇다면 어떻게 해야 성공할 수 있을까? 최신 사례들을 통해 성공 비결인 '현실적 해답'을 모색해본다.

Part 1. 이점은 변경의 민첩성
은행에서도 도입 시작

마이크로서비스의 활용은 지금까지 인터넷 기업들이 중심이었지만, 이제는 일반 기업으로도 확산되고 있다. 그 원동력은 시스템을 신속하게 변경하고 싶거나, 유지보수성을 높이고 싶다는 요구가 높아지는 것에 있다. 후쿠오카파이낸셜그룹 산하의 ‘민나노은행(みんなの銀行)'의 사례를 통해 마이크로서비스의 이점을 살펴보자.

"경쟁하고 있는 핀테크 기업들은 클라우드에 빠르게 시스템을 구축해 제품의 품질을 향상시키고 있다. 우리도 마찬가지로 클라우드를 통해 기민하게 개선해나갈 방침이다”. 스마트폰 전문은행인 민나노은행의 미야모토(宮本) CIO(최고 정보 책임자)는 구글 클라우드 상에 구축한 계정계를 포함한 은행 시스템의 컨셉트에 대해 이렇게 말한다.

시스템의 신속한 변경을 가능하게 하기 위해 민나노은행이 선택한 것이 '마이크로 서비스 아키텍처'이다. 비교적 소규모 서비스들을 API(애플리케이션 프로그래밍 인터페이스) 등을 통해 소결합에 연계시켜 일련의 처리를 실현할 수 있다. 기존에 비해 서비스의 단위가 작기 때문에 변경 시 영향 범위의 조사 및 개편, 테스트의 대상 범위를 국소화할 수 있다. 하루에도 몇 번씩 서비스를 변경하고 디플로이할 수 있는 등, 개발에 속도를 낼 수 있다.

SOA(서비스 지향 아키텍처) 등과 같은 컨셉트를 가진 설계 방법은 과거에도 있었다. 최근들어 클라우드나 컨테이너와 같은 서비스를 뒷받침하는 인프라가 정비되면서 마이크로서비스를 추진하기 쉬워졌다.

지금까지 전자상거래(EC) 사이트나 인터넷기업 등에서의 이용이 중심이었던 마이크로서비스가 일반 기업으로 확산되고 있다. 그 이유는 명쾌하다. 변화에 빠르게 대응할 수 없는 서비스로는 시장 경쟁에서 이길 수 없게 되었기 때문이다.

“기존형의 시스템 구축에서는 기획에 수개월이 소요되고, 벤더 견적을 취득해 사내 결재가 내려져야 간신히 개발이 시작된다. 가동까지 반년에서 1년이라는 기간을 필요로 한다”라고 미야모토 CIO는 말한다. “이런 상태로는 라이벌에 맞설 수 없다”.

민나노은행은 2021년 5월, 은행 시스템을 릴리스한 이후 일주일에 한 번 정도는 시스템 개선을 위해 기능을 업데이트하고 있다. 또한 올 7월에는 앱에서 완결되는 대출 서비스 '민나노은행 Loan' 제공을 시작하는 등 개발에 속도를 내고 있다.

-- 승부수는 ‘소결합(疎結合)’에 있다 --
기존형의 시스템은 앱 간 혹은 앱 내부의 기능 간 밀접하게 결합된 모노리스(하나의 돌) 구조으로 되어 있는 경우가 많다. 이 때문에 앱을 변경하려면 다른 앱이나 기능, 데이터베이스에 미치는 영향 범위 조사, 테스트 등에 시간이 걸린다. 마이크로서비스는 신속한 개발에 제약이 되고 있는 이 모노리스 구조에 메스를 대는 발상이라고 할 수 있다.

마이크로서비스의 핵심은 '소결합'에 있다. 하나의 서비스를 변경할 때 다른 서비스에 대한 영향을 최소한으로 억제하는 설계를 통해 서비스 단위로 개발과 변경, 운용을 생각할 수 있게 된다.

민나노은행은 ‘예금’, ‘인증’, ‘저축 계좌’ 등의 단위로 서비스를 만들고 이것을 소결합에 연계시켜 일련의 큰 기능을 제공한다. 미야모토 CIO는 “마이크로서비스를 하는 이상 완벽하게 추진하지 않으면 안 된다”라고 말한다. 향후 소결합이 아닌 부분에 반드시 문제가 발생할 것으로 보기 때문이다. 그렇게 되지 않도록 “마이크로서비스의 설계를 면밀하게 논의하고 있다”라고 강조한다.

미야모토 CIO는 서비스 별로 스케일아웃할 수 있다는 점도 마이크로서비스의 장점으로 꼽는다. 예를 들면, 판촉 캠페인을 통해 사용자 접속이 증가하는 케이스에서는 특정 서비스만을 스케일아웃해 해결할 수 있다.

하지만 서비스 구현에서는 몇 가지 장벽이 있다. 많은 사용자들이 가장 먼저 직면하는 것이 '어떤 서비스를 어느 정도 크기로 만들면 좋을까'이다.

오픈소스 솔르션 공급업체 레드햇((Red Hat)의 기타야마(北山) 테크니컬세일즈본부 시니어솔루션아키텍처는 “마이크로서비스의 목적은 시스템의 유지보수성을 높이는 것이다. 유지보수성이 높은지 낮은지는 운용하지 않으면 알 수 없다. 필요한 시점에 변경할 수 있다면 합격이지만, 조정이 발생할 경우 분할 후보가 된다”라고 조언한다.

유지보수성이 향상되도록 소결합으로 나누는 안배가 중요하다.

미쓰코시이세탄에서 마이크로서비스 개발을 추진하는 아임디지털랩의 스즈키(鈴木) 이사는 “마이크로서비스를 통해 얻을 수 있었던 것은 DevOps를 실현하는 가운데 '시스템을 하나의 노드에 집약하는 설계'로부터 해방되었다는 것뿐이다. 그렇기 때문에 무리하게 작게 만드는 것이 아니라 필요에 따라 분할을 실시하고 있다”라고 자사의 방침을 말한다.

이하 Part 2 에서는 유저 사례들을 통해 마이크로서비스 활용의 힌트를 모색해본다. Part3에서는 마이크로서비스 도입을 성공으로 이끄는 포인트를 정리했다.

Part2. 미쓰코시이세탄의 개발 격변
1년 반 만에 100번 변경

업종이나 시스템의 규모를 불문하고 마이크로서비스 사례들이 계속 증가하면서 성과들도 속속 나오고 있다. 미쓰코시이세탄은 마이크로서비스를 통해 1년 반 만에 100회가 넘는 변경·출시를 실현했다. JCB나 DeNA, 오이식스라대지(Oisix ra daichi)의 대응도 소개한다.

Part 3. 선도 기업들의 성공법칙
입도(粒度), DB, 인프라

마이크로서비스 도입을 성공으로 이끄는 3가지 포인트가 보이기 시작하고 있다. 그것은 서비스 입자 결정, 데이터베이스(DB) 정리분할, 인프라 정비이다. 어떻게 하면 잘 추진할 수 있는지 성공 사례 및 전문가에게 노하우를 배워보자.

 -- 끝 --

Copyright © 2020 [Nikkei Computer] / Nikkei Business Publications, Inc. All rights reserved.

목차