반응형

본 내용은 인프런의 이도원 님의 강의 "Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)" 내용을 바탕으로 정리한 내용입니다.

 

SOA (Service-Oriented Architecture)

  • SOA는 소프트웨어 시스템을 서비스들의 집합으로 구성하는 아키텍처 패턴이다.
  • MSA보다 더 큰 규모의 서비스를 가지고 있을 수 있으며, 일반적으로 기업 환경에서의 비즈니스 프로세스를 지원하는데 중점을 둔다.
  • 프로세스의 재사용을 통해 비용을 절감할 수 있다
  • 서비스 공유를 최대화하는 아키텍처이다

SOA의 특징

  • 비즈니스 중심: 기업의 비즈니스 프로세스에 집중하며, 기존의 비즈니스 프로세스를 재사용하거나 변경하기 위해 서비스를 설계한다.
  • ESB (Enterprise Service Bus): SOA는 종종 ESB와 함께 사용되는데 ESB는 서비스 간의 통신을 중개하고, 서비스들 간에 메시지 라우팅과 변환 등의 중요한 역할을 수행한다.
  • 기업 환경: SOA는 기업의 비즈니스 요구사항을 충족하는데 주로 사용된다. 기업의 다양한 부서나 시스템 간에 상호작용하는 서비스들을 구축하기에 적합하다.

 

MSA (Microservices Architecture)

  • MSA는 소프트웨어를 작고 독립적인 단위로 나누어 각각을 서비스로 구성하는 아키텍처 패턴이다. 
  • 각 서비스는 자체적으로 독립된 데이터베이스와 비즈니스 로직을 가지고 있으며, 서로 간에 통신을 통해 상호작용한다.
  • 서비스 공유를 최소화하는 아키텍처이다.

MSA의 특징

  • 작은 규모의 서비스: MSA는 작은 규모의 서비스 단위로 구성되므로, 서비스 간의 결합도가 낮아지고 유연성과 확장성이 향상된다.
  • 독립적인 배포: 각 서비스는 독립적으로 배포 가능하며, 개별적인 업데이트와 스케일링이 가능하다.
  • 다양한 기술 스택: 서비스 간에 다양한 기술 스택을 사용할 수 있어서 개발자들이 최적의 기술을 선택하여 개발할 수 있다.
  • 느슨한 결합: 서비스 간의 통신은 HTTP, REST, 메시지 큐 등을 이용하여 이루어지며, 각 서비스는 독립적으로 동작하므로 느슨한 결합이 가능하다.
  • 높은 확장성: 트래픽 증가 시 해당 서비스만 확장할 수 있어서 리소스의 효율적인 사용이 가능하다.

 

 

Service Mesh Capabilities

마이크로서비스 아키텍처에서 서비스 간 통신과 관리를 개선하기 위한 기능들의 집합을 의미한다. MSA의 복잡성과 확장성을 다루기 위한 패턴으로, 각 서비스 사이의 통신을 관리하고 보안, 모니터링, 트래픽 제어 등의 기능을 제공한다.

서비스 디스커버리

서비스 간의 동적인 위치를 추적하고 발견하는 기능을 제공한다. 각 서비스 인스턴스의 상태와 위치를 서비스 메시에서 추적하여 클라이언트가 서비스를 찾을 수 있도록 도와준다.

로드 밸런싱

트래픽을 여러 서비스 인스턴스로 균등하게 분산하는 로드 밸런싱 기능을 제공하여 시스템의 성능과 확장성을 향상한다.

서킷 브레이커 

서킷 브레이커 패턴은 서비스 간의 실패나 지연에 대응하기 위한 기능을 제공한다. 서비스 호출이 일정 시간 이상 지연되거나 오류가 발생할 경우, 서킷 브레이커는 해당 서비스를 차단하여 서비스 간의 장애 전파를 방지하고, 대체 로직을 수행하여 장애를 처리한다.

분산 트레이싱

분산 트레이싱은 MSA에서 각 서비스 간의 호출 경로와 성능을 추적하고 모니터링하는 기능을 제공한다. 이를 통해 시스템의 성능과 이상 현상을 파악하고 분석할 수 있다.

보안

서비스 간의 통신을 보호하기 위한 보안 기능을 제공한다. 인증, 인가, 데이터 암호화 등의 보안 기능을 메시 레이어에서 처리하여 서비스 개발자들은 보안에 대한 걱정 없이 개발에 집중할 수 있다.

트래픽 제어

트래픽의 분산, 로드 밸런싱, 트래픽 라우팅 등을 통해 트래픽 제어 기능을 제공한다. 특정 서비스에 대한 트래픽 비율 조절, A/B 테스트, 롤링 업데이트 등을 가능케 한다.

반응형

'Cloud > MSA' 카테고리의 다른 글

[MSA] MicroService 구현(사용자 서비스)  (0) 2024.06.29
[MSA] Gateway Filter  (0) 2024.06.29
[MSA] Spring Cloud Gateway  (0) 2024.06.29
[MSA] 스프링 클라우드란?  (0) 2023.07.24
[MSA] Monolithic vs MSA  (0) 2023.07.23

+ Recent posts