[감리사, 토픽] 소공 - MSA





1. 개요

마이크로 서비스는 애플리케이션을 만들기 위해 결합될 수 있는 소규모 서비스입니다. 서비스 인터페이스가 다른 서비스에 대한 변경의 영향을 받지 않도록 독립적이어야 합니다. 수정할 수 있어야 합니다. 시스템의 다른 서비스를 변경하거나 중지하지 않고 서비스를 다시 배포합니다.



2. 장/단점


 ❐ 언제 적용해야 하나
  • 어느 정도 트래픽이 나오고 서비스가 잘 되었을 때 사용
  • 어느 정도 규모가 있어야 유지보수 비용이 줄어들기 때문에 모든 프로젝트에 적합하지는 않음

  ❐ 장점
  • 부하가 집중되는 특정 서비스를 자원을 할당해 ScaleOut할 수 있기 때문에 효율적인 자원 사용이 가
    • 스케일 아웃 : 서버의 개수를 늘려 서버의 처리 능력을 향상시키는 것
    • 스케일 업 : 서버 자체의 성능을 증가시키는 것, 고성능의 서버로 변경
  • 서비스의 변경이 다른 서비스에 영향을 미칠 가능성이 적음
  • 서비스 단위로 독립적인 배포가 가능
  • 시스템의 아키텍처가 개발 조직과 나아가서 회사의 조직 문화에 큰 영향을 미침
    • 특정 서비스의 개선과 수정 작업이 다른 서비스의 이해 당사자들과 독립적으로 진행 가능
    • 따라서 의사결정이 빠르고, 독립적인 테스트의 구축이 용이하기 때문에 품질이 증가
  ❐ 단점

  • 서비스 간의 통신에 대한 처리가 추가적으로 필요
    • 코드의 양이 늘어나고 사용자의 요청을 처리하기 위한 응답속도 또한 증가
  • 공유 자원 접근이 어렵움
    • 각 서비스가 독립된 저장소를 갖고 있기 때문에 서비스들끼리 자원을 공유하고 접근하는 것을 구현하기가 어렵고 제약조건도 있음
  • 배포와 실행이 복잡
    • 모놀리틱에서는 하나의 프로세스로 실행이 가능했지만, 마이크로서비스는 복잡한 실행 과정을 거침
    • 모든 서비스들을 한꺼번에 배포하고 실행시키기 위해서는 배포 자동화 과정을 거쳐야만 함

3. API Gateway

  • 서비스로 전달되는 모든 API 요청의 관문(Gateway) 역할을 하는 서버
  • 시스템의 아키텍처를 내부로 숨기고 외부의 요청에 대한 응답만을 적합한 형태로 수행
  • 클라이언트는 시스템 내부의 아키텍처를 알 필요가 없으며 서로 약속한 형태의 API 요청만을 서버로 보내면 알맞은 형태의 결과를 받을 수 있음
  ❐ 장점
  • 시스템 내부의 아키텍처를 숨길 수 있는(encapsulate) 특성
    • 특정 서비스가 변경되더라도 클라이언트가 인지할 필요 없이 API Gateway 내부 변경만으로 처리 가능

  ❐ 과정
  • 사용자의 HTTP Request는 API Gateway에 먼저 도달
  • API Gateway는 사용자의 HTTP Request를 마이크로서비스가 받을 수 있는 다른 형태의 프로토콜로 전환

  ❐ 역할
  •  클라이언트의 요청을 일괄적으로 처리
  •  전체 시스템의 부하를 분산시키는 로드 밸런서의 역할
  •  요청에 대한 불필요한 반복작업을 줄일 수 있는 캐싱
  •  시스템상을 오고가는 Request, Response 모니터링

4. 관련 소스프웨어 공학 서적


  ❐ Characteristics of microservices


  ❐ Service coordination



5. 관련 기출 문제
 
 ❐ 공무원 7급 2019년



 ❐ 감리사 2016년



댓글

이 블로그의 인기 게시물

영리목적의 마케팅 정보를 전송하기 위한 개인정보 처리 조치