inflearn logo
강의

Course

Instructor

Understanding Microservices (with MSA Patterns)

모듈형 모노리스의 컨테이너화

433

garam427027

4 asked

1

모듈형 모노리스도 컨테이너화 할 수 있다. 쿠버네티스의 꼭 마이크로서비스만 올리는게 아닌 모노리스도 그냥 올릴 수 있다. 그것만으로도 확장성,배포성,탄력성이 보장이 되기도 한다. 라고 하셨었는데

이 부분에대해서 조금 더 상세하게 알고싶어서 질문드립니다.

 

아키텍처 msa

Answer 1

1

han jeong heon

좀더 상세히 말씀드리면 마이크로서비스가 아닌 모노리스 애플리케이션을 컨테이너화하고 이를 Kubernetes에 배포하는 것은 마이크로서비스로 변환하여 배포하는 장점보다는 못미치지만 그 정도로써의 충분한 이점( 확장성, 배포 및 탄력성 측면에서) 이점을 제공합니다. 장점은 다음과 같습니다.

  1. 확장성: Kubernetes를 사용하면 수요에 따라 컨테이너 인스턴스를 추가하거나 제거하여 애플리케이션을 수평으로 확장할 수 있습니다. Kubernetes에 컨테이너화되고 배포된 모놀리식 애플리케이션을 사용하면 이러한 확장성의 이점을 누릴 수 있습니다. 내부 모듈이 독립적으로 확장되도록 설계된 경우 모놀리스의 개별 구성 요소(모듈)을 쉽게 분리하여 확장하거나 더 많은 컨테이너 인스턴스를 추가하여 전체 모놀리스의 크기를 조정할 수 있습니다.

  2. 배포: Kubernetes는 여러 노드 또는 클러스터에 애플리케이션을 배포하는 기능을 제공합니다. Kubernetes에 모놀리식 애플리케이션을 배포하면 여러 노드에 분산하여 내결함성과 가용성을 향상시킬 수 있습니다. 또한 Kubernetes는 로드 밸런싱 및 서비스 검색과 같은 기능을 제공하여 배포작업을 더욱 향상시킬 수 있습니다.

  3. 탄력성: Kubernetes는 HPA(Horizontal Pod Autoscaler)와 같은 기능을 통해 수요에 따라 컨테이너에 할당된 리소스를 자동으로 조정할 수 있습니다. 즉, 모놀리식 애플리케이션은 트래픽이나 리소스 사용량의 변화에 ​​따라 동적으로 확장하거나 축소할 수 있습니다. 탄력성은 애플리케이션이 성능과 비용 효율성을 유지하면서 리소스를 효율적으로 활용할 수 있도록 보장합니다.

그렇지만 염두에 두어야 할 고려 사항도 있습니다.

  1. 복잡성: Kubernetes에서 모놀리식 애플리케이션을 배포하고 관리하면 기존 모놀리식 서버 아키텍처에 비해 더 많은 복잡성이 발생합니다. 파드, 디플로이, 서비스와 같은 Kubernetes 리소스를 구성하고 관리해야 합니다. 이러한 복잡성으로 인해 학습 곡선과 운영 오버헤드가 증가할 수 있습니다.

  2. 리소스 오버헤드: 컨테이너화 및 Kubernetes에는 약간의 리소스 오버헤드가 수반됩니다. Kubernetes는 컨테이너 관리를 위한 강력한 기능을 제공하지만 효과적으로 작동하려면 리소스도 필요합니다. 애플리케이션의 크기와 복잡성이 단순한 경우에는 Kubernetes로 인한 오버헤드가 정당화되지 않을 수 있습니다.

  3. 마이그레이션 노력: 모놀리식 애플리케이션을 컨테이너화하고 이를 Kubernetes에 배포하려면 특히 애플리케이션이 컨테이너화를 염두에 두고 설계되지 않은 경우 상당한 노력이 필요할 수 있습니다. 컨테이너 친화적으로 만들기 위해 애플리케이션의 일부를 리팩터링해야 할 수도 있는데, 이는 시간이 많이 걸리고 어려울 수 있습니다.

  4. 성능: Kubernetes는 확장성과 탄력성을 제공하지만 특히 분산 환경용으로 설계되지 않은 모놀리식 애플리케이션의 경우 성능에 영향을 미칠 수 있습니다. 구성 요소 간 통신 오버헤드, 네트워크 대기 시간 증가, 리소스 경합 등이 성능에 영향을 미칠 수 있는 요소입니다.

결론적으로, Kubernetes에 모놀리식 애플리케이션을 배포하면 확장성, 배포 및 탄력성 측면에서 이점을 제공할 수 있지만 이점이 관련된 복잡성 및 고려 사항보다 중요한지 신중하게 평가하는 것이 중요합니다. 특정 사용 사례, 요구 사항 및 조직 기능에 따라 Kubernetes가 아키텍처에 가장 적합한 선택일 수도 있고 아닐 수도 있습니다. 결정을 내리기 전에 장단점을 고려하고 대체 접근 방식을 고려하는 것이 중요합니다.

0

garam427027

상세하고 명쾌한 답변 감사드립니다!

순위가 동률일 때의 처리에 대해 질문드립니다.

0

10

2

Singleton 관련 질문입니다.

1

27

2

라우팅 테이블 설정 중 궁금한게 있습니다.

0

34

1

user-service jwt

0

32

2

애그리거트 질문있습니다!

0

31

2

DDD 는 마이바티스와 잘 맞지 않는건가요?

0

46

1

스프링부트 버전 문의드립니다.

0

38

1

Redlock 알고리즘 관해 궁금한게 있습니다!

0

47

2

좋아요/조회수 카운팅 병목현상에 대해서 궁금한점이 있습니다.

0

35

2

gRPC 실무에서 질문

0

35

2

Agent Builder 서비스가 보이지 않아요

0

28

1

CQRS 6분정도 강의 질문드립니다.

0

251

2

20분정도에 말씀 하신 내용 질문 있습니다.

0

221

2

질문드립니다,

0

169

1

레어어드 아케텍처 스타일 질문드립니다.

0

209

1

헥사고날 아키텍쳐에 대해 좀더 자세히 공부하고싶은데 참고할만한 깃주소 같은게 있을까요 ?

0

970

1

DevOps 인프라(CI/CD) 16분 배포 전략 종류 설명 관련 질문

0

558

1

유연성, 탄력성

0

343

1

질문있습니다 !!

0

495

1

고졸도 아키텍트 될수 있나요?

0

537

1

MSA와 RAM 자원 관리 관련 문의

0

300

1

학습중에 몇가지 질문이 있습니다.

0

325

1

1강 강의내용에 대한 2가지 질문이 있습니다.

0

335

1

좋은 강의 재밌게 보고 있습니다. 질문 있는데요.

0

294

1