ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 모놀리스/마이크로서비스
    Data Engineer 2024. 8. 28. 08:54
    728x90

    모놀리스

    가능한 한 많은 것을 한 지붕 아래에 포함하는 것

     

    - 기술 결합(아키텍처 계층)과 도메인 결합(도메인이 결합하는 방식)의 두 가지 방식으로 살펴볼 수 있다

    다중 계층 아키텍처에는 다양하게 계층이 분리된 애플리케이션이 있지만, 여러 도메인을 공유할 수도 있다.

    단일 도메인을 제공하는 단일 계층 아키텍처를 사용할 수도 있다.

     

    모놀리스의 강한 결합은 컴포넌트의 모듈화가 부족하다는 것을 의미

    아키텍처 전체에서 컴포넌트를 재사용하기 어렵고, 불가능하다

     

    마이크로서비스

    복잡하게 뒤얽힌 서비스, 중앙 집중화, 서비스 간의 강한 결합과 같은 모놀리스 속성과 정반대

    - 개별적이고 분산되어 있으며 느슨하게 결합된 서비스로 구성, 각 서비스는 특정 기능이 있으며 도메인 내에서 운영되는 다른 서비스와 분리

    - 한 서비스가 일시적으로 중단되더라도 계속 작동 중인 다른 서비스에는 영향을 주지 않음

     

    데이터 아키텍처에 대한 고려 사항

    데이터 파이프라인은 중앙 데이터 웨어하우스로 수집된 여러 원천으로부터 데이터를 사용할 수 있다.

    중앙 데이터 웨어하우스는 본질적으로 모놀리식하며, 데이터 웨어하우스와 동등한 마이크로서비스의 전환은 해당 도메인별 데이터 웨어하우스에 연결된 도메인별 데이터 파이프라인과 워크플로를 분리하는 것.

    --> 모듈화와 느슨한 결합을 허용하는 가역적인 기술 선택들을 통합!

     

    싱글/멀티테넌시 시스템

    클라우드 컴퓨팅 인스턴스 : 일반적으로 공유 서버에 있으나, VM 자체는 어느 정도 격리된다.

    객체 스토리지 : 멀티테넌트 시스템이지만, 클라우드 벤더는 고객이 사용 권한을 올바르게 구성하기만 하면 보안과 격리를 보장한다.

    이처럼 복합적으로 얽혀있다.

     

    더보기

    "기업의 여러 부서가 동일한 데이터 웨어하우스를 공유하는가?"

    "조직이 같은 테이블 내에서 여러 대형 고객의 데이터를 공유하는가?"

    엔지니어는 종종 훨씬 더 작은 규모의 멀티테넌시에 대한 결정을 내려야 한다.

    클라우드 시스템 내에 대규모 테넌트가 여러 개 있을 때, 시스템이 모든 테넌트에 대해 일관된 성능을 지원하는가?

    아니면 한 테넌트의 사용량이 많으면 다른 테넌트의 성능이 저하되는가?

    보안 측면에서는, 서로 다른 테넌트의 데이터를 적절하게 분리해야 한다.

    가령 회사에 외부 고객 테넌트가 여러 개 있다면 이러한 테넌트는 서로를 인식해서는 안되며 엔지니어는 데이터 유출을 방지해야 한다.

     

    Ex. 멀티테넌트 테이블을 사용하고 뷰를 통해 데이터를 격리하는 것은 종종 완벽하게 허용되나, 이러한 뷰에서 데이터가 누출되지 않도록 해야 한다.

    728x90

    'Data Engineer' 카테고리의 다른 글

    [대규모 시스템 설계] (1) 처리율 제한 장치  (2) 2024.10.17
    Parquet?  (1) 2024.09.30
    Schema On Read  (0) 2024.08.20
    GlobalEventBus ?  (0) 2024.05.02
    Nginx  (0) 2024.03.28
Designed by Tistory.