1 분 소요

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

1.1.1 모놀리식 아키텍처

  • 하나의 큰 목적이 있는 서비스 또는 애플리케이션에 여러 기능이 통합돼 있는 구조를 의미

    장점

    1. 개발 초기에 단순한 아키텍처 구조와 개발에 용이하다.
    2. 개발이 단순하고 코드관리가 간편하다.
    3. 쉽게 고가용성 서버환경을 만들 수 있다.
    4. End-to-End 테스트가 용이하다.

    단점

    1. 서비스를 운영하는 과정에서 수정이 많을 경우, 다른서비스에 영향을 미칠 가능성이 커진다.
    2. 서비스가 점점 성장해 기능이 추가될수록 서비스 간의 관계가 복잡해진다.

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

  • 시스템 전체가 하나의 목적을 지향하는 바는 모놀리식 아키텍처와 동일하나, 개별 기능을 하는 작은 서비스를 각각 개발해 연결하는데서 그 차이를 보임

    장점

    1. 개발된 서비스를 재사용 하기 쉽다.
    2. 서비스가 변경됐을 때 다른 서비스에 영향을 미칠 가능성이 적다
    3. 서비스 사용량의 변화에 따라 특정 서비스만 확장할 수 있다.

    단점

    1. 서비스가 분산되다 보니 관리가 힘들다.
    2. 서비스가 각각 유기적으로 통신하는 구조로 설계되기 때문에 네트워크를 통한 호출 횟수가 증가해 성능에 영향을 줄 수 있다.

1.1.3 컨테이너 인프라 환경에 적합한 아키텍처

  • 컨테이너 인프라 환경은 마이크로서비스 아키텍처로 구현하기에 적합하다. 컨테이너 인프라 환경에서는 컨테이너를 서비스 단위로 배포하고 확장할 수 있다.

1.2 컨테이너 인프라 환경을 지원하는 도구

  • 컨테이너 인프라 환경은 크게 컨테이너, 컨테이너 관리, 개발 환경 구성 및 배포 자동화, 모니터링으로 구성된다.

1.2.1 도커

  • 컨테이너 환경에서 독립적으로 애플리케이션을 실행할 수 있도록 컨테이너를 만들고 관리하는 것을 도와주는 컨테이너 도구이다.

1.2.2 쿠버네티스

  • 다수의 컨테이너를 관리하는데 사용한다.
  • 컨테이너의 자동 배포와 배포된 컨테이너에 대한 동작 보증, 부하에 따른 동적 확장 등의 기능을 제공한다.

1.2.3 젠킨스

  • 개발한 프로그램의 빌드, 테스트, 패키지화, 배포 단계를 모두 자동화해 개발 단계를 표준화 한다.
  • 컨테이너 인프라 환경처럼 단일 기능을 빠르게 개발해 적용해야 하는 환경에 매우 적합한 도구이다.

1.2.4 프로메테우스와 그라파나

  • 모니터링을 위한 도구
  • 그라파나는 프로메테우스로 수집한 데이터를 관리자가 보기 좋게 시각화 해준다.

태그:

카테고리:

업데이트: