마이크로서비스 아키텍처 구축

마이크로서비스 아키텍처 구축 - 8점
샘 뉴먼 지음, 정성권 옮김/한빛미디어

 

마이크로서비스란?

작고 자율적인 서비스

'작다'와 '자율적'이란 말은 상당히 모호하다. 표준 규격을 만들 수 있는 것이 아니라 비즈니스 모델과 조직 구성의 역량에 따라 상대적일 수 있기 때문이다. 

'작다'는 것은 변경과 의사소통 비용에 힘을 낭비하지 않아야 한다는 것이다. 하나의 서비스를 두 팀이 관리한다면, 기본적으로 의사소통 비용이 추가된다. 컴파일러를 만들기 위해 팀을 4개 만든다면, 4단계를 거쳐야 하는 컴파일러가 생긴다는 격언도 있다. 

'자율적'이라는 것은 서비스가 다른 서비스로부터 제약을 받지 않는다는 것이다. 하나의 서비스에서 관리하는 테이블이나, 로직을 독립적으로 관리할 수 있어야 한다. 다른 서비스에 종속되거나, 영향을 주는 구조라면 그만큼 제약을 받을 수 밖에 없기 때문이다. 


마이크로서비스 구축 방법

결론부터 말하자면 먼저 모놀리식 시스템을 구축한 후, 마이크로서비스로 진화하는 것이 저자가 생각하는 최적의 방법이다. 

가장 먼저 할 일은 현재 조직의 개발 관련 성숙도를 높여야 한다. 테스트가 자동화되어 있지 않다면 테스트 자동화가 먼저다. 기본도 안된 상태에서 유행을 쫒는 것은 망하는 지름길이다. 

시스템이 구축되어 있다면, 비즈니스의 경계를 명확히 구분할 수 있는지 확인해 보자. 작고 자율적인 서비스를 만든다는 것은 서비스 간의 경계를 명확히 구분할 수 있어야 가능하다. 

처음부터 마이크로서비스로 구축하는 것은 바닥을 다지지 않고 건물을 올리는 것이나 마찬가지다. 모놀리식시스템을 구축한 후, 비즈니스 단위로 분해하면서 진화해 나가는 것이 좋다. 

마이크로서비스를 구축한 뒤에는 모니터링이 중요하다. 이에 관해서는 책에 다양한 방법이 나와 있다. 


도움이 된 책

이 책 덕분에 MSA에 대한 모호함이 많이 해소되었다. 번역은 좀 아쉬웠지만, 번역하신 분도 어쩔 수 없는 부분이란 생각이 들었다. 중반 이후부터는 적응이 되었는지 술술 넘어가더라. 


댓글 쓰기

0 댓글