[MSA] MSA(Microservice Architecture)란?

jineey·2024년 10월 30일

MSA

목록 보기
1/36

시작하기 앞서,
인프런 강의 및 다양한 블로그를 참고하여 MSA를 공부하면서 작성한 블로그임을 안내드립니다.

🔗 인프런 강의 소개
Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

Cloud Native

📌 CNCF (Cloud Native Computing Foundation)

CNCF의 주요 구성 요소로 다음 4가지를 언급

1. CI/CD

  • 자동으로 통합/빌드/테스트/배포

2. DevOps

  • Microservices 문제 발생 시 수정해서 바로 배포
  • Development + QA + Operations 역할

3. Containers

  • 하나의 애플리케이션들을 구성하는 Microservice를 클라우드에서 사용하기 위한 도구

4. Microservices

  • 애플리케이션이 구성하는 잘 나뉘어진 경계에 의해 서비스를 분리하여 개발하고 운영하기 위한 아키텍처(Architecture)

MSA Architecture


기존 모놀리식 아키텍처(Monolithic Architecture)는 하나의 프로젝트에 모든 기능을 담은 것을 의미한다. 코드 베이스가 커질수록 개발 및 배포가 복잡해진다.

마이크로서비스 아키텍처(Microservices Architecture)는 여러 개의 작은 서비스로 구성되며, 각 서비스가 독립적으로 개발 및 배포된다. 독립적인 개발 및 배포로 인해 확장성과 유지관리가 쉬워진다.

🔗 출처: [MSA] 마이크로서비스 아키텍처(MSA)란 뭘까?

📌 특징

  • 서비스 간의 결합도를 낮추어 변화에 능동적으로 대응 가능
  • 각 독립된 서비스가 노출된 REST API 사용

📌 흐름


(1) 클라이언트 또는 다른 서비스가 다른 서비스를 호출
(2) 모든 호출에 대해서 API Gateway가 응답하며, API Gateway가 각 서비스의 주소를 호출
(3) 클라이언트 또는 다른 서비스는 API Gateway를 통해 요청했던 서비스를 응답 받음

💡 참고

※ Discovery, LB(Load Balancer) 등 아키텍처 구성이 다음 사진처럼 더 다양해질 수 있음.

profile
새싹 개발자

0개의 댓글