Micro Service Architecture - 1. MSA

2021. 9. 6. 15:23·IT/Micro Service Architecture
반응형

모놀리식에서 MSA로

Micro Service Architecture

마이크로 서비스 아키텍쳐는 고수준에서 하라보면 하나의 애플리케이션을 여러 서비스로 기능 분해하는 기법 입니다. 각 서비스가 집중되고 응집된 역할을 수행을 합니다.

모듈성

모듈셩은 크고 복잡한 애플리케이션을 개발할 때 꼭 필요한 특성으로 규모가 방대하고 복잡하다면, 개인이 이해하기 어렵고 개발하기 힘듭니다. 따라서 여러 사람이 이해하기 쉽고 개발을 할 수 있도록 여러 모듈로 분할을 해야 합니다.

경계선

각 서비스는 다른 서비스가 침투하지 못하도록 API 라는 경계선을 갖고 있어 다른 서비스에서 접근이 불가하도록 해주며 이는 유지보수에 크게 도움이 됩니다. 또 서비스에 대해서 단위 별로 배포 및 확장에도 도움이 되는 장점이 있습니다.

개별 DB

마이크로 서비스는 서로 느슨하게 결합되어 있고 API를 통해 통신을 하고 이는 각제의 자체 DB를 가질수 있게 됩니다. 이는 다른 서비스 팀과 협의 없이도 스키마 변경에 대해 유연함을 가질수 있고 DB락으로 서비스 Block 등의 일을 방지 합니다.

#

확장 큐브 (X,Y,Z)

X축 확장 (수평복제)

동일한 요청에 대해 부하 분산, 일반적인 모놀리식 확장 수단으로 WAS 인스턴스 N개를 실행시켜 놓은 뒤에 Load Balancer를 통해서 들어온 요청을 고루 분배 (단일 인스턴스 -> 다중 인스턴스)

1-1

#

Z축 확장 (데이터 분할)

요청의 값에 따라서 나누어서 확장, 단일 파티션 -> 다중 파티션.
각 인스턴스는 요청 Header에 Authorization의 UserId를 보고 N개의 인스턴스 중 알맞은 인스턴스에게 요청 합니다.
Z축 확장은 트랜잭션 및 데이터 볼륨을 처리하기 좋은 수단입니다.

TODO: 왜 트랜잭션과 데이터 볼륨에 좋은거지?? 샤딩이나 proxySQL 같은거 써서 그런가?? 나중에 다시 와서 추가 바람.

1-2

#

Y축 확장 (기능분해)

서로 상이한 기능을 나누어서 확장, 모놀리스 -> 마이크로 서비스.
X축과 Z축 확장은 앱의 능력과 가용성은 개선되지만, 더 복잡해지는 문제에 대해서는 해결이 되지 않는다. 따라서 Y축의 기능 분해가 필요하다.

1-3

728x90
반응형
저작자표시 비영리 (새창열림)
'IT/Micro Service Architecture' 카테고리의 다른 글
  • Micro Service Architecture - 5.분해전략 2
  • Micro Service Architecture - 4.분해전략
  • Micro Service Architecture - 3.패턴
  • Micro Service Architecture - 2.FTGO 예시
상쾌한기분
상쾌한기분
  • 상쾌한기분
    상쾌한기분
    상쾌한기분
  • 전체
    오늘
    어제
    • 분류 전체보기 (251)
      • Python (44)
        • Python (26)
        • Django (6)
        • Flask (4)
        • Open Source (6)
      • Kotlin & Java (5)
        • Spring (2)
        • 프로젝트 (1)
      • Go (11)
      • Database (24)
        • MySQL (21)
        • Redis (3)
      • Infrastructure (2)
        • CDC (4)
        • Kafka (5)
        • Prometheus (2)
        • Fluentd (11)
        • Docker (1)
        • Airflow (2)
        • VPN (2)
      • IT (26)
        • AI (9)
        • Langchain (8)
        • Web (18)
        • Git (8)
        • 리팩토링 (9)
        • Micro Service Architecture (8)
        • Clean Code (16)
        • Design Pattern (0)
        • 수학 (1)
        • 알고리즘 (14)
      • OS (14)
        • Centos (10)
        • Ubuntu (3)
        • Mac (1)
      • Search Engine (2)
        • ElasticSearch (1)
        • Lucene Solr (1)
      • PHP (2)
        • Laravel (1)
        • Codeigniter (1)
  • 블로그 메뉴

    • Github 방문
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    파이썬
    ollama
    MYSQL
    Langchain
    prompt
    CDC
    Golang
    go
    티스토리챌린지
    fluentd
    Redis
    오블완
    Kafka
    performance
    LLM
    http
    git
    python
    백준
    docker
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
상쾌한기분
Micro Service Architecture - 1. MSA
상단으로

티스토리툴바