728x90
이번 포스팅에서는 MSA에 대해 공부하는 내용을 적어보려고 합니다.
1. 모놀리식 아키텍처
- 개념
- 모듈별로 개발한 뒤 개발 완료 시 웹 어플리케이션을 하나의 결과물로 패키징하여 배포하는 형태를 말한다.
- 웹의 경우 .war로 파일을 말은 뒤 WAS에 배포하는 형태이다.
- 장점
- war파일만 빌드하면 되서 간편합니다.
- 단점
- CI(지속적인통합)와 CD(지속적인배포)가 어렵다.
- 모듈 수정 시 다른 모듈이 사용 불가능한 상태가 발생한다.
2. 마이크로서비스
- 소프트웨어 개발 기법 중 하나로 애플리케이션의 결합된 서비스의 모임으로 구조화하는 서비스이다.
- 이는 서비스 지향 아키택처(SOA) 스타일의 일종이다.
3. SOA
- 개념
- SOA란 서비스 지향 아키택처로 대규모 컴퓨터 시스템을 구축 시 소프트웨어 기능을 서비스로 판단하고 해당 서비스가 네트워크상에 연동하여 시스템 전체를 구축하는 방법론이다.
- 이 방법은 비지니스 로직과 기술을 추상화하여 도메인간의 느슨한 결합을 유도한다.
- 특징
- 동적으로 바인딩된다.
- 독립된 모듈이다.
- 플랫폼 간에 상호 운용이 가능하다.
- 네트워크 주소 접근 가능한 인터페이스를 가진다.
- 위치 투명성을 가진다.
- 자가치유를 지원한다.
4. MSA?
마이크로 서비스 아키텍처라고 한다.
모놀리식 애플리케이션 형태에서 더 작고 상호 작용이 가능한 서비스 세트로 분할한 형태를 말한다.
각 백엔드 서비스는 REST API를 노출하고 대부분의 서비스는 다른 서비스에서 제공하는 API를 사용합니다.
각 서비스 인스턴스는 Docker 컨테이너입니다.
컨테이너는 여러 cloud VM에서 실행됩니다.
마이크로서비스 아키텍처 패턴은 애플리케이션과 데이터베이스 간의 관계에 상당한 영향을 미칩니다.
단일 데이터베이스 스키마를 다른 서비스와 공유하되 각 서비스에 자체 데이터베이스 스키마가 존재한다.
마이크로서비스의 이점을 얻기 위해서는 서비스당 데이터 베이스 스키마가 있어야 느슨한 결합이 보장되며
이에 따라 데이터 중복이 존재하는 경우가 많다.각각의 서비스가 오직 자신과 상호작용하는 DB를 가지며 이에 따라 DB의 종류도 다르게 가져갈 수 있습니다.
5. 모놀리식과 MSA의 공통점
- 어플리케이션을 실행하는 서버를 추가하여 수평적으로 확장하고 클라이언트에서 요청이 들어올 경우 중간에 로드 밸런서를 두어 스케일 아웃 방식으로 확장한다.
- 스케일 아웃(scale-out) : 여러대의 서버로 나누어 일을 처리하는 방법
- 스케일 업(scale-up) : 서버가 더 빠르게 동작하게 하기 위해 하드웨어의 성능을 올리는 방법
- 로드 밸런서(load Balancer) : 스케일 아웃의 장점 중 하나로, 여러대의 서버에 균등하게 Traffic을 분산시켜주는 역할을 담당
6. MSA의 장점
- 복잡성 문제를 다룹니다.
- 아키텍처를 사용하면 해당 서비스에 중점을 둔 팀에서 각 서비스를 독립적으로 개발 가능하다.
- 마이크로서비스 아키텍처 패턴을 통해 각 마이크로서비스를 독립적으로 배포할 수 있습니다.
ref. 참고자료
728x90
'Information > 정보 및 기사 리뷰' 카테고리의 다른 글
국내 IT 업계의 권고사직에 대한 기사 정리 (0) | 2023.02.10 |
---|---|
2023년 가트너에서 발표한 10대 전략 트랜드를 공유드립니다. (0) | 2023.01.27 |
[세무민의 IT 소식] : NFT를 직접 만들어보기 (0) | 2022.01.25 |
[세무민의 IT 소식] : Log4j 신규 취약점에 따른 이슈 (0) | 2021.12.20 |
[세무민의 IT 소식] : Log4j 취약점 관련 내 생각 및 리뷰 (0) | 2021.12.14 |