2020.05.25

IDG 블로그 | 마이크로서비스와 클라우드 컴퓨팅의 현 주소

David Linthicum | InfoWorld
클라우드 컴퓨팅의 성장에 관한 오릴리(O’Reilly)의 최근 설문조사에 따르면, 1,283명의 응답자 중 52%가 소프트웨어 개발에 마이크로서비스 개념이나 툴 또는 방법론을 사용하고 있다고 답했다. 이 중 적지 않은 수(28%)는 마이크로서비스를 사용한 지 3년이 넘었다.
 
ⓒ Getty Images Bank

사용 기간으로는 마이크로서비스를 1년 이상 3년 이하 사용한 응답자가 55%로 가장 많았고, 마이크로서비스를 도입해 사용한 지 1년이 안된 응답자는 17%에 불과했다.

오릴리는 마이크로서비스에 대한 관심이 최고조에 이르렀음을 보여주는 몇 가지 증거도 제시했다. 이와 함께 최소한 마이크로서비스 아키텍처에서 규정한 정도로 서비스 프레임워크를 분해하는 것은 예상보다 훨씬 어렵다는 것이 증명되고 있다고 지적했다.

마이크로서비스 사용은 서비스 지향 아키텍처 및 클라우드 기반 시스템 사용의 자연스러운 진화이다. 거칠게 분해한(Coarse-grained) 서비스를 마이크로서비스로 분해하는 역량은 훌륭한 개념이 아닐 수 없다. 분해를 통해 사용자는 더 많은 곳에 사용할 수 있는 더 많은 서비스를 얻게 된다. 예를 들어 재고 업데이트 서비스를 분해해 재고 데이터 읽기, 기존 재고 데이터를 최신 재고 데이터로 수정, 업데이트한 재고 데이터 확인, 업데이트한 재고 데이터의 스토리지 기록 서비스로 세분화하는 것이다.

이렇게 매크로서비스를 4개의 마이크로서비스로 나누면, 이들 마이크로서비스를 매크로서비스 내에서 사용할 수도 있고, 아니면 다른 매크로서비스에서 재사용할 수도 있다. 지나치게 단순화된 설명이지만, 다른 애플리케이션을 만들 수 있는 것이다. 목표는 일단 마이크로서비스를 작성해 여러 번 사용하는 것이다.

그래서 마이크로서비스를 작성할 때는 좀 더 포괄적이고 범용적인 용도로, 다른 수많은 사용 패턴에도 적용할 수 있게 만드는 것이 좋다. 예로 든 재고 데이터 업데이트 서비스는 재고 데이터에 중점을 두고 있기 때문에 포괄적이지 않다. 바로 이 대목에서 어려움이 발생한다.

효과적인 마이크로서비스 활용의 핵심에 있는 것은 마이크로서비스의 재사용을 극대화하는 서비스 분해 프레임워크를 구축하는 역량이다. 하지만 이 기술은 대부분 애플리케이션 아키텍트에게 어렵다.

필자는 지난 여러 해 동안 많은 시간을 마이크로서비스를 구현할 수 있는 애플리케이션 설계를 지원하는 데 사용했는데, 이들 중 많은 수가 마이크로서비스의 이점을 온전히 얻기 위한 필수 계획이 없다는 것을 발견했다. 가장 흔하게 본 것은 잘게 분해한(fine-grained), 하지만 한번 작성해 한번 이용하는 서비스를 모아 놓은 것에 불과했다. 제대로 만들어 테스트한 작은 서비스를 재사용한다는 마이크로서비스의 핵심 이점을 놓친 것이다.

오릴리의 설문 조사에서 지적하는 것처럼, 서비스를 마이크로서비스로 제대로 분해하는 것은 대부분 애플리케이션 설계자에게 너무나 어려운 일이다. 한 가지 해법은 일정한 교육을 받고 마이크로서비스가 과학보다는 예술에 가깝다는 것을 이해하는 것이다. 그런 후에야 교착 상태를 넘어설 수 있을 것이다. editor@itworld.co.kr


2020.05.25

IDG 블로그 | 마이크로서비스와 클라우드 컴퓨팅의 현 주소

David Linthicum | InfoWorld
클라우드 컴퓨팅의 성장에 관한 오릴리(O’Reilly)의 최근 설문조사에 따르면, 1,283명의 응답자 중 52%가 소프트웨어 개발에 마이크로서비스 개념이나 툴 또는 방법론을 사용하고 있다고 답했다. 이 중 적지 않은 수(28%)는 마이크로서비스를 사용한 지 3년이 넘었다.
 
ⓒ Getty Images Bank

사용 기간으로는 마이크로서비스를 1년 이상 3년 이하 사용한 응답자가 55%로 가장 많았고, 마이크로서비스를 도입해 사용한 지 1년이 안된 응답자는 17%에 불과했다.

오릴리는 마이크로서비스에 대한 관심이 최고조에 이르렀음을 보여주는 몇 가지 증거도 제시했다. 이와 함께 최소한 마이크로서비스 아키텍처에서 규정한 정도로 서비스 프레임워크를 분해하는 것은 예상보다 훨씬 어렵다는 것이 증명되고 있다고 지적했다.

마이크로서비스 사용은 서비스 지향 아키텍처 및 클라우드 기반 시스템 사용의 자연스러운 진화이다. 거칠게 분해한(Coarse-grained) 서비스를 마이크로서비스로 분해하는 역량은 훌륭한 개념이 아닐 수 없다. 분해를 통해 사용자는 더 많은 곳에 사용할 수 있는 더 많은 서비스를 얻게 된다. 예를 들어 재고 업데이트 서비스를 분해해 재고 데이터 읽기, 기존 재고 데이터를 최신 재고 데이터로 수정, 업데이트한 재고 데이터 확인, 업데이트한 재고 데이터의 스토리지 기록 서비스로 세분화하는 것이다.

이렇게 매크로서비스를 4개의 마이크로서비스로 나누면, 이들 마이크로서비스를 매크로서비스 내에서 사용할 수도 있고, 아니면 다른 매크로서비스에서 재사용할 수도 있다. 지나치게 단순화된 설명이지만, 다른 애플리케이션을 만들 수 있는 것이다. 목표는 일단 마이크로서비스를 작성해 여러 번 사용하는 것이다.

그래서 마이크로서비스를 작성할 때는 좀 더 포괄적이고 범용적인 용도로, 다른 수많은 사용 패턴에도 적용할 수 있게 만드는 것이 좋다. 예로 든 재고 데이터 업데이트 서비스는 재고 데이터에 중점을 두고 있기 때문에 포괄적이지 않다. 바로 이 대목에서 어려움이 발생한다.

효과적인 마이크로서비스 활용의 핵심에 있는 것은 마이크로서비스의 재사용을 극대화하는 서비스 분해 프레임워크를 구축하는 역량이다. 하지만 이 기술은 대부분 애플리케이션 아키텍트에게 어렵다.

필자는 지난 여러 해 동안 많은 시간을 마이크로서비스를 구현할 수 있는 애플리케이션 설계를 지원하는 데 사용했는데, 이들 중 많은 수가 마이크로서비스의 이점을 온전히 얻기 위한 필수 계획이 없다는 것을 발견했다. 가장 흔하게 본 것은 잘게 분해한(fine-grained), 하지만 한번 작성해 한번 이용하는 서비스를 모아 놓은 것에 불과했다. 제대로 만들어 테스트한 작은 서비스를 재사용한다는 마이크로서비스의 핵심 이점을 놓친 것이다.

오릴리의 설문 조사에서 지적하는 것처럼, 서비스를 마이크로서비스로 제대로 분해하는 것은 대부분 애플리케이션 설계자에게 너무나 어려운 일이다. 한 가지 해법은 일정한 교육을 받고 마이크로서비스가 과학보다는 예술에 가깝다는 것을 이해하는 것이다. 그런 후에야 교착 상태를 넘어설 수 있을 것이다. editor@itworld.co.kr


X