2016년 10월 13일 목요일

메시 앱과 서비스 아키텍처의 동향 분석 - 3

마이크로 서비스 아키텍처 


마이크로 서비스 아키텍처는 하나의 애플리케이션을 여러 개의 작은 애플리케이션으로 쪼개고, 수정과 조합이 가능하도록 만든 아키텍처다. 애플리케이션을 특정 형태로 나누어 추상화하기 때문에 애플리케이션을 현 상태로 유지하면서 세부적인 구현 내용을 손쉽게 개선하고 변경할 수 있다. 모든 애플리케이션을 마이크로 서비스 아키텍처로 구성할 필요는 없다. 일반적으로 애플리케이션의 배포가 오래 걸리는 경우, 하나를 수정하면 전체 기능을 다시 살펴봐야 하는 경우, 수십 개의 기능을 포함한 애플리케이션인 경우에 마이크로 서비스 아키텍처로 구축하는 것이 좋다.  


<그림4> 마이크로 서비스 아키텍처의 예 
 
출처: slideshare - Microservice Architecture  


마이크로 서비스 아키텍처는 서비스의 규모가 커지고 복잡할수록 장점이 많아진다. 분리한 서비스(애플리케이션)가 독립적이기 때문에 변경이 용이하고 다른 서비스에 미치는 영향이 적다. 그리고, 서비스 단위 배포가 가능하여 배포 부담이 적고, 부하가 집중되는 경우 해당 서비스만 스케일 아웃하면 되기 때문에 불필요한 자원 낭비를 줄일 수 있다. 특히, 서비스 특성에 맞게 자원을 할당할 수 있어 효율적인 자원사용이 가능하다. 반면, 마이크로 서비스 아키텍처는 기존의 아키텍처에 비해 서비스 간 통신 모듈이 추가로 필요하다는 단점이 있다. 이것은 단순히 코딩 양이 늘어나는 것뿐만 아니라 사용자 요청에 대한 응답 속도에 영향을 미친다. 그리고, 데이터베이스를 분산해야 하기 때문에 트랜잭션 처리가 추가로 필요하다. 

                                                                                        자세히 보기

댓글 없음 :

댓글 쓰기