마이크로 서비스 아키텍쳐란?
Microservices
애플리케이션 구축을 위한 아키텍처 기반의 접근 방식
애플리케이션을 상호 독립적인 최소 구성 요소로 분할함.
모든 요소가 독립적이며 연동되어 동일한 테스크를 완수.
즉,
대형 소프트웨어 프로젝트의 기능들을
작고 독립적이며 느슨하게 결합 된 모듈로 분해하여 서비스를 제공하는 아키텍쳐.
개별 모듈은 개별적인 작업을 담당하며 간단하고 보편적으로 엑세스 할 수 있는 API를 통해 다른 모듈과 통신.
각 기능을 서비스라고 부르며, 독립적으로 구축하고 배포할 수 있다.
이는 개별 서비스가 다른 서비스에 부정적 영향을 주지 않으면서 작동할 수 있음을 의미.
서비스 지향 아키텍처는 애플리케이션을 별개의 재사용 가능한 서비스 단위로 분할하며 ESB를 통해 통신.
따라서 서비스의 구축, 테스트, 수정을 동시에 수행할 수 있기 때문에 더 이상의 모놀리식 개발 주기는 필요가 없음.
모놀리식과 마이크로 서비스 방식 비교
마이크로 서비스 방식은,
- 모놀리식 애플리케이션에 비해 더욱 손쉽게 구축, 테스트, 배포, 업데이트할 수 있음.
- 또한 애플리케이션을 핵심 기능으로 세분화하는 방식임.
[참고] 모놀리식(Monolithic)
전체 애플리케이션의 소스 코드를 하나의 배포 유닛(.war 또는 .ear 등)으로 내장하는 방식.
다시 말해, 모든 요소를 하나의 애플리케이션에 구축.
일부 애플리케이션의 업데이트로 인해 오류가 발생할 경우,
전체를 오프라인으로 전환하고 운영 규모를 축소시킨 다음 문제를 해결해야함.
이러한 방식은 소규모 애플리케이션에서 여전히 실행 가능하지만, 성장하는 기업들은 다운타임을 감당할 수 없음.
마이크로 서비스 아키텍쳐의 장점?
분산형 개발을 통해 팀의 역량과 일상적인 업무 능력을 향상시킴.
예를 들어, 동시에 여러 마이크로서비스를 개발하는 것도 가능.
다시 말해, 동일한 애플리케이션 개발에 더 많은 개발자들이 동시 참여할 수 있으므로
개발에 소요되는 시간을 단축할 수 있으며 프로젝트에 문제가 발생하였을 때의 리스크도 적어짐.
서비스가 변경(update)될때 변경이 있는 서비스 부분만 따로 배포가 가능
🔽 참고한 링크들
'기타 > 클라우드' 카테고리의 다른 글
Docker에 MariaDB설치하기 + 에러 해결법(MySQL과 Mariadb port 겹침 에러 - Ports are not available) (1) | 2021.07.14 |
---|---|
도커(Docker)와 쿠버네티스(Kubernetes) (0) | 2021.07.07 |
컨테이너 오케스트레이션 부터 쿠버네틱스 까지 (0) | 2021.07.07 |
Docker(도커)란? (0) | 2021.07.07 |
클라우드 서비스가 제공하는 서비스 모델 IaaS, PaaS, SaaS, BaaS (0) | 2021.07.01 |