티스토리 뷰


최근 업무상으로도 그렇고 트렌드도 그렇고 마이크로 서비스와 모놀리식 서비스에 대한 관심이 많이 생겼다. 물론 결론은 이미 정해져있다. 항상 모든 개발 글에 그렇듯 적당히~가 중요할 것이다. 



1. 모놀리식 VS 마이크로 서비스 아키텍처

모놀리식 VS 마이크로 서비스 아키텍처

이 그림 한장만 이해하면 될 것 같다. 모놀리식 서비스, 모놀리식 아키텍처는 서비스나 시스템이 한데 모여있는 구성을 말한다. 

 

마이크로 서비스는 기능 별, 시스템 별로 분산 구축 하는 것을 말한다.

 

다 모여있는 시스템과 다 분리 되어있는 시스템 각기 장단점이 있다.

 

2 모놀리식 서비스 아키텍처

  • 분산처리가 어렵다.
  • 코드 관리가 어렵다.
  • 신 기술 사용이 어렵다.
  • 한가지 언어만 사용해야한다.
  • 고가용성 서버 환경 구성이 용이하다. ( 스케일 아웃, 컨테이너 하나 더)
  • 빌드, 배포 시간이 길다.
  • 기능 추가 시 전체 QA가 필요
  • 부분적 스케일 아웃 어려움
  • 시스템 안정성이 떨어진다(?)

 

3 마이크로 서비스 아키텍처

  • 공통, 공유 자원 접근이 어렵다.
  • 배포와 실행이 어렵지만 빠르게 가능하다.
  • 분산시스템 구현이 어렵다.
  • 관리와 모니터링이 어렵다.
  • 효율적인 자원 사용 가능
  • 서비스 간 통신에 대한 처리 필요
  • 서비스 간 트랜잭션 처리가 어렵다.
  • API GateWay 서버를 둘수 있다. 장점이자 단점
  • 마이크로 서비스를 구성하려면 도메인 지식이 많아야 한다.
  • 대형 시스템, 즉 돈이 많이 든다.

API Gateway 서버 같은 경우 느슨하게 잘 구축되어있지 않으면 관리포인트가 늘어나면서 개발해야할 골칫덩어리가 하나 늘어날 수 있다. ㅜㅜ


개인적인 사견과 서비스 아키텍처 정리

 

수년전부터(?) 클라우드와  CI/CD(지속적 통합/ 지속적 제공)의 발전으로 버프를 계속 받는 거 같더니 마이크로 서비스 아키텍처의 입지가 하늘을 찌를 듯 하다. 

 

채용공고에 떡하니 MSA 유 경험자라고 올라와있는 곳이 한두군데가 아니다. 머 나와는 전혀 상관없는 거겠지만...ㅠㅠ

 

어느정도 중간 규모가 되는 정도의 시스템만 운영하더라도 모놀리식 아키텍처만으로 시스템이 이루어져있기가 더 힘들 것 같은데, 요즘 얘기하는 MSA는 그정도가 아니라 정말 시스템 단위 모듈 마다 별도로 있어야 할 것 같은 느낌으로 말하는 것 같다.( 넷플릭스는 수백개라고... )

 

또, 여기에 밝힐수는 없지만 어딘가는 마이크로 서비스가 좋다고 해서 응집도가 높은 것을 어거지로 찢어 만드는 시스템이 보이는데 그 뒤가 보이는 것 같아 안타깝기도 하다...

 

모놀리식 운영에서 모듈이나 라이브러리 수준으로 설계한 것을 마이크로 서비스에서는 별도의 시스템으로 분리 하는 그림을 생각하면 맞는 듯 한데 그 어떤 글이나 자료를 봐도 좀 더 보수적으로... 점진적으로 구성하는것이 좋다고 한다. ( 먹어본 사람이 먹는다고... 천천히 한숟가락씩 뜨는 거다. )

 

조직도 마이크로서비스를 운영할 수 있을 정도로 성숙해야 하는 과제도 있고, 그 옛날 SOA를 공부했던 것과 무엇이 다른건지도 알아봐야겠다. 

 

지금 느끼기에는 ... 어느정도 모놀리식 서비스 아키텍처를 잘 관리하면 아래처럼 깔끔하게 할 수 있다고 생각하는데...

 

 

 

서비스가 커지고 복잡해지면서... 점점 시스템이 엉키게 되는 것 같다. 

 

 

그러다 이정도쯤 되면 어떤 선 하나 뽑을때 기도를 안할수가 없게 될 것 이고, 추가도 힘들고 관리도 힘들고 ... 할 것 같다. 

 

요때 비슷한 녀석들끼리 묶어서 랙을 다시 만들어주고 정리해주면 마이크로 서비스랑 비슷한게 아닐까... 라고 생각을 해본다.

 

 

 

내게는 기존 레거시 시스템을 어떻게 구성해야 베스트 프랙티스가 되는지 고민해보는 것도 종종 사색에 잠길만할 일인거 같다.


참고 자료 / 뉴스

 

마이크로서비스는 답이 아니었다

 

"마이크로서비스는 답이 아니었다"··· 세그먼트가 모놀리틱으로 돌아온 이유 - CIO Korea

다른 많은 기업과 마찬가지로, 데이터 스타트업 세그먼트(Segment) 역시 오래된 인프라스트럭처로 인한 문제 때문에 마이크로서비스(microservice)로 눈을 돌렸다. 하지만 곧 단일 구조(monolithic) 아키�

www.ciokorea.com

https://12bme.tistory.com/517

 

[MSA] 마이크로서비스 심화(1)

고전적인 소프트웨어 엔지니어링 실무에서는 잘 설계된 시스템의 바람직한 특성으로 높은 응집력과 느슨한 결합력을 강조한다. 이런 특성을 가진 시스템은 유지 및 관리가 쉽고 변화에 대처하�

12bme.tistory.com

https://bcho.tistory.com/948

 

대용량 웹서비스를 위한 마이크로 서비스 아키텍쳐의 이해

마이크로 서비스 아키텍쳐 (MSA의 이해) 조대협(http://bcho.tistory.com) 배경 마이크로 서비스 아키텍쳐(이하 MSA)는 근래의 웹기반의 분산 시스템의 디자인에 많이 반영되고 있는 아키텍쳐 스타일로, �

bcho.tistory.com

 


댓글
최근에 올라온 글
최근에 달린 댓글