ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 마이크로서비스 아키텍처란?(MSA, microservice architecture)
    IT/아키텍처 2020. 4. 10. 20:15
    728x90

    마이크로서비스 아키텍처란, 시스템을 여러개의 독립된 서비스로 나눠서 이를 재조합함으로써 기능을 제공하는 디자인패턴을 일컫습니다.

     

    대표적인 예

    마이크로서비스 아키텍처의 대표적인 예로는 요즘 정말 핫한 넷플릭스와 아마존을 들 수가 있습니다.

    넷플릭스의 데이터센터가 장애가 일어나 2008년 넷플릭스 DVD 판매에 차질을 빚었다고 합니다.

    그래서 아마존 웹서비스로 2009년부터 2015년까지 이전한 것이 마이크로서비스 아키텍처의 대표적인 케이스가 됩니다.

    넷플릭스와 아마존.. 이건 몰랐지?

    마이크로서비스를 구성할때, 3가지 디자인 원칙이 있습니다.

     

    첫째, 단일 책임의 원칙. 서비스는 각각이 하나의 책임만 갖는다는 내용입니다.

    둘째, 느슨한 결합. 각기 서비스에 대한 내용을 잘 모른다는 내용으로 한 서비스의 업데이트가 이루어져도 다른 서비스에는

                                      영향도 없고, 어떤 내용인지에 대해서도 인지할 수 없습니다.

    셋째, 높은 결합력. 서비스 상호간 유기적으로 얽혀 있습니다.

     

    마이크로서비스 아키텍처를 도입의 장점 단점이 무엇일까요?

     

    장점 첫째로, 서비스의 수평 확장이 용이하다는 점입니다.

     

    기존의 모놀리식 아키텍처(기존 웹 개발 방식으론 DB와 웹서버 등도 단일로 구성했습니다.)의 단점으로는

    지속적인 통합, 지속적인 배포(CI/CD - Continuous Integration, Continuous Deploy)가 어려운데,

    마이크로서비스 아키텍처는 서비스들을 잘게 나누어 웹서비스로 치면 쇼핑몰의 로그인 기능 서비스 따로,

    장바구니 따로, 회원 관리 서비스 따로 구현을 해놨기 때문에 지속적인 통합과 배포가 용이하다는 것이

    마이크로서비스 아키텍처의 가장 큰 장점이 되겠습니다.

    위에 설명했다시피, 서비스를 제각기 구현이 가능하기 때문에 다른 장점들은

    서비스 구성에 있어 언어에 대한 자유도가 높다는 점, (수평 확장으로 인한) 고성능과 고가용성 등을 들 수가 있습니다.

     

    마이크로서비스의 단점을 알아보겠습니다.

    단점은 서비스가 잘게 나뉘고 대규모 서비스의 경우 수백에서 수천개의 컨테이너가 동작하게 됩니다.

    그래서 되려 장애의 추적이 어려울 수 있습니다.

     

    또한, 하나의 서비스가 여러가지 서비스에 걸쳐있는 경우, 마이크로서비스의 트랜잭션은

    API CALL에 의한 트랜잭션이 이루어지기 때문에 트랜잭션이 어려울 수 있다는 것이 있습니다.

     

     

    대표격으로 마이크로서비스 아키텍처의 제품군은 

    아마존 서버리스(프로비저닝이 필요없이도 코드 실행이 가능합니다.),

    아마존 ecs(관리형 클러스터에서도 손쉽게 관리가 가능합니다.)

     

    구글 app engine(서비스를 구글 앱 엔진으로 배포, 및 관리할 수 있습니다.)

    구글 cloud trace(서비스 요청에 대한 단일 추적이 가능합니다.)

    728x90
    반응형
Designed by Tistory.