Infra/Kubernets
모놀리식 || 마이크로 서비스 의 이해
Box
2021. 10. 27. 16:37
728x90
모놀리식 아키텍쳐 (monolithic Architecture)
- 장점
- 어떤 기능 이든지 개발되어있는 환경이 같아서 복잡하지 않다.
- 쉽게 고가용성 서버 환경을 만들수 있다. ( 같은 어플리케이션으로 하나더 만들면 됨)
- end-to-end 테스트가 용이하다.(MSA의 경우 테스트에 필요한 서비스들을 모두 동작시켜야함)
- 단점
- 프로젝트의 크기가 커지면 어플리케이션 구동시간이 늘어나고 빌드, 배포, 시간도 길어진다.
- 조금만 수정해도 전체 빌드하고 배포해야된다.
- 많은 양의 코드가 몰려있어 유지보수가 힘들다.
- 기능별로 알맞는 기술,언어,프레임워크를 선택하기 까다 롭다.
마이크로 서비스(Micro Service)
- 장점
- 기능별로 마이크로 서비스를 개발하고, 작업 할당을 서비스 단위로 하면 개발자가 해당 부분을 온전히 이해할 수 있다.
- 새로 추가되거나 수정사항이 있는 마이크로 서비스만 빠르게 빌드, 배포가 가능하다.
- 해당 기능에 맞는 기술, 언어 등을 선택하여 사용할수있다.
- 일부분의 오류가 있으면 해당 기능에만 오류가 발생하고 그 부분만 빠르게 고쳐서 정상화가 가능하다.
- 단점
- 작은 여러 서비스들이 분산되어있기 때문에 모니터링이 힘들다.
- 서로를 호출하여 전체 서비스가 이루어지기 때문에 무조건 다른 서비스를 호출하는 코드가 추가되는데 이부분이 모놀리식 아키텍쳐의 개발보다는 까다롭다.
- 모놀리식보다 end-to-end 테스트시 과정이 더 많다.
- 모놀리식보다 통신관련 오류가 잦을 수 있다.