MSA 2024. 4. 21. 01:59

[MSA] Microservice Architecture, SOA

목차
  1. SOA (Service Oriented Architecture)
  2. 정의
  3. 특징
  4. ESB (Enterprise Service Bus)
  5. SOA vs MSA
  6. Microservice
  7. 정의
  8. 특징
  9. 이점
  10. Monolithic Architecture
  11. Monolithic vs Microservice Architecture
  12. Service Mesh
  13. Saga Pattern
  14. Event Driven Architecture
  15.  
  16. 출처

SOA (Service Oriented Architecture)

정의

개별 서비스에 초점을 맞춘 아키텍처 스타일

  • Monolithic Design과 반대되는 개념
  • 서비스를 재사용하거나, 독립적인 여러 서비스를 결합하여 복잡한 태스크 수행
    • ex) 사용자 인증 서비스를 생성해서 모든 애플리케이션에서 재사용

특징

데이터(DB) 공유

ESB (Enterprise Service Bus)

여러 서비스가 있는 시스템과 통신할 때 사용할 수 있는 소프트웨어

기술과 관계 없이 서비스와 서비스 소비자 간의 통신을 설정

  • 데이터 모델 변환, 연결성/메시징 처리, 라우팅, 통신 프로토콜 변환
    • 요청을 각 서비스에 맞는 프로토콜로 변환
    • 각 서비스로의 연결을 한 포인트로 중앙 집증

SOA vs MSA

  • SOA는 데이터 공유, MSA는 데이터 복제, 세분화
  • SOA는 통신을 중앙 집중하는 ESB, MSA는 경량 API를 통해 노출하는 자체 통신 프로토콜

Microservice

정의

소규모의 독립적인 서비스로 구성되어 있는 아키텍처

  • 각 서비스는 잘 정의된 API를 통해 통신한다
  • 독립적으로 배포 가능한 서비스

특징

  • 자율성
    • 다른 서비스의 기능에 영향을 주지 않으면서 개발, 배포, 운영, 확장
    • 컴포넌트간 통신은 API를 통해
  • 전문성
    • 각 서비스는 특정 문제를 해결하는 데 중점을 둔다

이점

  • 민첩성
    • 개별 서비스를 소유한 팀을 육성
    • 독립적이고 신속하게 업무 수행
    • 개발 속도 향상
  • 유연한 확장성
    • 특정 기능의 수요를 충족하도록 일부 서비스만 독립적으로 확장 가능
    • 인프라의 규모를 적절하게 조절
    • 기능별 비용을 정확하게 측정
    • 일부 서비스의 수요가 급증할 때도 가용성[각주:1] 유지
  • 손쉬운 배포
    • CI/CD - 지속적 통합과 지속적 배포
    • 문제가 발생하면 간단히 롤백
    • 실패 비용이 저렴
      • 비즈니스 실험 진행 (A/B 테스트)
      • 더 쉽게 코드 업데이트
      • 새로운 기능 출시 시간 단축
  • 기술적 자유
    • 특정 문제를 해결하는 데 가장 적합한 도구를 자유롭게 선택 (언어, 프레임워크, 라이브러리 등)
  • 코드 재사용
    • 서비스를 다른 서비스에서 재사용 가능
    • 개발자가 코드를 처음부터 작성하지 않고 새 기능 생성
  • 복원성
    • 서비스가 독립적이므로 애플리케이션의 실패 저항성 증가
    • 모놀리식 아키텍처에서는 단일 컴포넌트가 실패하면 전체 애플리케이션 실패할 수 있음
    • 마이크로서비스에서는 특정 서비스 성능만 저하 가능

Monolithic Architecture

모든 프로세스가 긴말하게 결합된 단일 서비스

Monolithic vs Microservice Architecture

서비스가 독립적이어서 종속성, 결합도가 낮다

  • Microservice는 개별 서비스별로 적절한 배포 전략을 세울 수 있다
    • 배포 Risk가 적다
    • ⇒ 서비스가 자주 변경되어 자주 배포할 때 유리하다
  • 기능별 유연한 Scaling
    • 트래픽을 많이 받는 서비스만 수평적으로 확장해서 사용성을 개선
  • 비즈니스 신규 기능 추가 대응
    • 독립성을 갖는 microservice가 유리
  • Polyglot - 각각의 서비스에 유리한 다양한 기술, 언어를 사용할 수 있음
  • 마이크로서비스는 각 서비스가 독립적인 데이터베이스를 가지고 있다

 

Service Mesh

Service Mesh

 

Saga Pattern

Saga Pattern

 

Event Driven Architecture

Event Driven Architecture

 

출처

https://aws.amazon.com/ko/what-is/service-oriented-architecture/

https://en.wikipedia.org/wiki/Service-oriented_architecture

https://en.wikipedia.org/wiki/Enterprise_service_bus

https://www.ibm.com/kr-ko/topics/esb

https://aws.amazon.com/ko/microservices/

  1. 시스템이 정상적으로 사용 가능한 정도 [본문으로]
저작자표시 (새창열림)

'MSA' 카테고리의 다른 글

[Event Streaming] Serialization / Deserialization (SerDe)을 하는 이유  (0) 2024.06.12
[MSA] Saga Pattern  (0) 2024.04.21
[MSA] Service Mesh  (0) 2024.04.21
  1. SOA (Service Oriented Architecture)
  2. 정의
  3. 특징
  4. ESB (Enterprise Service Bus)
  5. SOA vs MSA
  6. Microservice
  7. 정의
  8. 특징
  9. 이점
  10. Monolithic Architecture
  11. Monolithic vs Microservice Architecture
  12. Service Mesh
  13. Saga Pattern
  14. Event Driven Architecture
  15.  
  16. 출처
'MSA' 카테고리의 다른 글
  • [Event Streaming] Serialization / Deserialization (SerDe)을 하는 이유
  • [MSA] Saga Pattern
  • [MSA] Service Mesh
개발자 이우진
이우진 기술 블로그
  • All (86)
    • Spring Framework (20)
    • MSA (7)
      • Event Driven Architecture (3)
    • Java (3)
    • Flink (2)
    • Computer Science (9)
      • Object Oriented Programming (3)
    • Problem Solving (15)
    • Design Pattern (0)
    • React (4)
    • Javascript (2)
    • Web (3)
    • Tools & Environment (3)
    • C++ (2)
    • misc (5)
    • Essay (3)
      • 기술 회고 (5)
  • 홈
  • 태그
  • 관리자
  • 글쓰기
hELLO · Designed By 정상우.v4.2.2
[MSA] Microservice Architecture, SOA
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.