SOA (Service Oriented Architecture)
정의
개별 서비스에 초점을 맞춘 아키텍처 스타일
- Monolithic Design과 반대되는 개념
- 서비스를 재사용하거나, 독립적인 여러 서비스를 결합하여 복잡한 태스크 수행
- ex) 사용자 인증 서비스를 생성해서 모든 애플리케이션에서 재사용
특징
데이터(DB) 공유
ESB (Enterprise Service Bus)
여러 서비스가 있는 시스템과 통신할 때 사용할 수 있는 소프트웨어
기술과 관계 없이 서비스와 서비스 소비자 간의 통신을 설정
- 데이터 모델 변환, 연결성/메시징 처리, 라우팅, 통신 프로토콜 변환
- 요청을 각 서비스에 맞는 프로토콜로 변환
- 각 서비스로의 연결을 한 포인트로 중앙 집증
SOA vs MSA
- SOA는 데이터 공유, MSA는 데이터 복제, 세분화
- SOA는 통신을 중앙 집중하는 ESB, MSA는 경량 API를 통해 노출하는 자체 통신 프로토콜
Microservice
정의
소규모의 독립적인 서비스로 구성되어 있는 아키텍처
- 각 서비스는 잘 정의된 API를 통해 통신한다
- 독립적으로 배포 가능한 서비스
특징
- 자율성
- 다른 서비스의 기능에 영향을 주지 않으면서 개발, 배포, 운영, 확장
- 컴포넌트간 통신은 API를 통해
- 전문성
- 각 서비스는 특정 문제를 해결하는 데 중점을 둔다
이점
- 민첩성
- 개별 서비스를 소유한 팀을 육성
- 독립적이고 신속하게 업무 수행
- 개발 속도 향상
- 유연한 확장성
- 손쉬운 배포
- 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/
- 시스템이 정상적으로 사용 가능한 정도 [본문으로]
'MSA' 카테고리의 다른 글
[Event Streaming] Serialization / Deserialization (SerDe)을 하는 이유 (0) | 2024.06.12 |
---|---|
[MSA] Saga Pattern (0) | 2024.04.21 |
[MSA] Service Mesh (0) | 2024.04.21 |