Monolithic vs SOA & Microservice
Monolithic
모놀리스는 하나의 단위로 개발되는 일체 식 애플리케이션이다. 모든 서비스가 같은 DB를 바라보고 있다.
장점
비교적 간단한 구성으로 간편한 운용이 가능하고 CI/CD 파이프라인 구성이 쉽다.
단점
수정이 발생하면 단점이 극대화 된다.
모놀리스 아키텍처의 서비스들은 서비스간에 서로 의존성이 존재하기 때문에 시스템의 일부만 수정하더라도 전체 애플리케이션의 Build, Test, Packaging 과정을 거쳐야 한다.
그래서 간단한 수정에 오랜 down time이 존재하기 때문에 쉬운 수정이 불가능하다는 단점이 있다.
하나에 문제가 전체에 영향을 끼친다.
SOA & Microservice
사실 SOA와 MSA는 한 뿌리에 속한다.
서비스 지향 , 즉, 서비스 단위의 유연성을 확보하자는 점에서 둘은 같은 목표를 지향한다.
*MSA는 SOA를 구체화한 아키텍쳐 중 하나이다.
SOA
SOA는 서비스 단위로 개발을 하고, 개발된 서비스들을 공유함으로써 재가용성을 늘리고 유연성을 확보하는 것을 목표로 한다.
MSA
MSA는 (SOA보다 더 작은) 아주 작은 단위의 독립된 서비스로 소프트웨어를 구성함으로써 민첩하고 유연한 설계를 할 수 있도록한다.
서비스별로 캡슐화 해서 서비스 응집성을 높이고 서비스간 결합도를 최소화 한다.
MSA 구조
SOA는 최대한 개발된 서비스를 공유해서 재가용성을 높이는 방식이고, MSA는 독립된 서비스 개발이 가능하도록 하는 구조이다.
각 서비스의 독립성을 유지할 수 있기 때문에, 하나의 문제가 전체에 영향을 미치지 않는다.
* 하지만 SOA는 구체적이지 않고 실 성공사례가 많지않다.
SOA & MSA 차이 한눈에 보기
Reference
https://always-kimkim.tistory.com/entry/SOA와-MSA의-차이점