brunch

You can make anything
by writing

C.S.Lewis

by 이종우 Peter Lee Nov 15. 2019

[펌]쿠팡 데이터플랫폼의 진화

Evolving the Coupang Data Platform

https://medium.com/coupang-tech/evolving-the-coupang-data-platform-308e305a9c45

https://medium.com/coupang-tech/evolving-the-coupang-data-platform-308e305a9c45

쿠팡은 막판 배송과 모바일 퍼스트 플랫폼에서 제품 발견을 재고하면서 한국의 전자 상거래 시장에 혁명을 일으키고 있습니다. 우리의 임무는 고객들이“쿠팡없이 어떻게 살았습니까?”라고 묻는 세상을 만드는 것입니다.

우리는 데이터 중심 회사이기 때문에 고객 센터에서 최상의 알고리즘에 이르는 데이터 결정에 크게 의존하여 서비스 센터의 공간을 최적화합니다. 우리는 데이터를 사용하여 프로세스의 각 단계에서 병목 현상을 발견하고 회사로서 더 빠르게 움직입니다. 확장 성, 가용성, 지연 시간, 동시성 및 빠른 데이터 증가 측면에서 지속적으로 우수한 요구를 충족하려면 데이터 플랫폼을 지속적으로 발전시켜야합니다.

이 기사에서는 쿠팡에서 데이터 플랫폼의 여정을 설명하고 향후 투자를 엿볼 수 있습니다.

단계 I- 초기      



많은 신생 기업과 마찬가지로 첫 몇 년 (2010–13) 동안 데이터를 저장, 처리 및 검색하기 위해 관계형 데이터베이스 (mySQL, Oracle)를 사용했습니다. Coupang 'Bom Kim'의 설립자가 데이터 과학 및 플랫폼 팀에 투자하기로 결정했을 때 초기 투자 중 하나입니다. 이 팀은 데이터 트렌드를 찾고, 데이터 과학 실험을 실행하며, 비즈니스가 빠르게 발전하도록 돕기 위해 설립되었습니다. 이는 소규모 데이터 세트 및 비즈니스보고에 효과적이었습니다.

또한 빅 테크 회사의 데이터에 대한 막대한 투자로 인해 징계 분야의 데이터가 점점 더 인기를 얻었으므로 올바른 비즈니스 의사 결정뿐만 아니라 많은 데이터 기반 응용 프로그램 및 서비스가 인기를 얻었습니다.

그러나 비즈니스 인텔리전스 쿼리 및 사용자 수가 증가함에 따라 속도 및 규모가 문제가되었으며 관계형 데이터베이스를 뛰어 넘어야했습니다.

2 단계-온 프레미스 Hadoop, Hive 및 MPP 시스템 시대            




회사의 빠른 성장과 함께 쿠팡은 각각 빅 데이터 및 데이터웨어 하우스의 Hadoop 및 MPP (Massively Parallel Processing) 시스템으로 잘 알려진 데이터 인프라 선택에 투자하기로 결정했습니다. 또한 회사의 많은 다른 고급 부서가 존재하고 데이터에 대한 수요가 비즈니스보고에서 회사의 다른 많은 부서에 대한 입력으로 논리적으로 진화하여 매주 최상위 라인 메트릭을 측정하는 시대 (2014-2016)였습니다. 주간 비즈니스 리뷰 (WBR) 문화가 발전하고 데이터 기반 응용 프로그램이 개발되었습니다. 이는 회사의 환경에서 데이터 생산 및 데이터 요구가 증가함에 따라 중요합니다. Coupang의 앱 및 웹 사이트와 BigData 인프라를 처리하고이를 처리하기 위해 고객 상호 작용을 기록 및 수집해야했습니다. 다양한 검색, 권장 사항 및 고객 분석에서 신호로 사용됩니다. 로그 수집 팀이 구성되어 집단 고객 상호 작용 데이터를 시작하여 바늘을 옮기는 데 도움이되었습니다.

그러나 일일 활성 사용자 및 쿼리 수가 다시 10 배 증가함에 따라 동시 쿼리 기능이 제한된 MPP와 같은 시스템은 병목 현상이 발생했습니다. Hive & MPP 시스템은 영업 시간 오전 8시에서 오후 12시 사이에 중단됩니다. 또 하나의 근본적인 병목 현상은 운영보고, 비즈니스 인텔리전스, ETL, 데이터 과학과 같은 다양한 데이터 요구에 사용되는 하나의 하드웨어라는 것이 었습니다. 이른 아침이나 늦은 저녁에 가장 중요한 쿼리를 실행하는 방법. 데이터 팀으로서 많은 기회와 흥미로운 문제가있었습니다.

온 프레미스 랩에서는 클러스터에 노드를 추가하기가 어려웠지만 많은 엔지니어링 및 프로세스 기반 기술이 적용되었지만 그 중 일부는 일시적인 완화를 제공했지만 데이터 인프라는 지속적으로로드되었습니다. 빠른 속도의 스타트 업에서 데이터 과학, 비즈니스 인텔리전스, 데이터 기반 애플리케이션에 대한 새로운 사용 사례는 모두 새로운 버전의 데이터 플랫폼을 기다리고있었습니다.

III 단계 — 아키텍처 재구성 및 마이그레이션 — 장기 솔루션            




2016 년 말에서 2017 년까지 팀은 클라우드 인프라를 사용하여 확장 할 수 있도록 다양한 계층을 재 구축하여 플랫폼을 재구성했습니다. 이 단계에서 클라우드로 마이그레이션하고 기본 구성 요소를 구축하여 모든 관점에서 10 배 또는 20 배 성장을 처리 할 수 있습니다.

이 시점에서 회사의 중요한 데이터 플랫폼 요구 사항 중 몇 가지를 언급하고 싶습니다.  

전자 상거래 플랫폼의 대부분의 트래픽은 검색을 통해 이루어지며, 고객 상호 작용을 수집하고 거래, 카탈로그, 가격 및 실험 데이터와 함께 처리하기 위해 강력하고 안정적인 데이터 인프라가 필요합니다.


수백 명의 비즈니스 구성원이 하루에 수천 개의 쿼리를 실행하려고합니다.


실험 및 가격 책정 플랫폼에는 빅 데이터가 필요합니다


이기종 데이터를 결합하는 재무 및 글로벌 운영 사업


마케팅 팀은 소셜 미디어 데이터 통합이 필요합니다

다른 레이어에 대한 요약 :

● 로그 수집 : 모바일 앱 및 웹의 고객 상호 작용 데이터는 현대에서 일반적인 데이터 관행입니다. 다음 단계의 인스 트루먼 테이션 프레임 워크를 빌드하는 데 중점을 두어 다양한 고객 통찰력에 대해 사용자 조치 로그를 수집하고 처리 할 수 있습니다.

● BigData 플랫폼 : Hadoop 및 컨테이너 기반의 다른 BigData 도구 및 구성 요소를 사용하여 팀 / 사용자가 많은 양의 데이터를 처리하고 증가하는 컴퓨팅 요구에 맞게 확장 할 수 있습니다.

● EDW (Enterprise Data Warehouse) : EDW는 올바른 데이터 모델링 패턴으로 클라우드 기반 MPP 시스템 에 스타 스키마로 재구성 됩니다 . datwarehouse 클러스터에는 3 가지 주요 유형이 있습니다.

○ 데이터 수집 플랫폼 : Ad Hoc 탐색, 운영보고, 시스템 응용 프로그램에 사용되는 트랜잭션 데이터는 소스 데이터 집합을 DAP 라는 Cloud Data Warehouse 솔루션으로 이동해야 합니다.

○ 샌드 박스 : 많은 팀이 자체 테이블 / 스테이징 데이터 세트를 만들어 Ad Hoc 분석을 수행하려고합니다 . 특정 팀에 필요한 데이터 세트에 초점을 맞춘 샌드 박스 를 제공 할 것입니다 .

○ 보고 : 데이터를 쿼리하기 위해 사용자가 직면 한 클러스터입니다. 이 클러스터에서 모든 생산 데이터를 사용할 수 있습니다.

새로운 플랫폼은 확장 가능하고 사용하기 쉬웠으며 많은 영역에서 고객의 마찰이 거의 없었습니다. 사용자 쿼리의 동시성, 연결 수, 데이터 사본, 스케일링 맵 감소 및 DW, 스토리지 분리 및 컴퓨팅 데이터 품질에 대한 신뢰 및 신뢰와 같은 GAPS가 있습니다.

● BigData 과제 : 데이터 처리 작업 작성, 유휴 클러스터 등의 비효율적 인 관행으로 인해 모든 팀이 하둡 클러스터를 너무 많이 소유하고 싶어합니다.

● 로깅 데이터 품질에 대한 신뢰 : 비즈니스의 빠른 성장과 앱 / 웹 UI 개발의 민첩성으로 인해 앱 및 웹 페이지에는 레거시 인스 트루먼 테이션 플랫폼에 명확한 사양이없는 많은 종류의 로그가있었습니다. 눈에 띄지 않는 변경 및 탐지되지 않은 버그는 소비자의 지표에 종종 피해를 입히고 데이터 품질에 대한 신뢰를 위협했습니다. 신뢰할 수있는 제공 및 구체적인 메타 데이터로 생산자와 소비자의 신뢰를 얻으려면 새로운 계측 프레임 워크를 처음부터 설계해야했습니다.

IV 단계 — 서비스로서의 빅 데이터, Cloud Storage의 EDW 및 새로운 계측 프레임 워크            




2019 년까지 여러 비즈니스 사용 사례 및 시나리오를 지원하기 위해 Data Platform을 이해하고 확장하도록 진화했습니다.

BigData 플랫폼 : 여러 유형의 대형 Hadoop 클러스터를 사용했습니다. 그러나 폭발적인 비즈니스 성장을 지원하기 위해 클러스터 관리 정책과 배포 전략을 완전히 수정해야했습니다. 고객에게 안정적이고 확장 가능한 플랫폼을 제공하기 위해 백업 된 머신 이미지, 컴퓨팅 리소스의 특성에 대한 최적화, 유연한 확장 정책 및 클러스터 추상화 계층을 포함하여 다양한 영역에서 개선되었습니다.

● 클러스터 수명주기 : 사용자의 작업 부하에 따라 다른 수명 주기로 Hadoop 클러스터를 관리합니다. 클러스터의 수명주기는 비용 효율성 및 비즈니스 워크로드와 관련하여 엄격하게 제어됩니다. 모든 유형의 사용자가 동일한 하이브 테이블을 일관되게 사용할 수 있도록 여러 유형의 클러스터가 공유 Hive 메타 스토어 및 클라우드 스토리지에 액세스 할 수 있습니다.

● 조정 정책 : 대부분의 클라우드 플랫폼은 시스템 지표를 기반으로 자동 조정을 제공합니다. 또한 클라우드 서비스에서 제공하는 Auto-Scaling을 사용했지만 실제 고객 요구를 충족시킬 수 없었습니다. 따라서 트래픽 집중 시간을 분석 한 후 미리 확장되는 일정 기반 확장 기능을 구현했습니다. 스케줄 기반 스케일링과 Auto-Scaling을 함께 사용하면 사용자의 플랫폼 경험을 크게 향상시킬 수있었습니다.

● 백업 된 머신 이미지 : OS, Hadoop 및 에코 시스템, 모니터링 및 보안 에이전트를 포함하여 Hadoop 클러스터의 컴퓨팅 인스턴스에 다양한 소프트웨어를 설치해야합니다. 필요한 소프트웨어와 다양한 플러그인으로 가상 머신 이미지를 만들었습니다. 우리는 Packer를 사용하여 이미지를 관리하고 고객의 워크로드를 위해 여러 가지 다른 가상 머신 이미지를 준비합니다. 구운 시스템 이미지를 도입 한 후 클러스터 설치 시간이 60 % 이상 단축되었습니다.

웹 로깅 플랫폼 :

쿠팡 초기부터 고객의 상호 작용 데이터를 수집하는 계측 플랫폼은 많은 결함과 기능이없는 외부 솔루션을 기반으로 구축되었습니다. 많은 도메인 팀이 자체 외부 측정 항목을 계산하고 시각화하기 위해 또 다른 외부 서비스를 사용해야했습니다. 완전히 새로운 플랫폼은 처음부터 문제를 해결하도록 설계 및 구현되었습니다. 마이그레이션 및 데이터 검증에 오랜 시간이 걸리고 새로운 플랫폼이 기존 플랫폼을 완전히 대체했습니다.            




다음은 간단한 로그 여행입니다. 시작하기 전에 생산자는 스키마를 메타 데이터 서비스에 등록합니다. 일반적으로 스키마에서 (정적 유형) 코드를 생성하고 생성 된 코드를 앱 또는 웹 페이지에 삽입하여 인적 오류를 방지합니다. 릴리스되면 클라이언트는 Collection Pipeline에 실제 로그를 생성합니다. 파이프 라인에서 콜렉션 서버는 모든 로그를 수신하고 메시지 큐에 메시지를 생성합니다. 그런 다음 데이터 로더는 메시지를 사용하여 클라우드 스토리지에 저장합니다. 세션 배치 작업은 데이터의 첫 번째 소비자로서 모든 배치 소비자에 대한 추가 속성이있는 세션 데이터를 만듭니다.

● 수집 파이프 라인 (컬렉션 서버, Message Queue 및 데이터 로더) : 새로운 플랫폼은 Coupang의 플랫폼 서비스 팀에서 관리되는 MQ 서비스를 사용하여 손실없이 실시간 소비자 및 거의 실시간 데이터 테이블에 대한 실시간 데이터 스트림을 제공합니다. 복제 또는 부패. 소비자는 WLP가 제공하는 대기열을 사용하여 자체 SLA 및 ETL 로직으로 자체 로더를 작성할 수 있습니다.

● 메타 데이터 서비스 : 새로운 플랫폼에서 모든 로그 데이터에는 스키마 변경 경고를 검토하고 구독하는 소유자 및 등록 소비자와 등록 된 스키마가 있어야합니다. 로그 데이터 구조에 대한이 단일 소스는 다른 서비스, 생산자의 UI 코드 및 소비자의 쿼리의 기초입니다.

● 유효성 검사 서비스 : 데이터 배달을 방해하지 않고 유효성 검사 서비스는 파이프 라인의 모든 단일 로그를 메타 데이터 서비스의 스키마로 검사합니다. 결과는 실시간으로 경고를 트리거하면서 주기적으로 로그의 생산자 및 소비자에게 저장 및보고됩니다.

● 테스트 및 모니터링 서비스 : 새로운 플랫폼은 웹 기반 UI를 통해 서비스를 제공하여 QA 테스트 및 프로덕션 모두에 대해 특정 사용자 또는 장치의 로그를 추적하고 유효성을 검사합니다. 이 서비스는 또한 시나리오 기반 유효성 검사를 제공하여 QA 테스트를위한 구문뿐만 아니라 의미를 검사합니다.

Enterprise Datawarehouse : Data Platform의 마스터 데이터웨어 하우스 환경은 ORC 파일이며 Hive / Hue, Presto / Zeppelin을 통해 액세스 할 수 있습니다. MPP 기반 DW 환경 (샌드 박스)은 EDW 사용자에게 계속 제공되는 도구이지만 EDW의 일부일뿐입니다. 주요 기능은 사용자가 사전 프로덕션 샌드 박스 테이블을 구축하여 도메인 비즈니스를 관리 할 수있는 환경을 제공하는 것입니다. 보고에 사용자 샌드 박스 테이블이 필요한 경우 환경은 단기보고 기능도 수행 할 수 있습니다. 장기보고 또는 공유를 위해 사용자 소유 / 관리 테이블을 Cloud Storage의 파일 기반 테이블로 이동하는 것이 좋습니다.            




하위 구성 요소

쿠팡 데이터 플랫폼의 다른 중요한 기능은 다음과 같습니다.

데이터 품질

데이터 팀은 행의 HASH를 사용하여 행 수와 전체 행 데이터를 비교하여 데이터가 정확한지 확인하는 프레임 워크를 구축했습니다. 기술 테스트의 일환으로 기본 키, null 값 등의 DQ 검사도 실행합니다. 프레임 워크는 각 개발자가 비즈니스 관련 SQL 문을 플러그인 할 수 있도록 지원하고 실제 데이터 정확도를 보장합니다. 또한 빅 데이터 테이블에 대한 제약 조건 / 임계 값 기반 데이터 검사를 위해 오픈 소스 프레임 워크를 활용하고 있습니다.

데이터 이상 통지

이 빠르게 변화하는 산업에서 우리는 빠르게 행동해야합니다. 데이터 알리미는 데이터가 기록 되 자마자 가장 빠른 감지 기능을 제공합니다. 예를 들어, 지난 달에 새로운 Android 버전이 릴리스되었고 로깅에 데이터가 삭제되는 버그가 있다고 상상해보십시오. 과거에는 사용자가 앱 설치를 시작할 때까지 기다려야하므로 데이터 손실을 발견하는 데 시간이 오래 걸리기 때문에이 사실을 알리는 데 3 일이 걸렸습니다. 데이터 알리미를 사용하면 앱 출시 후 2 시간 이내에 알림이 표시됩니다.

SLA (서비스 수준 계약)

새로운 데이터 플랫폼에서는 모든 Mart 테이블이 매일 오전 9시 (KST)까지 준비되었는지 여부를 알려주는 이메일 알림을 사용자에게 제공합니다. 또한 데이터 플랫폼 사용자에게 더 많은 데이터 SLA 투명성을 제공하기 위해 SLA 정보를 쉽게 읽을 수있는 온라인 보고서를 작성하고 있습니다.

데이터 검색 도구

Data Platform에서 테이블 / 열에 대한 태그 및 설명을 제출하는 플랫폼으로, 다른 사용자가이를보고 검색 할 수 있습니다. 이것은 유기적으로 성장할 수있는 개방형 플랫폼을 가능하게합니다. Data Discovery 는 Coupang의 모든 데이터 사용자를위한 자체 데이터 검색 서비스를 가능하게 했습니다. 이 기능을 통해 수백 명의 데이터 탐색기 수명이 쉬워지고 생산성이 향상되었습니다.

EDW 관리 시스템 (EMS)

데이터 파이프 라인을 생성 및 관리하고, 메타 데이터를 사용하여 데이터 수집 자동화 및 자동화 된 Airflow DAG 생성을 지원하는 프레임 워크 이 프레임 워크는 데이터 엔지니어를위한 모니터링, 백필 및 다운 스트림 종속성 기능도 지원합니다. 데이터 엔지니어링 팀의 생산성을 대폭 절감합니다. EMS는 또한 통화 엔지니어에게 도움이되는 초기 SLA 감지 기능을 제공합니다.

향후 개선

하둡 추상화 계층

우리는 사용자의 작업 제출 및 Hadoop 클러스터 관리를 단순화하기 위해 Hadoop 추상화 계층을 제공 할 것입니다. 최종 사용자 관점에서 다양한 Hadoop 리소스의 물리적 세부 정보를 추상화하고 간단한 작업 실행 인터페이스 (Airflow Operator, Python, Rest API)를 제공하여 Hive 및 Spark 작업을 제출합니다. 또한 사용자가 하둡 클러스터를 관리 할 수 있습니다. Hadoop 클러스터 리소스를 모니터링하고 사용자 작업에 올바른 양의 리소스를 할당합니다.

로그 품질 모니터링

여러 가지 이유로 인해 출시 후에도 앱의 로깅 동작을 변경할 수 있습니다. 예를 들어, A / B 테스트를 통해 기능이 나중에 작동하기 시작할 수 있습니다. 도메인 API의 일부 변경 사항은 클라이언트에서 부작용을 일으킬 수 있으며 웹으로 구현 된 일부보기는 언제든지 새로운 배치를 가질 수 있습니다. 로그 데이터의 품질을 보장하기 위해 릴리스 단계의 QA 테스트로는 충분하지 않습니다. 모든 기능을 갖춘 로그 품질 모니터링 서비스를 제공하여 출시 된 앱의 수명주기 동안 전체 자동화를 통해 실제 장치에서 모든 중요한 로그 테스트를 실행합니다. 또한 품질 모니터링 시스템은 클라이언트 측에서 생성하지 않은 로그 파이프 라인에서 속성의 품질을 확인하여 데이터에 대한 신뢰도를 높입니다.

스키마 발견

메타 데이터 서비스는 모든 로그의 모든 스키마에 대한 단일 소스입니다. 로그 스키마는 생산자와 소비자 간의 계약과 유사하며 수축은 로그 데이터를 신뢰합니다. 따라서 모든 소비자는 모든 로그의 스키마에 변경 사항에 대한 알림을 받아야하며, 프로덕션 상태가 아니라 새로 등록 된 스키마에 대해서도 알아야 스키마를 검토하고 다운 스트림 작업을 준비 할 수 있습니다. 로깅 플랫폼은 자동 스키마 검색 도구를 제공합니다. 소비자로부터 쿼리를 수집하고 분석하여 필요한 모든 스키마를 찾은 다음 사용자 상호 작용없이 구독을 업데이트합니다.

저자 :"); background-size: 1px 1px; background-position: 0px calc(1em + 1px);">Narendra Parihar , "); background-size: 1px 1px; background-position: 0px calc(1em + 1px);">Matthew ( "); background-size: 1px 1px; background-position: 0px calc(1em + 1px);">재화 "); background-size: 1px 1px; background-position: 0px calc(1em + 1px);">정) , "); background-size: 1px 1px; background-position: 0px calc(1em + 1px);">Joong ( "); background-size: 1px 1px; background-position: 0px calc(1em + 1px);">김중훈 "); background-size: 1px 1px; background-position: 0px calc(1em + 1px);">)

부록:

Coupang의 데이터 플랫폼 조직은 BigData 플랫폼, Enterprise Datawarehouse, 웹 로깅 플랫폼 및 기술 프로그램 관리와 같이이 거대하고 복잡한 플랫폼이 회사 전체에서 작동하도록하는 여러 영역으로 구성됩니다.

Data Platform의 비전은 규모에 따라 데이터를 관리, 처리 및 시각화 할 수있는 안정적이고 확장 가능하며 걱정없는 도구를 제공하는 것입니다. 이러한 도구는 내부 고객이 자발적으로 신뢰하고 채택하여 대규모 데이터 응용 프로그램을 쉽게 구축하고 시간에 민감한 결정을 포함한 데이터 중심 결정을 내릴 수 있도록해야합니다.

매거진의 이전글 Custom React Hooks for GraphQL
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari