본문 바로가기
Server, DevOps

MSA란? MSA를 위한 쿠버네티스(Kubernetes)는 무엇인가?

by lumayi 2021. 11. 2.

요즘 아침엔 컴퓨터를 키지마자 대기업 테크 블로그 글을 하나씩 읽고 있다. (특히 카카오테크와 우아한형제들 기술블로그를 좋아한다) 이 방법이 최신 기술을 눈으로나마 익히기 좋은 것 같아서 꾸준히 읽고 있는데, 최근 쿠버네티스에 관한 글이 많아진 걸 확인했다. 그러다 이에 관해 설명이 아주 잘 되어있는 카카오 기술 블로그를 읽었는데, MSA와 쿠버네티스 그리고 수반된 기술들을 이해한대로 나름 정리 해보려한다. (원 글은 아래에!)

https://tech.kakao.com/2021/09/14/msa/

 

이모티콘 서비스는 왜 MSA를 선택했나?

성장을 위해 달려오느라 거대해진 이모티콘 서비스와 그만큼 많이 쌓인 기술 부채를 두고, 천년만년 행복하게 개발하려는 구성원들이 선택한 MSA. 기존 레거시 서비스가 단일 서버로 너무 큰 코

tech.kakao.com

 

일단 쿠버네티스가 많이 쓰이게 된 환경을 이해하는 것이 좋을 것 같다. 카카오톡 같은 경우, 이모티콘 서비스가 갈수록 확장되는데 반해, 아직 초창기 기술을 그대로 사용중이어서 배포나 유지, 보수에 불편함이 많았다고 한다. 확실히 억대 연봉의 이모티콘 작가들이 생겨나고, 나 포함 주변에 이모티콘 플러스 구독자가 많은 것을 보아 서비스의 규모가 상당해졌음을 알 수 있다. 이렇게 하나의 이모티콘 서비스 서버에 많은 기능들이 추가가 되고, 그 추가되는 인원들이 모두 한 군데에서 코드를 관리하는 불편함을 겪고 있었다. 또한, 하위 서비스마다 모두 다른 서버 방식으로 인해 배포에 대한 러닝커브가 길고, 수반되는 오류가 많았다고 한다. 그리고 그 어려움에 대한(기술부채)를 해결하기 위해 카카오가 해결책으로 내놓은 것이 바로 MSA이다.

 

MSA란?

MSA란 MicroService Architecture의 약자로서 정확한 정의는 없지만 다음과 같은 특징을 가지고 있다.

  • 서비스 간에 네트워크를 넘나드는 통신을 하게 된다.
  • 도메인 중심으로 설계된다.
  • 서비스별 최적화된 기술을 독립적으로 사용 가능하다.
  • 서비스 크기는 작아지고, 독자적 개발이 가능하고, 독립 배포 가능하고, 배포 자동화도 가능하다.

그렇다보니 1) 배포 단위가 작아지고, 2) 결합도가 낮아서 설계 변경에도 부담이적고, 또 3) 각각의 서비스에 맞는 최적의 기술 사용이 가능해진다.

 

https://tech.kakao.com/2021/09/14/msa/

 

이 MSA는 이런 특징 때문에 클라우드와 가장 궁합이 잘 맞는다. 또한, 카카오나 구글처럼 VM이나 하드웨어, 컨테이너의 수가 많아지면, 이 컨테이너들의 배포 위치에 대한 고민이 필요해진다. 자원을 최대한 사용하기 위해 컨테이너를 적절한 위치에 배포하고, 어플리케이션 특성들에 따라서 같거나 다른 물리서버에 배포를 해주게 되는데 이것들을 스케줄링이라고 한다. 그리고 이런 스케줄링과 클라우드 환경을 지원하는 오픈소스 플랫폼이 바로 쿠버네티스(Kubernetes)이다.

 

쿠버네티스란?

쿠버네티스는 컨테이너화된 애플리케이션의 자동 전개(deploy), 스케일링 등을 제공하는 관리시스템이다. 원래 구글에 의해 설계되었고 현재 리눅스 재단에 의해 관리되고 있는 오픈소스 플랫폼이다. 플랫폼에 종속적이지 않기에 배포에 장점이 많은 기술이다. 약어로는 k8s(k와 s사이에 8개의 문자)라고 한다.

 

https://www.redhat.com/ko/topics/containers/what-is-kubernetes

 

쿠버네티스는 도커와도 궁합이 잘 맞는 기술이라고 한다. 이에 대한 자세한 이해는 https://bcho.tistory.com/1255

 

쿠버네티스 #1 - 소개

Kubernetes #1 - 소개 조대협 (http://bcho.tistory.com) 배경 도커와 쿠버네티스를 알게 된건 수년전인데, 근래에 들어서 다시 쿠버네티스를 보기 시작하였다. 컨테이너 기반의 환경은 배포에 장점이 있고

bcho.tistory.com

이 블로그를 참고하는 것이 좋을 것 같다. 정리를 정말 잘해놓아주셔서 이해가 쉬웠다!

반응형