3장. 우수한 데이터 아키텍처 설계
데이터 아키텍처에 대한 소개, 우수한 데이터 아키텍처는 무엇인가? 그리고 그 예시까지. 3장에 대한 정리글을 시작한다.
1. 데이터 아키텍처에 대한 정의
책에서는 데이터 아키텍처를 엔터프라이즈 아키텍처의 하위 집합으로 소개한다. 엔터프라이즈 아키텍처란 무엇일까?
엔터프라이즈 아키텍처는 기업의 변화를 지원하는 시스템 설계로,
신중한 트레이드오프 평가를 통해 도달한 유연하고 되돌릴 수 있는 의사결정으로 달성된다.
쉽게 유연성과 트레이드오프의 균형을 유지하는 것이라고 줄일 수 있다.
그렇다면 이제 데이터 아키텍처에 대해 알아보자.
데이터 아키텍처는 기업의 진화하는 데이터 요구 사항을 지원하는 시스템 설계로,
트레이드오프에 대한 신중한 평가를 통해 유연하고 되돌릴 수 있는 결정을 내림으로써 실현된다.
데이터 아키텍처의 특징으로 운영과 기술적인 부분을 추가로 소개한다.
- (What) 운영 아키텍처: 인력, 프로세스 및 기술과 관련한 필요 기능의 요건을 포괄
> 데이터는 어떤 비즈니스 프로세스를 지원하는가?, 조직은 어떻게 데이터 품질을 관리하는가? - (How) 기술 아키텍처: 데이터 엔지니어링 수명 주기를 통해 데이터를 수집, 저장, 변환 및 제공하는 방법
> 시간당 10TB의 데이터를 원천DB에서 데이터 레이크로 옮기려면 어떻게 해야 할까?
2. 우수한 데이터 아키텍처
최고의 아키텍처를 추구하기보다는 덜 나쁜 아키텍처를 추구하라
- 마크 리처즈, 닐 포드
우수한 아키텍처란 무엇인가.?
유연성을 유지하고, 적절한 트레이드오프를 실현하는 동시에,
광범위하게 재사용 가능한 공통 구성 요소를 사용해 비즈니스 요건을 충족하는 아키텍처
조금 줄여본다면 유연하고 민첩한 아키텍처가 될 것 같다.
저자는 아키텍처는 비즈니스 내부의 변화와 더 많은 가치를 창출할 수 있는 기술, 관행에 맞추어 진화해야 한다고 한다.
데이터 아키텍처는 살아 숨 쉬며 결코 완성되지 않는다.
그럼 이제 우수한 아키텍처의 '원칙'에 대해서 알아본다.
[우수한 아키텍처의 원칙]
1. 공통 컴포넌트를 현명하게 선택하기
: 조직 전체에서 사용가능한 공통 컴포넌트의 선택이다. 팀 간의 자산의 공유가 쉽게 이루어지면서도 잘못된 접근을 막는 것이 필요하다. 클라우드 플랫폼으로 이를 쉽게 수행가능하다.
2. 장애에 대비
: 장애에 대비해 설계 시 허용가능한 신뢰성, 가용성, RTO(복구시간목표) 및 RPO(복구시점목표)를 고려해야 한다.
- RTO: 서비스 또는 시스템 장애의 최대 허용시간
- RPO: 허용 가능한 최대 데이터 손실
3. 확장성을 위한 아키텍처 설계
: 스케일 업과 스케일 다운이 가능해야 한다. 탄력적 시스템을 활용해 이를 동적으로 확장할 수 있다.
4. 아키텍처 리더십
: 효과적인 리더십과 교육을 통해 기술의 결정과 아키텍처의 설명을 담당, 전파할 책임이 있다.
5. 항상 아키텍처에 충실하기
: 단순히 기존 상태를 유지하는 역할만 수행하는 것이 아니라, 비즈니스와 기술의 변화에 대응해 새롭고 흥미로운 것들을 끊임없이 설계해야 한다.
6. 느슨하게 결합된 시스템 구축
: 다른 팀에 의존하지 않고 작업이 수행가능해야 한다. 각 팀은 독립적으로 자신의 컴포넌트를 빠르게 발전시키고 개선 가능하다.
7. 되돌릴 수 있는 의사결정 수행
: 현재 상황에 적합한 최고의 설루션을 위해 변화가 가능한 의사결정을 내려야 한다.
8. 보안 우선순위의 지정
: 자신이 구축하고 유지 관리하는 시스템의 보안을 책임져야 한다. (제로-트러스트 보안, 공동 책임 모델)
- 제로-트러스트 보안: 이미 조직의 네트워크 내부에 있는 사람이나 기기를 기본적으로 신뢰해서는 안 된다는 생각을 바탕으로 조직을 보호하는 데 사용되는 보안 모델
- 공동 책임 모델: AWS가 대표적, 클라우드 보안과 클라우드 내 보안으로 나눈다. 클라우드 서비스에서 실행되는 인프라와 안전하게 사용하는 서비스를 AWS에서는 제공하나, 클라우드 내 보안은 사용자가 관리해야 한다.
9. 핀옵스의 수용
: 핀옵스는 데브옵스와 재무팀 간의 협력적인 업무 관계를 지원하는 움직임이라 말한다.
책의 내용을 꼼꼼하게 읽으면서 포스팅하다 보니 읽으면서도 조금 지치는 기분이고 포스팅도 매우 느려지고 있다.
작은 단위로 나누어서 포스팅하면서 주기를 줄이는 방식으로 진행해야 할 것 같다.
다음 포스팅에서는 주요 아키텍처 개념을 소개한다.
'Data Engineering' 카테고리의 다른 글
DE > 견고한 데이터 엔지니어링 - 4 (0) | 2024.06.13 |
---|---|
DE > Spark란? (0) | 2024.06.12 |
빅데이터 처리 시스템 (2) | 2024.06.12 |
DE > 데이터 정합성 (0) | 2024.06.12 |
DE > 견고한 데이터 엔지니어링 - 3 (0) | 2024.06.11 |