티스토리 뷰

도커, 쿠버네티스를 이해하기 위해서 마이크로 서비스 아키텍쳐의 대한 이해는 필수적이다.

 

마이크로 서비스 아키텍처를 이해하기 위해서는 모노리틱 아키텍쳐를 알아야한다.

 

 

대략적인 개념도

 

 

모노리틱 아키텍쳐는 기존의 소프트웨어 개발 방식으로써 각자의 기능들을 하나의 애플리케이션에 담는 것을 말한다.

 

예를들어 당신이 어떤 쇼핑사이트를 구축한다고 가정해보자.

 

당신은 하나의 패키지파일 안에 사용자관리, 상품관리 등과 같은 기능들을 담아 둘 것이고 그것을 하나의 db에 테이블로 분리해서 넣을것이다.

 

다른관점으로 보면 들어보면 당신은 하나의 OS위에 여러가지 애플리케이션들을 개발하고 하나의 DB를 연동하여 관리 할 수 있다. 

 

이러한 방식은 하나의 애플리케이션이 모든 기능을 담고 있으므로 관리가 용이하며 배포하는 과정을 비롯한 모든 과정이 그리 어렵지 않다.

 

그러나 대용량의 웹사이트를 구축하거나 끊임없는 수정이 필요한 프로그램을 만들었다고 가정해보자 애플리케이션 내의 각 기능들이 묶여있기 때문에 하나의 기능이 문제를 일으키면 다른 기능들이 연달아 문제를 일으킬 수 있고 또한 기능 하나의 수정이 있어 배포를 진행할때, 모든 기능을 재배포 해야하는 문제점이 생긴다.

 

이러한 문제점때문에 모노리틱 서비스 아키텍쳐에서 마이크로 서비스 아키텍쳐로 많이 넘어가고있다.

 

 

마이크로 서비스 아키텍쳐는 각 기능들을 독립적인 존재로 만들어 위에 말한 문제점들을 해결 할 수 있게 해준다.

 

마이크로 서비스 아키텍쳐에서는 각 기능들은 컨테이너라는 단위로 관리된다.

 

컨테이너는 각자의 os를 가지고있고 그에 연동되는 각자의 db를 가질 수 있다. 완전히 독립적인 개체로 존재 함으로써

각 컨테이너간의 간섭을 최소화한다.

 

각 애플리케이션들이 연동을 하고자 할때는 그들만의 네트워크를 따로 가지며 각자 하나의 서버처럼 움직이기 때문에 네트워크 그룹단으로 통신하며 데이터를 주고받는다.

 

마이크로 서비스 아키텍쳐를 이용하면 보안상으로도 안정적이고 서비스 운영적인 측면에서도 다양한 이점을 가진다.

 

가장 큰 장점으로는 역시 배포에 있다. 각자의 독립적인 개체임으로 각자 배포가 가능하고 그것을 관리해주는 하나의 시스템만 있으면 된다.

 

이러한 마이크로 서비스 아키텍쳐를 사용하기 위해서는 부가적인 여러 기능들이 필요한데 그 내용들은 앞으로 클라우드 게시물에서 다룰 예정이다.

 

 

 

 

댓글