ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • MSA(Microservice Architecture) MSA와 애자일
    CS/etc 2022. 11. 21. 20:44

     

     

    MSA는 1개의 시스템을 독립적으로 배포 가능한 각각의 서비스로 분할한다.

    각각의 서비스는 API를 통해 데이터를 주고 받으며 1개의 큰 서비스를 구성합니다.

    모든 시스템의 구성요소가 한 프로젝트에 통합되어 있는 Monolithic Architecture(모놀리식 아키텍쳐)의 한계점을 극복하고자 등장하게 되었습니다.

     

    • 장점
      • 일부 서비스에 장애가 발생해도 전체 서비스에 영향을 끼치지 않는다. (시스템 장애 대응에 유리_
      • 각각의 서비스들은 서로 다른 언어와 프레임워크로 구성될 수 있다.
      • 서비스의 확장이 용이하다. (서버증설이 필요할 때 수평적으로 확장할 수 있다. 모놀리식이면 이전 서버의 사양을 바꿔주는 방식으로 진행한다.)
      • 이중화와 모듈 분리에 용이하다.
    • 단점
      • 서비스가 분리되어 있어 테스트(TDD)나 트랜잭션 처리 등이 어렵다.
      • 서비스 간에 API로 통신하기 때문에 그에 대한 비용이 발생한다.
      • 서비스 간의 호출이 연속적이기 때문에 디버깅 및 에러 트레이싱이 어렵다.

    MSA와 애자일?

     

    애자일은 업무 방식 (철학)
    MSA는 아키텍처 (기술)

     

    애자일은 좋은 현대에서 가장 인정받는 진화된 업무방식이다.
    애자일 방식은 설계-개발-배포 사이클을 반복하는 스프린트를 활용하여 제품과 서비스를 지속적으로 향상시킨다.
    이는 변화와 피드백을 원하는 현대 사회에 필수적인 업무 방식이 되어가고 있다.

     

    둘 다 짧은 개발과 배포를 반복하며 지속적인 제품 향상을  목적으로 한다.

    이는 곧 시장이 요구하는 방향성이라 생각한다.

     

    MSA의 기술적 가치는 시스템 간 디커플링, 기술의 복잡성을 줄인다 등의 기술적 가치를 얘기할 순 있다.
    하지만 기술은 사실 기술 자체가 아니라 어떤 비즈니스 가치와 연결이 돼야하는 것이다.
    그 측면에서 MSA 역시 가치를 빠르게 고객에게 전달하기 위해서 생겨난 것이다.

    즉 빠르고 빈번한 배포가 필요하게 되었고, 나의 수정과 배포가 다른 시스템에 영향을 주어선 안된다.
    MSA(Micro Service Architecture)는 단순한 기술이 아니라 애자일한 비즈니스 상황 변화에 따라 나올 수 밖에 없었다. 

     

    하지만 MSA는 매우 많은 장점을 가지고 있으나 복잡하고 어렵다.
    기업의 문화와 개발환경이 정확히 받쳐주지 못하여 실패한 기업도 다수 존재한다.
    그러나 MSA는 시장 가치에서 속도와 시스템 안정성 측면에서 압도적인 장점을 가지기에 추구하기 알맞은 기술이다.

    (ex. 아마존, 넷플릭스, 쿠팡)

     

    참고: https://dev-coco.tistory.com/164

Designed by Tistory.