Cloud Native와 MSA

2025. 1. 3. 13:59· 백엔드 Backend/기본 개념

Cloud Native Application

특징

1. CI/CD (지속적인 통합 / 지속적 배포)

2. MicroServices

3. DevOps

- 개발조직 + 운영조직 통합 : 마이크로서비스에 문제가 발생했을 경우에 바로 수정해서 다시 배포하는 과정을 반복

- 시스템 기획 -> 구현 -> 테스트 -> 배포 과정을 시스템 종료될때까지 무한 반복 -> 고객이 원하는 최상의 결과물 만드는 데 목적

- 기존의 방식은 개발기간이 6~10개월정도로., 고객 요구사항/변경사항 등등은 필요할 때 마다 바로 반영/수정될 수 있도록 하는 구조

- 클라우드 -> 서비스 구조를 작은단위로 분하랗여 더 자주 통합/테스트/배포 가능한 구조

4. Containers (가상화)

- 운영체제 위에 컨테이너 서비스를 작동 하고, 컨테이너에서는 공통적인 라이브러리/리소스를 공유해서 사용.

- 각자 필요한 부분에 대해서만 독립적인 영역에 실행하는 구조 -> 기존 하드웨어 가상화 기술(운영체제 위에 하이퍼바이저를 띄워 가상머신(운영체제 각각 존재))보다 더 적은 리소스, 가볍고 빠르게 운영 가능

 

 

모놀리스 방식

- Frontend + Backend + Database가 합쳐져서 하나의 팀

- SOA = service oriented Architecture

 

프론트엔드/백엔드 방식

- Frontend팀

- 서버사이드: Backend+DevOps팀(Backend,Database가 합쳐짐)

=> 프론트 변경 사항 시 프론트만 빌드하면됨. (전체를 패키징해서 빌드할 필요 x)

 

MSA 방식

- Frontend팀

- Aggregation Layer (BFF, GraphQL...)

- ProductService / Reco Service / Basket Service..등의 microservices

 

 

 

마이크로서비스

정의

1. 함께 작동하는 작은 규모의 서비스들

2. Http 통신을 이용해 리소스 API에 통신할 수 있는 작은 규모의 여러 서비스들의 묶음이 모여 하나의 어플리케이션을 구성

- 직접 database에 접속하여 데이터를 가져오는 것이 아니라, http/api 통신을 통해 정보를 가져와야 함 (예를들어 주문서비스에서 회원 정보를 가져오기 위해서는 회원api와 통신) - 외부에서도 접근 가능하게끔

(잘게 쪼개진 덩어리)

3. 각각의 서비스들은 최소한의 중앙 집중식 관리가 되어야 함 , 서로다른 프로그래밍 언어와 서로 다른 데이터 저장 기술을 사용할 수 있다.

- 마이크로 서비스는 도메인의 특성을 고려해서 구분해야하고, 그에 따라 독립적인 언어와 독립적인 데이터베이스를 사용할 수 있다.

 

- 완전하게 자동화된 배포 시스템을 사용해야 함. (앞선 Cloud Native Application의 특징)

 

- 데이터 동기화 : 메시징 서비스를 통해. 변경사항이 생기면 메시징 서비스(kafa같은)에 전달 -> 그 서비스를 구독하고 있는 다른 서비스들이 카프카에 전달된 정보를 가지고 자신의 데이터를 변경

 

'백엔드 Backend > 기본 개념' 카테고리의 다른 글

Dto 객체 간 변환하기 (feat. ModelMapper)  (1) 2025.01.08
RestAPI - Dto에서 @JsonInclude 사용하기  (3) 2025.01.08
메시지 큐  (0) 2024.08.20
실시간 통신 기능 (1)  (3) 2024.08.14
캐시 / 캐시 전략  (2) 2024.08.12
'백엔드 Backend/기본 개념' 카테고리의 다른 글
  • Dto 객체 간 변환하기 (feat. ModelMapper)
  • RestAPI - Dto에서 @JsonInclude 사용하기
  • 메시지 큐
  • 실시간 통신 기능 (1)
달래dallae
달래dallae
백엔드를 열심히 갈고 닦아서 광내봅시다 ~_~
달래dallae
머루랑달래랑
달래dallae
전체
오늘
어제
  • 분류 전체보기 (54)
    • 프로젝트 Project (14)
    • 백엔드 Backend (27)
      • 기본 개념 (13)
      • 서버 Server (9)
      • 스프링 Spring (1)
      • JPA (3)
    • 데이터베이스 Database (6)
      • MySQL (1)
      • Oracle (5)
    • 언어 Language (0)
      • 자바 Java (0)
      • 파이썬 Python (0)
    • 알고리즘 Algorithm (1)

블로그 메뉴

  • 홈
  • 글쓰기
hELLO · Designed By 정상우.v4.2.2
달래dallae
Cloud Native와 MSA
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.