원 제목 : How Data Inspires Building a Scalable, Resilient and Secure Cloud Infrastructure At Netflix
Netflix의 개발자 문화는 Netflix의 모든 사람이 핵심 책임을 맡고 자유롭게 임무를 완수 할 수 있는 자유와 책임을 전제로 한다. 이러한 자유를 통해 팀과 개인은 혁신을 주도할 수 있으며 결과물에 대해 품질과 견고함(robustness)에 책임을 가지고 있다. Central engineering 팀은 인프라의 보안, 확장(scalable) 및 강화(복원력)와 관련된 솔루션을 각 팀에 제공하여 걱정을 한층 덜어준다.
Netflix 제품 기능의 대부분은 많은 마이크로 서비스 중 하나에 부분적으로 또는 완전히 종속되어 있다. 이러한 모든 마이크로 서비스는 현재 AWS 클라우드 인프라에서 운영된다.
Netflix 개발자(즉, 마이크로 서비스의 책임자)는 서비스의 안정성, 안전성, 효율성 및 성능을 보장하는 것을 포함하여 운영 및 혁신에 대한 책임이 있다. 마이크로 서비스를 운영하기 위해서 개발자는 원격 측정 및 alert system, 용량 프로비저닝 프로세스, secure and reliability best practice에 대한 깊은 이해와 클라우드 인프라에 대한 방대한 양의 비공식 지식에 대해 이해하고 있어야한다.
Netflix의 engineering and science팀은 개발자들에게 가해지는 부담을 줄이기 위해 솔루션을 개발하고 있다. 그리고 클라우드 인프라의 여러 구성 요소를 안정적이고 안전하고 효율적으로 운영하는 것과 관련된 의사 결정을 알리고 자동화하기 위해 플랫폼 및 마이크로 서비스에서 생성되는 방대한 양의 데이터를 활용한다.
◆ ◆ ◆
보안 영역에서, 우리의 데이터 팀은 machine learning과 statistical model을 사용하여 의심스럽거나 악의적인 활동을 감지하는데 거의 모든 노력을 집중한다. 이는 잠재적으로 위험에 처한 직원 계정에 초점을 맞추었지만 에이전트(인간 또는 기계)를 고려하기 보다는 탐지 프레임 워크 자체를 구축하는데 투자했다. 우리의 데이터 팀은 또한 마이크로 서비스 또는 내부 직원이 직면 한 위협, 위험을 줄이기 위해 보안 및 개인 정보 보호에 대한 투명성을 높이는 데 노력한다.
신뢰 영역에서, 우리의 데이터 팀은 두 가지 접근 방식에 초점을 맞춘다. 첫 번째는 예방이다. 데이터 팀은 실험(ex. Canary배포), 탐지 및 개선 KPI를 통해 환경 및 가능한 많은 application들을 가능한 한 안전하게 변경하는 것을 도와준다 . 두 번째 접근법은 진단 측면이다. 데이터 팀은 위험에 대한 영향을 측정하고 발생 상황에 따라 패턴을 확인하며, 마이크로 서비스 수준 가용성에 대해 투명하게 조사한다.
효율 영역에서, 우리의 데이터 팀은 투명성과 최적화에 초점을 맞춘다. Netflix의 Freedom and Responsibility 문화에서 효율성에 대한 최선의 접근 방법은 모든 마이크로 서비스 소유자가 자신의 효율성을 향상 시키거나 유지할 수 있도록 올바른 정보를 제공하는 것이라고 믿고 있다. 또한 인프라가 복잡한 멀티 테넌트 환경이기 때문에 플랫폼 수준에서 데이터 기반 효율을 높일 기회가 있다. 마지막으로, 인프라 자체의 프로비저닝 또한 점점 더 복잡해지고 있다. 따라서 우리의 데이터 팀은 클라우드 용량 관리의 진단 및 자동화를 위한 도구 개발에 기여한다.
성능 영역에서, 우리의 데이터 팀은 현재 넷플릭스 지원 디바이스들(mobile, tv etc)에 대한 경험의 질에 초점을 맞춘다. 보통은 디바이스 자체가 전반적인 성능에 중요한 역할을 한다. 그러나 네트워크 및 클라우드 인프라의 응답성은 무시할 수없는 영향을 미친다. 다양한 디바이스들에서 Netflix application들의 전반적인 성능에 대한 infrastructure의 영향을 이해하고 영향을 최소화하기 위해 향상된 원격 측정 및 도구를 지속적으로 구축한다.
인재 영역에서, 우리의 데이터 팀은 사용 사례 관련, 중앙 팀 인원 계획을 관리하는 데 도움을 준다. 원가를 절감, 관행 고용 개선하기 위해 직원, 계약자, 파트너 및 인재 데이터에 대한 기록의 통합 시스템, 그리고 다른 사람들의 분석에 기여한다.
Infrastructure에서의 도전 과제 및 기회
보안 이벤트 비정상 탐지 플랫폼
# 수백 가지 소스의 스키마 계약을 기반으로 반 구조화 된 데이터를 처리하고 다운 스트림 분석을위한 구조화 된 데이터의 이벤트 스트림으로 변환하는 복잡한 이벤트 처리 시스템을 어떻게 개발할 수 있을까?
# 개발 속도를 높이기 위해 템플릿 기반 탐지 모듈 (규칙 및 ML 기반) 및 데이터 스트림을 어떻게 개발할 수 있을까?
보안 이벤트 플랫폼
몇 가지 일반적인 아이디어를 얻으려면 StreamAlert 및 Siddhi와 같은 오픈 소스 프로젝트를 참조하면 좋다.
자산 인벤토리
# 가용성, 탄력성 및 차량 관리를 돕기 위해 AMI/소프트웨어 스택을 비롯한 응용 프로그램, 클러스터, 지역 및 기타 메타 데이터 간의 관계를 나타내는 차원 데이터 모델을 어떻게 개발할 수 있을까?
# 애플리케이션 취약성 및 위험 점수로 메타 데이터를 풍부하게하는 학습 모델을 개발할 수 있을까?
신뢰(Reliability)
# 프로덕션 환경으로 배포 할 때 코드 변경이 안전하다는 것을 어떻게 보장 할 수 있을까?
# 트래픽 스파이크 발생시 가용성을 저하시키지 않으면서 어떻게 auto-scaling 정책을보다 효율적으로 조정할 수 있을까?
용량 및 효율성
# 어떤 리소스(클러스터, 테이블, ...)가 사용되지 않거나 활용도가 낮을까?
# 모든 사용자에게 AB 테스트에서 적합한 셀을 배포하는 데 드는 비용은 얼마일까?
사용자 분석
# 우리는 모집과 관련된 AB 실험을 지원하고 탄탄한 재능을 유치 할뿐만 아니라 후보 경험을 향상시킬 수 있을까?
# 우리는 포용 및 다양성 이니셔티브의 영향을 측정 할 수 있을까?
사람 및 보안
# 어떻게 안전하고 제한된 People Data Vault를 구축하여 통합 된 참조 시스템을 제공하고 앱이 메타 데이터를 추가 할 수있게 할 수 있을까?
# 액세스 권한을 자동으로 프로비저닝하거나 프로 비전 해제 할 수 있을까?
데이터 계보(Data Lineage)
# Netflix 데이터 환경에 저장된 다양한 데이터 아티팩트 간의 관계를 발전시키기 위해 일반화 된 계보 시스템을 개발할 수 있을까?
# 이 계보 솔루션을 활용하여 SLA 누락 예측 및 데이터 수명주기 관리 관련 질문 (작업 비용, 테이블 비용 및 보존)을 해결할 수 있을까?
이것으로 Infrastructure Data Engineering, Science & Analytics의 환상적인 세상을 잠깐 둘러 보았다. Netflix 개발자들은 세계적 수준의 정보 기반 인프라를 확장하는 것을 돕는 임무를 수행하고 있으며 이제 막 시작했다. 생각을 교환하는 데 관심이 있다면 언제든지 컨택바란다.
Authors : Sebastien de Larquier (S & A), Jitender Aswani (DEI)
Contributors : Sui Huang (S & A)는 People initiatives를 재창조하는 데 협력하고 있습니다.
'빅데이터' 카테고리의 다른 글
AWS에서 공개한 Data validation library 소개 - Deequ (0) | 2019.09.27 |
---|---|
Fluentd로 데이터파이프라인 구축하기 kafka→kafka→s3 (1) | 2019.09.17 |
Fluentd vs Telegraf 차이점 알아보기 (0) | 2019.09.16 |
[Stream Process as a Platform] Netflix의 실시간 스트림 처리 플랫폼 Keystone 소개 (251) | 2019.01.10 |
모든 것을 측정하는 방법 - Bigdata시대에 부족한 data로 예측하기 (262) | 2018.12.16 |
JVM에서 MapReduce를 간편하게 쓸수 있는 오픈소스 라이브러리 Cascading (365) | 2018.11.19 |