새소식

[5분 내로] 강의실/📋 Spring Cloud MSA란?

[5분 내로] 모놀로식 아키텍처의 개발, 운영 그리고 장단점을 알아보자

  • -
728x90

 

안녕하세요. 팀드모네입니다.

오늘은 모놀로식 아키텍처의 개발, 운영 그리고 장단점에 대해서 알아보겠습니다.

MSA는 과거 모놀리식의 아쉬운 점을 해결하기 위해서 나타난 아키텍쳐입니다.

따라서 MSA를 이해하려면 모놀리식을 알아야하므로 모놀리식에 대한 설명을 먼저 진행하겠습니다.

 

1. 사업 초기에는 개발자가 1명이었다.

- 개발자가 소스코드를 만들어서 톰캣을 통해 로컬에서 실행함.

- 하나의 DB에 모든 정보가 저장됨.

Hello Wolrd!

👨‍💻 모놀리식 아키텍쳐의 장단점?

장점

- 개발이 단순 (repository에서 프로젝트 하나만 체크아웃 받아서 띄우면 됨)
- 배포가 단순 (war도 하나만 배포하면 됨)
- Scale-out이 단순 (서버를 더 도입하면 됨)
 
단점
- 무겁다 (100MB가 넘어가는 소스코드. 더 이상 IDE에서 실행이 안되는 순간이 찾아옴.)
- 어플리케이션 시작이 오래 걸림 (짧으면 20분... 1시간까지도 걸린다)
- 신기술 도입이 어렵다. 차세대 프로젝트(전부 새로 만들기)를 고려하게 된다.
- 서버 혹은 프로세스 장애가 발생하면 모든 서비스가 죽는다.
* 월요일 아침에 프로세스 장애로 온라인 쇼핑몰이 죽는다고 생각해보자. 피해는 정말 끔찍하다.
 

👨‍💻 과거 모놀리식의 운영 시나리오

1. 개발자가 5명이 됬다.

- 각 개발자가 소스코드를 만들어서 톰캣을 통해 로컬에서 실행함.

- 하나의 DB에 모든 정보가 저장함.

- SCM(git, svn)을 통해 형상관리를 한다.


2. 다 만들었으니, 상용으로 서비스를 오픈을 한다.

- (클린배포) 완성된 코드를 넣고 톰캣을 재기동한다.

* 무중단 배포는 불가능 하더라! 배포할 때는 서비스가 중단되므로, 항상 새벽에 배포해야한다.

 


3. 배포를 할 때마다 서비스가 멈춰버리니, 우리는 

HA구성을 고민하게 된다.

톰캣을 한대 더 구입하고 

Load Balancer(L4)를 배치한다.

* 그러면 지속적으로 구동되는 시스템이 된다.


4. 서비스가 흥해서 동시접속자 1000명을 넘어가기 시작했다!- 그러면 서버도 더 도입해야 하고, Load Balancer

(L4)에 새로운 서버의 URL도 넣어줘야 한다.

 

서버가 너무 많아서 수작업으로 배포하기 쉽지 않은 시점이다. 배포방식으로 Jenkins를 고려하게 된다.

... 생략
 
기존의 서비스가 너무 거대해졌을 때..
우리는 MSA 도입을 검토하기 시작한다.

Continue..

 

다음 포스팅 보러가기 -> https://doctorson0309.tistory.com/636?category=855122

 

[5분 완벽설명] MSA의 특징과 주의사항 그리고 도입 이유

안녕하세요. 팀드모네입니다. 지난시간으로 사전 설명이 끝났으니, 오늘은 본격적으로 MSA(Micro Service Architecture)가 무엇인지 알아보도록 하겠습니다. 👨‍💻 MSA(Micro Service Architecture)란? - 시스템

doctorson0309.tistory.com

 


reference : https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm

reference : https://tv.naver.com/v/2292653

광고 링크 : https://ogx4.com

 

2023년 온라인 게임 전시회 - 온라인 게이머엑스포

에디터가 선정한 재미있는 게임들이 모인 온라인 전시회입니다! 새로운 게임을 발굴해보세요!

ogx4.com


 

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.