- 모놀리식 아키텍처(Monolithic Architecture)

기존의 모놀리식 아키텍처는 모든 것을 최소 필요 사양에 맞게 
규격을 맞추어놓고 하나의 큰 시스템안에 다 때려박아 서비스를 제공하는 아키텍처다.


 서버라든지 인력 등 서비스를 제공&유지하기 위해 최소 조건으로 맞추어져 있다보니,
새로운 서비스를 도입하려고 하면 기존의 운영 인력이 아닌 프로젝트를 위한 새 인력이 필요하게 되고, 그만큼 추가 비용과 시간도 많이 소모된다.

신규 서비스를 위해 투입 된 새 인력은 구조와 로직, 리스크에 대해 파악할 시간이 필요하고, 그러다보면 새로운 서비스의 제공 시기를 놓쳐버릴 수 있다.

 

그리고 여러명의 개발자가 하나의 프로젝트 패키지에서 작업함으로써 발생하는 부작용을 받아들여야 한다.

예를들어, 백 명이 소스 커밋을 했는데 한 명의 실수로 인해 백 명의 소스를 모두 rollback 시켜야 하는 상황 같은 것을 예로 들 수 있다.

 

모놀리식 아키텍처장점은  '개발 > 테스트 > 배포 > 반영'까지가 simple하다는 것이지만, 애플리케이션 확장이 유연하지 못하고, 신규 서비스 추가시 시간과 비용 또 리스크가 많이 발생한다.

 


- 마이크로서비스 아키텍처(Microservice Architecture)

 큰 시스템을 독립적으로 서비스가 가능한 여러개의 작은 시스템으로 나누는 것. 

 각각의 영역이 독립적으로 서비스를 수행하기 때문에 개별적으로 배포가 가능하고, 리스크도 해당 영역에 한정된다.


 결과적으로 애플리케이션의 확장을 용이하게 하고, 개발 속도를 앞당겨 새로운 서비스나 기능에 대한 출시 시간을 앞당길 수 있게 해준다.

 

이커머스 의 경우, 

전시 API Server
상품 API Server
주문 API Server 등 application을 서비스 별로 분할시키는 것..

 


그럼 각각의 서비스에서 발생하는 데이터는 어떻게 처리 ?
- 여러 분산된 API서버들로부터 들어오는 요청을 한 곳으로 모아서 그것을 분석하는 새로운 영역을 만드는 방법이 있음..

 

'IT기술' 카테고리의 다른 글

배포전략 (롤링, 카나리, 블루-그린)  (0) 2021.02.25
React 란?  (0) 2020.01.19
REST API  (0) 2020.01.19

+ Recent posts