TIL

1장 모놀리식 지옥에서 벗어나라

1.1 서서히 모놀리식 지옥에 빠져들다

1.1.1 FTGO 애플리케이션 아키텍처

1.1.2 모놀리식 아키텍처 장점

1.1.3 모놀리식 지옥의 실상

너무 복잡해서 개발자가 주눅 든다.

개발이 더디다.

커밋부터 배포에 이르는 길고 험난한 여정

확장하기 어렵다.

모놀리스는 확실히 전달하기 어렵다.

갈수록 한물간 기술 스택

1.4 마이크로서비스 아키텍처가 답이다

1.4.1 확장 큐브와 마이크로서비스

X축 확장: 다중 인스턴스에 고루 요청 분산

Z축 확장: 요청 속성별 라우팅

Y축 확장: 기능에 따라 애플리케이션을 서비스로 분해

1.4.2 마이크로서비스는 모듈성을 갖고 있다.

1.4.3 서비스마다 DB가 따로 있다.

1.4.4 FTGO 마이크로서비스 아키텍처

1.4.5 마이크로서비스 아키텍처와 SOA

구분 SOA MSA
서비스 간 통신 SOAP, WS 표준처럼 무거운 프로토콜을 응용한 엔터프라이즈 서비스 버스 중심의 스마트 파이프 REST나 GRPC처럼 가벼운 프로토콜을 응용한 메시지 브로커 또는 서비스 간 통신 중심의 덤 파이프
데이터 전역 데이터 모델 및 공유 DB 서비스 별 데이터 모델 및 DB
주요 사례 대규모 모놀리식 애플리케이션 소규모 서비스

1.5 마이크로서비스 아키텍처의 장단점

1.5.1 마이크로서비스 아키텍처의 장점

1.5.2 마이크로서비스 아키텍처의 단점

1.6 마이크로서비스 아키텍처 패턴 언어

1.6.1 마이크로서비스 아키텍처도 만병통치약은 아니다.

1.6.2 패턴 및 패턴 언어

강제 조항: 문제 해결을 위해 반드시 처리해야 할 이슈

결과 맥락: 패턴 적용 결과

연관 패턴: 다섯 가지 관계 유형

1.6.3 마이크로서비스 아키텍처 패턴 언어 개요

애플리케이션을 여러 서비스로 분해하는 패턴

통신 패턴

트랜잭션 관리를 위한 데이터 일관성 패턴

데이터 쿼리 패턴

서비스 배포 패턴

관측성 패턴: 애플리케이션 동작 파악

서비스 테스트 자동화 패턴

횡단 관심사 처리 패턴

보안 패턴

1.7 마이크로서비스 너머: 프로세스와 조직

1.7.1 소프트웨어 개발/전달 조직

1.7.2 소프트웨어 개발/전달 프로세스

1.7.3 마이크로서비스를 받아들이는 인간적 요소