84   Architecture [모노리식 아키텍처] 기존의 전통적인 웹 시스템 개발 스타일로, 하나의 애플리케이션 내에 모든 조직들이 들어 가 있는 구조
[마이크로 서비스 아키텍처] 대규모 웹 분산 환경에서 응용소프트웨어를 독립적으로 배치 가능한 서비스 조합으로 설계하는 아키텍처 스타일
조직구성 = 아키텍처  
토픽 이름 Architecture
분류 PM > Agile > Architecture
키워드(암기) 모놀리식, 마이크로서비스 아키텍처
암기법(해당경우)  

기출문제

번호 문제 회차
1 4. 최근 대규모의 소프트웨어 개발에 적용을 하기 위한 다양한 아키텍처가 사용되고 있다. 아래의 항목에 대해 설명하시오.
. 마이크로 서비스 아키텍처(Micro Service Architecture) 필요성과 개념
. 마이크로 서비스의 장단점
. 블루그린배포(Blue Green Deployment) 카나리아 배포(Carnary Deployment)


모의_2018.07.관리.3교시.4
2 7. 마이크로 서비스 아키텍처(Micro Service Architecture) 대하여 설명하시오. 모의_2017.01.관리.1교시.7

 

  1. 대용량 웹서비스를 위한 Agile Architecture 개요
구분 정의
모노리식
아키텍처
기존의 전통적인 웹 시스템 개발 스타일로, 하나의 애플리케이션 내에 모든 조직들이 들어 가 있는 구조
마이크로 서비스 아키텍처 대규모 웹 분산 환경에서 응용소프트웨어를 독립적으로 배치 가능한 서비스 조합으로 설계하는 아키텍처 스타일

 

  1. 모노리식 아키텍처, 마이크로 서비스 아키텍처 구성도 아키텍쳐 특성

  1. 모노리식 아키텍처, 마이크로 서비스 아키텍처 특성
구분 특성
모노리식
아키텍처
  1. 각 컴포넌트들은 상호 호출을 함수를 이용하는 call-by-reference 구조
  2. 전체 애플리케이션을 하나로 처리하기 때문에, 개발 툴 등에서 하나의 애플리케이션만 개발
  3. 배포 역시 간편하며 테스트도 하나의 애플리케이션만 수행하면 되기 때문에 편리
마이크로 서비스 아키텍처 서비스는 데이터에서부터 비즈니스 로직까지 독립적으로 상호 컴포넌트간의 의존성이 없이 개발된 컴포넌트(이를 버티컬 슬라이싱 / Vertical Slicing - 수직적 분할이라고 한다.)로 REST API와 같은 표준 인터페이스로 그 기능을 외부로 제공.

 

  1. 모노리식 아키텍처, 마이크로 서비스 아키텍처 비교
구분 모노리식 아키텍쳐 마이크로 서비스 아키텍처
데이터 저장관점 중앙 집중화된 하나의 통합
데이터베이스(보통 RDBMS) 사용
서비스 별로 별도의 데이터 베이스를 사용

서비스가 API에서부터 데이터 베이스까지 분리되는 수직
분할 원칙(Vertical Slicing)에 따라서 독립된 데이터 베이스 사용
컴포넌트 전체 애플리케이션을 재 컴파일하여 전체를 다시 통으로 재배포 변경이 있는 서비스 부분만 부분 배포
확장성 전체 서버의 수를 늘리거나 각 서버의 CPU수를 늘려줘야 함 부하를 많이 받는 서비스 컴포넌트만 가능
특징
작은 크기의 애플리케이션에서는 용이.

시스템 컴포넌트들이 서로 참조에 의한 호출 (call-by-reference)기반으로 타이트하게 연결
컴포넌트를 되도록이면 업무 단위로 잘게 자르는
fine grained(작은 덩어리)의 서비스를 지향.
단점
잦은 배포가 있는 시스템의 경우 불리.

컴포넌트 별로 기능/비기능적 특성에 맞춰서 다른 기술을 도입하고자 할 때 유연하지 않음.


특정 컴포넌트나 모듈에서의 성능 문제나 장애가 다른 컴포넌트에까지 영향.
서비스를 컴포넌트의 URL 수 증가.

API를 사용하는 클라이언트에서 서버간의 통신이나,
서버간의 API 통신의 경우 p2p(Point to Point)형태로
토폴로지가 복잡해지고 거미줄 모양의 서비스 컴포넌트간의 호출 구조는 향후 관리의 문제 발생 가능.

[추가 자료: Agile Architecture 배경적 지식]

1) Agile Architecture 개념

 - S/W 개발 , 상세함을 대체하면서 결과 verify 용이하게 있는 Architecture.

 - Agile Manifesto 6원칙에 기초하여 등장하게

2) Microservice 배경

 - Agile 적용된 조직Organization이 비대 또는, 시스템 Scale 커지면, Scrum of scrum/SAFe(Scaled Agile Framework) 의사소통 채널 시스템 Iteration(Sprint) 증가. 이는 Agile 사상에 벗어나는 고민에서 출발한 개념 (MicroserviceSOA 개념/등장배경에 견주어 설명하기도 )

 - 독립적인 적용이 가능한 unit으로 구성된 Microservice-based 시스템일 경우, 기능이 명확히 분리된 단위라서 상호 서비스 영향이 없기 때문에 빠르고 쉽게 적용이 가능, 장점이라고 얘기함

[그림해설] S/W 개발을 예로 들면, Microservices Agile 진행에서 하나의 구조적 단계로 볼 수 있다는 의미

[참고] Agile Working Group MSA

반응형

'정보관리기술사 > 소프트웨어공학' 카테고리의 다른 글

객체지향 설계의 원리  (0) 2024.03.10
객체지향 프로그래밍 특징  (0) 2024.03.09
번다운차트  (0) 2024.03.07
CI, CD  (0) 2024.03.06
Lean(린)  (1) 2024.03.05

+ Recent posts