Microservices Architecture 란?

2022. 6. 1. 21:00IT/Concept

반응형

By Martin Fowler

The microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery.

-Martin Fowler


1. 개요

마이크로서비스 아키텍처란 어플리케이션 개발을 위한 아키텍처 스타일로, 하나의 큰 어플리케이션을 여러 개의 작은 서비스 단위 어플리케이션으로 쪼개 변경과 조합이 용이하도록 만든 구조다.

 

하나의 큰 어플리케이션 형태, 즉, Monolithic Architecture(모놀리틱 아키텍처)는 초기 개발이 수월하며 배포가 간단하다는 장점이 있다. 그러나 1.일부 오류가 전체에 영향을 미치고, 2.조그마한 수정 사항이 발생하면 전체를 다시 빌드하고 배포해야하거나, 3.기술 스택이 한 번 정해지면 바꾸기 어렵거나, 4.각 컴포넌트의 독립적 확장이 어려운 등, 프로젝트의 규모가 커지면서 유지 보수가 어려워지는 단점이 있다.

 

이러한 모놀리틱 구조의 단점은 클라우드 컴퓨팅이 대중화되면서 더욱 치명적으로 작용하게 됐다.

때문에 현재 마이크로서비스의 위상이 높아지고 있다.

 

2. 장단점

마이크로서비스는 모놀리틱 구조와 반대로 1.개별 서비스의 확장이 용이하고 2.어떤 부분에 문제가 생기면 해당 부위의 신속한 격리를 통해 전체 서비스에 영향을 적게 미칠 수 있으며 3.새로운 기술의 적용 및 유지보수가 용이하다는 장점이 있다.

 

그러나 1.성능 관점에서 latency 및 통신 비용이 증가할 수 있으며 2.decentralized된 data 관리 등으로 인해 프로젝트 관리 비용이 증가할 수 있다. 때문에 대부분의 클라우드 서비스를 제공하는 플랫폼 기업들은 이러한 마이크로서비스의 결점을 해소할 수 있도록 복잡한 관리를 대신 해주며 이에 대한 대가를 받는다.

 

3. 사용

Java를 사용한 Spring Boot 아키텍처의 경우가 대표적인 마이크로서비스 아키텍처의 한 유형에 속한다.

이처럼 마이크로서비스는 이미 널리 사용되고 있는 아키텍처다.

앞으로도 클라우드 컴퓨팅의 활용이 증가함에 따라 더욱 인기가 많아질 가능성이 있다.

 

초기에 프로젝트를 시작할 경우, 빠른 개발 및 배포를 위해 모놀리틱 구조를 사용하다가도 프로젝트의 규모가 커지게 되면 마이크로서비스 구조를 채택하는 것이 바람직해보인다.


더 자세히 알아보기

https://martinfowler.com/articles/microservices.html

 

 

 

 

-학습을 진행하며 남기는 지식 포스팅-

 

-부족한 설명이 있다면 부디 조언 부탁드립니다-

 

 

 

 

이 포스팅은 쿠팡 파트너스 활동의 일환으로,

이에 따른 일정액의 수수료를 제공받습니다

반응형

'IT > Concept' 카테고리의 다른 글

웹의 역사, 그리고 프론트엔드  (0) 2022.07.28
Computing Systems, 그리고 추상화  (0) 2022.06.14
React의 Higher-order Component란?  (0) 2022.05.06
CSS의 BEM이란?  (0) 2022.04.27
React Router란?  (0) 2022.04.25