Microservice Architecture

이영근·2020년 10월 31일
0

비교
1. 모놀리식 아키텍처
2. 마이크로서비스 아키텍처


  • 모놀리식 아키텍처

마이크로서비스가 아닌, 전통의 아키텍처를 지칭하는 의미로 생겨난 단어

1) 장점

  • 기존 통합 개발 환경과 툴을 이용한 개발 용이

  • End-to-End 테스트 용이

  • 빌드 결과를 WAS에 올리는 구조로 배포 용이

  • 로드 밸런서를 활용하여 서버 부하를 분산하므로 시스템 확장 용이

2) 단점

  • 새로운 기능 구현 시 코드 전체를 이해해야 하므로 코드 관리가 어려움

  • 시간이 지날수록 빌드 및 배포 시간 증가

  • 모듈별 하드웨어 확장이 어려움

  • 일부 오류 발생 시 모든 프로세스에 영향


  • 마이크로서비스 아키텍처

대형 소프트웨어 프로젝트의 기능들을 작고 독립적이며 느슨하게 결합 된 모듈로 분해하여 서비스를 제공하는 아키텍처

1) 특징

  • 서비스 별로 별도의 데이터베이스 사용

  • 데이터의 특성과 서비스의 특수성에 따라 효율적인 데이터베이스 선택 사용 가능

2) 장점

  • 폴리그랏 아키텍처 : 여러 기술을 유연하게 사용하여 구성 가능

  • 특정 서비스에 대해 선택적, 탄력적 확장 가능

  • 서비스 간 영향 제한

  • 빌드 및 테스트 시간 단축

3) 단점

  • 성능 이슈 : 서비스 간 인터페이스로 Restfull API를 주로 사용하므로 모놀리식 아키텍처에 비해 성능 상 문제가 발생할 수 있음

  • 관리 포인트 증가 : 서비스별 서버 수 만큼 로깅, 모니터링, 배포, 테스트, 클라우드 환경에서의 관리 부담 증가

자동화 및 모니터링 환경 구축으로 해결 가능



2. 마이크로서비스 아키텍처 설계

'서비스 개발 시 도메인이 중심이 되는 설계'

  • 도메인

정보와 활동의 영역, 애플리케이션 내 로직들이 관여하는 데이터와 기능의 영역


  • 구성

  • 환경 설정 : 환경에 구애 받지 않고, 환경 정보를 참조할 수 있는 기능 제공

  • 서비스 등록 및 감지 서빗 : 서비스 게이트웨이가 자동 인지할 수 있도록 지원

  • 서비스 게이트웨이 : 요청에 대응하는 적절한 마이크로서비스로 연결

  • 서킷 브레이커 : 다른 기능으로 대체 수행시켜 장애를 회피하는 기능

  • 큐잉 서비스 : 마이크로서비스 간 데이터 전달 및 느슨한 결합을 위해 사용



[강의](https://kbstar.edumit.co.kr/)
강의택 강사
profile
개발자

0개의 댓글