이번 포스팅에서는 MSA가 무엇인지 한번 자세히 알아보도록 하자.
Micro Service Archirecture의 줄임말로써
작고, 독립적으로 배포가 용이한
여러가지의 기능수행 서비스로 구성된 프레임워크라고 할 수 있겠다. MSA(마이크로서비스)는 앞서 언급한것처럼 온전하게 독립적인 배포가 가능하며, 경량화되고 독립적인 여러개의 서비스를 조합하여 애플리케이션을 구현하는 방식으로 서비스마다 자체 데이터베이스를 가지고 동작하기때문에 개발, 빌드, 배포에 이르기까지 효율적인 수행이 가능하다는 특징이 있다.
MSA가 등장하게 된 배경을 알기 위해서는 MSA이전에 사용했던 Monolithic Archirecture에 대해서 알아둘 필요가 있다.
Monolithic Archirecture(모놀리식)은 소프트웨어의 모든 구성요소가 한 프로젝트에 통합되어 있는 형태이며, 모듈별로 개발을 하고 개발 완료된 웹 어플리케이션을 하나의 결과물로 패키징하여 배포되는 형태를 이야기한다. 주로 소규모의 프로젝트에 주로 사용된다.
애플리케이션 개발 초기에는 Monolithic 방식을 사용하여
전체 소스코드를 하나의 배포 유닛(war 또는 ear)으로 내장
시켰다. 하지만, 기존의 애플리케이션에 사소한 변경사항이 발생하게 되면 *QA(Quality Assurance)주기에 따라 업데이트를 해야 하거나, 일부 서비스 업데이트로 오류가 발생했을때도 전체 시스템을 중단하고 오류를 해결해야 했기에 다운타임이 발생하는 일이 빈번하게 일어났다.
이러한 문제를 해결하고자 애플리케이션의 핵심 서비스 기능을 각각 분할한 프레임워크, MSA라는 방식이 생겼으며, 각 서비스들을 독립적으로 구축, 배포할 수 있게 되었다.
✨ MSA 장점
🧨 MSA 단점
✨ Monolithic 장점
🧨 Monolithic 단점
[참고글 출처]
https://wooaoe.tistory.com/57
https://cocoon1787.tistory.com/746