티스토리 뷰

1. 모놀리식 (Monolithic)

모놀리식은 시스템의 모든 비즈니스 로직이 하나의 서버에 의해 처리되는 방식으로 배포가쉽고 시스템을 빠르게 만들 수 있다는 장점이 있어 초기 서비스를 만들 때 유용한 방식이다. 하지만 시스템 규모가 커짐에 따라 다음과 같은 단점이 발생할 수 있다.

 

  • 단일장애지점 : 하나의 장애가 발생하면 시스템 전체에 영향을 미침
  • 트래픽 대응 : 특정 서비스의 트래픽 증가시 대응하기 위해 모든 서비스(시스템 전체) 리소스 스케일링 필요
  • 기술에 종속적 : 작은 기능을 수정 해도 전체 배포를 하기 때문에 테스트 시간이 많이 필요하고 오류가 자주 발생하여 신기술 도입 어려움

2. MSA (Micro Service Architecture)

모놀리식 아키텍처를 Microservice 단위로 쪼갠 후 독립적으로 구축하는 방식이다. 서비스가 대형화되고 클라우드 서비스가 활성화된 요즘 모놀리식 방식에서 MSA 방식으로 구조 변경을 진행하고있다. 

 

개발인원 증가, 사용자 트래픽 대응을 위해 쿠팡은 2013년, 배달의 민족은 2016년에 기존 모놀리식 시스템을 AWS 를 이용한 MSA로 시스템을 전환하였다. 운영 중인 서비스가 급격하게 성장하고 있다면 MSA 도입을 고려해볼만하다.

https://spring.io/cloud

 

구성요소

  • Microservice: 독립적으로 운영되는 Microservice (로그인/결제/배송/리뷰 등)
  • API Gateway: 요청을 직접 받아 적절한 서비스로 요청을 포워딩
  • 모니터링서버 : 각각의 서비스들의 상태를 관리하기 위한 서버
  • 변수관리서버 : 의존성이 강한 변수(DB정보 등)변경시 각각의 서비스의 환경변수 관리필요

 

장점 (독립적인 서비스 운영)

  • 트래픽 : 특정 서비스에 트래픽이 증가했을 때, 해당 서비스에 대해서만 resource 스케일링을 해줌으로써 트래픽 대응에 대한 자원낭비 방지
  • 신뢰성 : 특정 서비스에 장애가 발생해도 전체 서비스 실행이 멈추지 않고 운영가능
  • 확장성 : 전체 시스템에 영향을 주지않고도 서비스별로 적절한 라이브러리, 언어, 서버도입 가능

 

단점

  • 초기 인프라 구성 난이도가 높고 서비스가 커질 수록 복잡도가 늘어날 수 있다.
  • 특정 서비스가 동작안할 경우에도 시스템이 동작함으로서 사용자 혼란 발생 가능 (쇼핑몰에서 로그인 서비스만 다운되고 쇼핑은 여전히 가능할 경우 등)
  • 별개로 동작하는 Microservice 서비스 관리 및 서비스간 API 호출 비용문제를 고려해야한다.

 

 

 

참고


MSA, 마이크로서비스 여행기 정리 (배달의 민족)

마이크로서비스 아키텍처로의 전환 (쿠팡)

AWS 기반 서버리스 마이크로 서비스 구현 사례 (빙글)

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함