MSA 의 이해

원종서·2022년 2월 21일
0

MSA

목록 보기
2/3

리액티브 선언: 현대 애플리케이션이 갖춰야 할 바람직한 속성들.

리액티브 시스템
1. 응답성, 탄력성, 유연성, 메시지 기반 이라는 4가지 특성을 강조하며 이러한 요건을 만족하는 시스템

메시지 기반: 비동기 메세지 전달을 통해 위치 투명성, 느슨한 결합, 논블로킹 통신을 지향하는 것을 의미

강 결합에서 느스한 결합의 아키텍처로의 변화

MSA 외부 아키텍처

인프라영역과 플랫폼영역 그리고 애플리케이션 영역
마이크로서비스가 운영되는 환경을 정의.
이러한 환경을 클라우드 아키텍처가 요구하는 유연성과 확장성을 고려해서 정의해야함.

내부 아키텍처

비지니스 애플리케이션
마이크로서비스가 제공하는 API, 비지니스 로직, 이벤트 발생, 데이터 저장 등을 어떻게 구조화해햐 하는가.

MSA 구성요소 및 MSA 패턴

개발자 입장에서 마이크로서비스 시스템을 구현하기 위해 밟아야할 단계
1. 인프라가 구축돼야하며 그 위 미들웨어(플랫폼) 그 위에서 애플리케이션이 동작해야함.

클라우드 인프라 패턴

인프라 의 의미란 엔터프라이즈 환경을 운영하고 관리하는데 필요한 근간이 되는 하드웨어, 소프트웨어, 네트워킹 구성요소, 운영체제, 데이터 스토리지 등을 모두 포괄함.

클라우드 환경에서는 이러한 인프라 구성요소가 가상화되어 제공함.

퍼블릭 클라우드와 베어메탈 , 프라이빗 클라우드 환경

베어메탈: 어떤 소프트웨어도 담지 않은 하드웨어 서버 제품군 자체를 의미.

  1. 하부 시스템의 기반이 되는 인프라를 구축해야함.
    가상화 환경 선택 vs 베어메탈 장비 구매 후 구축.

VM 과 컨테이너

가상화 환경을 선택했다면
가상머신과 컨테이너 기반 제품중 하나 선택

  1. 가상머신 = 하이퍼바이저라는 소프트웨어를 이용해 하나의 시스템에서 여러 개의 운영체제를 사용하는 기술.
  2. 컨테이너 = 하이퍼바이저 없이 컨테이너 엔진을 사용해 가상의 격리된 공간을 말함.

차이점은 게스트 OS 유무, 게스트 OS를 사용하는 가상머신에서는 운영체제 패킷 설치나 관련 라이브러리를 설치해야함.
따라서 마이크로서비스 같은 작은 서비스를 패키지하고 배포하기에는 컨테이너 환경이 적합하다.

도커가 이 컨테이너다.

도커의 이점.
1. 이식성
어떠한 호스트 커널이나 플랫폼 버전 상관없이 사용가능하고 동작함.
2. 신속성
크기 작고 빨라 빠르게 배포 가능.
3. 재사용성
동일한 환경을 재사용해 쉽게 설정 가능하기에 개발 테스트 스테이징 프로덕트 환경을 동일한 확경으로 구축 할 수 있음.

컨테이너 오케스트레이션

컨테이너의 자동배치 및 복제, 장애복구, 확장 및 축소 , 컨테이너간 통신, 로드 밸런싱등의 컨테이너 관리하기 위한 기술 또한 필요한데. 이러한 기술을 오케스트레이션이라고 한다.

오케스트레이션 도구
1. 도커스윔
2. 아파치 메서드
3. 쿠버네티스

쿠버네티스 기능

  1. 자동회된 자원 배정 = 각 컨테이너가 필요로 하는 CPU와 메모리를 쿠버네티스에 요청하면 컨테이너를 노드에 맞춰 자동으로 배치함.
  2. 셀프치유 = 컨테이너의 이상 유무를 점검 해서 실패한 경우 자동으로 고체하고 재스케쥴링함.
  3. 수평확장 = 일정 CPU 및 메모리 초과 시 자동 확장.

서비스 유형별 대표적인 클라우스 서비스

laaS(infrastructure as a Service)

가상머신, 스토리지, 네트워크 같은 인프라를 필요한 만큼 적시에 제공하는 서비스로서 , 사용자는 이러한 인프라를 이용해 개발 환경을 구축 한 후 애플리케이션 배포한다.

종류
AWS EC2(Elastic Compute Cloud)
GCP ompute Engine
Azure VM

Cass(Container as a Service)

컨테이너 기반 가상화를 사용해 컨테이너를 업로드 구성 실행 확장 중지 할 수 있는 서비스

0개의 댓글