-
-
마이크로서비스 아키텍처 구축 가이드 - 성공적인 마이크로서비스 아키텍처 적용을 위한 체크포인트와 전략
김용욱 지음 / 한빛미디어 / 2023년 2월
평점 :
모놀리식 서비스에서 마이크로서비스 아키텍처로 전환하는 추세입니다.
모놀리식의 경우 업데이트시 전체 애플리케이션을 다시 빌드하고 배포해야 합니다.
반면에 마이크로서비스의 경우 애플리케이션을 작은 단위로 분해하며 독립적으로 배포할 수 있습니다.
마이크로서비스 관련 책을 살펴보려 하는데요.
살펴볼 책은 ‘마이크로서비스 아키텍처 구축 가이드’입니다.
마이크로서비스는 모놀리식 서비스에 비해 기능을 빠르게 변경할 수 있습니다.
또한 서비스를 개별적으로 확장하거나 장애가 발생해도 영향받는 서비스는 최소화됩니다.
마이크로서비스는 어떤 아키텍처인지 같이 살펴보겠습니다.
![](https://image.aladin.co.kr/Community/paper/2023/0226/pimg_7827481693761544.jpg)
◆ 모놀리식과 마이크로서비스
모놀리식은 하나의 컴퓨터에서 운영하는 서비스로 장애가 발생 시 전체 서비스에 영향을 끼칩니다.
마이크로서비스는 장애가 일어난 서비스만 문제가 발생하고 그 외 다른 서비스에는 영향을 끼치지 않습니다.
마이크로서비스 아키텍처는 서비스 간의 상호작용을 세밀하게 제어할 수 있는 장점이 있기 때문에 이러한 문제를 해결하기에 좋은 아키텍처입니다.
서비스를 그대로 유지할 수 있는 부분이 장점이긴 하지만 관리를 못 하면 문제가 발생합니다.
이 문제를 해결하기 위해 분산 트랜잭션을 지원하는 데이터베이스를 사용해야 합니다.
여러 서비스 운영시 트랜잭션에서 자동 롤백과 동시성이 보장 안 되는 상황이 발생할 수 있습니다.
데이터베이스는 운영시 데이터 불일치 문제가 있는지와 일관성이 깨지지 않는지 또한 트랜잭션 충돌이 발생할 수 있는지 살펴봐야 합니다.
이 문제를 해결하는 방법을 생각해보면 분산 트랜잭션 관리 시스템을 사용하거나 서비스 간의 상호작용을 잘 설계하여 문제를 최소화해야 합니다.
![](https://image.aladin.co.kr/Community/paper/2023/0226/pimg_7827481693761545.jpg)
◆ 마이크로서비스 아키텍처 적합도
마이크로서비스 아키텍처가 모든 서비스에 적합한 것은 아닙니다.
비즈니스 로직, 팀의 구조, 운영을 고려하면서 결정해야 합니다.
서비스 간의 의존성은 줄어들지만, 운영 부담이 증가할 수 있습니다.
단순한 시스템의 경우 서비스를 여러 개로 만드는 것은 복잡도를 높이고 좋지 않습니다.
대규모 시스템은 의존성이 낮기 때문에 부하 분산과 가용성을 보장할 수 있습니다.
비즈니스 로직을 서비스 간의 경계를 정의하고, 판단해야 합니다.
시스템의 특성과 조건을 정확하게 파악하고 적용 여부를 결정하시길 바랍니다.
![](https://image.aladin.co.kr/Community/paper/2023/0226/pimg_7827481693761548.jpg)
끝으로 마이크로서비스 아키텍처를 도입하고 구축하는 것을 목적으로 합니다.
마이크로서비스 아키텍처에 대한 이해와 도입 전에 고려해야 할 사항을 알려줍니다.
모놀리식에서 마이크로서비스로 전환을 고려하지만, 어디부터 시작해야 할지 고민인 분들도 계실 겁니다.
마이크로서비스 도입을 고려하는 분들에게 마이크로서비스 아키텍처 사례들이 도움 될 것입니다.
마이크로서비스 아키텍처 구축에 관심 있는 분들에게 이 책을 추천합니다.
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."
![](https://image.aladin.co.kr/Community/paper/2023/0226/pimg_7827481693761552.jpg)