caffeine-library / release-everything

'Release의 모든 것'을 읽는 스터디
3 stars 0 forks source link

[keyword] 16장 - 적응 #46

Closed emiling closed 6 months ago

emiling commented 6 months ago

주제

'16장- 적응'을 읽고 내용을 요약하거나,
중요✨ 하다고 생각하는 키워드 및 관련 설명을 코멘트로 달아주세요

연관 챕터

#45


@caffeine-library/readers-release-everything

leejaeseung commented 6 months ago

16.3 시스템 아키텍처

16.3.1 진화적 아키텍처

잘못된 계층 구분

계층 구조는 도메인마다 다르게 표현될 수 있다. 하지만 모든 계층을 하나로 통일한다면 각각의 도메인은 불필요한 계층 구조를 따라야만 한다.

p.412

자세히 보면 우연히 동일 프로세스에서 실행되는 마이크로서비스 인스턴스와 비슷해 보인다.

독립적인 컴포넌트로 분리하고, 여차하면 해당 컴포넌트를 따로 떼어내어 다른 모듈로 만들어도 영향이 없게끔 해야 하고 이게 자기 완결적 시스템으로 가는 길이지 않을까?

16.3.2 느슨한 클러스터

무지의 원칙 : 한 클러스터의 인스턴스는 같은 혹은 다른 클러스터의 개별 인스턴스를 몰라야 한다.

p.416

이 규칙의 숨은 의미는 클러스터 구성 요소들이 자신의 동료가 누구인지 알아낼 수 있다는 것이다.

→ 몰라야 한다면서 왜 알아낼 수 있다는 거지? 몰라야 한다 : 의존 관계가 없어야 한다. 알아낼 수 있다 : 현재 모르고 있지만, 관찰하여 알아낼 수 있다. (가능성)

16.3.3 명시적 맥락

요청을 주고 받을 때 맥락을 파악할 수 있는 정보가 주어지는게 좋다. 실제로, 부하가 심한 요청이 발생했을 때 요청 측이 어느 서비스인지 몰라 매번 물어물어가며 찾았던 적이 있었다.

16.3.4 선택 가능성

모듈화 작업을 여러가지 관점에서 설명하는데, 여러 개의 모듈이 아닌 모듈 내부 인스턴스로도 표현될 수 있어보인다.

→ 액터 모델 분할 : 각각의 역할을 하는 액터로 분할한다. 대체 : 하나의 액터를 다른 액터로 갈아낀다. 강화와 배제 : 기존의 액터를 없애거나 강화한다. 역전 : 여러 액터를 통합하는 부모 액터를 만든다. 이식 : 다른 서비스의 코드를 복제해 새로운 액터를 만든다. https://velog.io/@wansook0316/Actor-Model

16.4 정보 아키텍처

16.4.3 URL 이원론

객체에 대한 id 만을 관리하는 건 특정 DB 와 그 객체가 결합되어 있다는 의미이다. URL 자체를 해당 객체를 가리키는 포인터로 사용하면 URL 을 어떻게 해석하냐에 따라 객체 저장소가 달라질 수 있다.

16.4.4 복수성 수용

단일 기록 시스템 : 전사적인 차원에서 공유될 수 있는 데이터 형식을 가진 시스템? 하나의 표준이 있어야 하는데 쉽지 않은 것 같다..

emiling commented 6 months ago

Platform Team (p.406)

16.3 System Architecture

메세지, 이벤트, 명령 (p.428)

사람들은 비지니스 요구사항을 동기식으로 표현하려는 경우가 있다. 이를 비동기식으로 변환하려면 약간의 창의적인 사고가 필요하다.