BUILD BIG DATA ANALYSIS CONTAINERS FOR DATA SCIENTISTS 굿모닝아이텍 / 김도은이사
END-TO-END ENTERPRISE GRADE SOLUTIONS FOR IOT Sensors, Actuators, Data Sources Edge Processing & Analytics Data Integration, Routing, Device Command/Control Advanced Analytics & Machine Learning Application Development, Deployment, Integration CONNECTED THINGS IoT GATEWAYS IoT INTEGRATION HUB ENTERPRISE APPLICATIONS Telemetry Data Telemetry Data Application Data Enterprise Data Hub 2
AGENDA 1. BACKGROUND AND OBJECTIVES 2. 시스템환경구성 3. DATA SCIENTIST 컨테이너환경구축 4. CONTAINER BENEFIT 5. WRAP UP 3
BACKGROUND & OBJECTIVES 4
BACKGROUND & OBJECTIVES 데이터분석가 다양한 Language, 라이브러리, 툴, 버전 요구리소스 (CPU, GPU, MEM) 사양다양 협업 운영팀 분석가별다양한환경에대한셋업 리소스효율적운영 Control, Monitoring CONTAINER APPLICATION LIFECYCLE MANAGEMENT CONTAINER ORCHESTRATION AND MANAGEMENT (KUBERNETES) Business Agility 확보 효율적인리소스활용, 운영용이성충족 5
시스템환경구성 6
시스템구성도 (H/W, S/W) Master 1ea Node 2ea Infra 1ea DNS/NFS 1ea PaaS 솔루션 Red Hat Openshift - 엔터프라이즈환경컨테이너어플리케이션플랫폼 API/Authentication Data Store Scheduler Management Replication Application Node Router Metrics EFK DNS Server Registry Server NFS Server RHEL VM RHEL VM RHEL VM RHEL VM PV Cloud Forms Data Analytics Applications Rstudio : 통계컴퓨팅, 그래픽스언어인 R 개발환경 Jupyter/Tensorflow : 딥러닝 / 머신러닝엔진및환경 Jupyterhub : Jupyter 환경다중사용자관리 Hypervisor Registry Private Git Service (GOGS) 운영관리 Red Hat Cloudforms - 통합운영관리모니터링시스템 7
DATA SCIENTIST 컨테이너환경구축 8
데이터분석컨테이너 LIFECYCLE 빅데이터 (Raw Data) 데이터가공 데이터분석 분석모델 HIVE Rstudio Jupyter Notebook/ Tensor Flow Data Model GIT 데이터분석가 빅데이터분석 데이터분석시스템사용요청 승인 Self service 데이터분석및가공 데이터분석시스템회수요청 시스템운영자 통보 데이터분석시스템변경관리 컨테이너자동배포 승인 데이터분석시스템회수 9
DOCKER, CONTAINER 컨테이너 = 프로세스를격리하여가상환경처럼사용 역사 2013 PyCon, 솔로몬하익스, The future of Linux Containers 발표 (https://www.youtube.com/watch?v=ww9cah9nsls) 정의 컨테이너기반의오픈소스가상화플랫폼 컨테이너 라는표준화된유닛으로소프트웨어를패키징. 컨테이너 에는라이브러리, 시스템도구, 코드, 런타임등소프트웨어를실행하는데필요한모든것이포함됨 애플리케이션을신속하게구축, 테스트및배포할수있는소프트웨어플랫폼 10
DOCKER HISTORY 2008 년솔로몬하익스 (Solomon Hykes) dotcloud 설립 ( 언어중립적인 PaaS 제공 ) 2013 년 PyCon 컨퍼런스, The future of Linux Containers 발표 3 월도커오픈소스화 회사명을도커로변경 9 월 Red Hat 이파트너로참여, OpenShift 적용 당시 PaaS 업체들은지원언어가제한적 (Heroku = Ruby, Google = Java, Python) 6 개월만에 Github 에서 6,700+ 스타기록. 직원외 175 명의 Contributor 참여 2014 년 6 월도커 1.0 발표 Spotify, Baidu 에서는운영계에적용하여사용 Dockerhub 출시 : 컨테이너공용저장소 Amazon EC2 Docker container 서비스런칭 2014 년 12 월 Docker Swarm 발표 ( 도커콘 EU 에서 ) 2015 년 6 월솔로몬하익스 ( 도커 ) 와알렉스폴비 (Alex Polvi, 코어 OS) 는 Open Container Initiative 조직 Docker Inc. 1100 억투자유치 2016 년마이크로소프트윈도우서버도커지원 컨테이너포맷과런타임의표준정의협의체 25,600 + GitHub 스타, 1,100 Contributors 2017 년소프트웨어다운로드수 130 억 + LinkedIn profile 에 docker 160% 증가 11
도커는왜이렇게집중관심을받게되었나? 소프트웨어시스템의다양성 모놀리틱환경에서운영되는 LAMP (Linux, Apahce, MySQL, PHP) 시대는끝 NoSQL, 메시지큐, REST API, 다양한프로그래밍언어들 다양한하드웨어환경에서운영 개발자랩탑, 사내클라우드, 퍼블릭클라우드 다른하드웨어, 다른버전의라이브러리, 다른운영체제 표준화된컨테이너가상품운송을단순화한것처럼도커컨테이너는소프트웨어응용소프트웨어이동을단순화시켜준다 개발자는응용프로그램개발에만집중하고, 환경간의차이와종속성은걱정하지않으면서테스트환경과운영환경에코드를배포 시스템운영자는컨테이너를운영하는주요이슈에만집중 ( 자원할당, 컨테이너시작과종료, 서버간의마이그레이션등 ) 12
서비스카탈로그생성 Catalog Container 생성을보다쉽게하기위한오브젝트의집합 (Deployment Config, Build Config, Service, Route, Parameter, Environment 등 ) 생성과정 1. Docker image pull or Docker image build from Dockerfile (#docker build ) 2. Pull/build 된 image 를 local registry 에 push 하기위한 tag 추가 (#docker tag ) 3. Tag 된 image 를 local registry 에 Push (#docker push ) 4. Template 파일 (yaml file) 을통한 openshift template 생성 (#oc create ) 13
OPENSHIFT SERVICE CATALOG OpenShift Template Broker OPENSHIFT OpenShift Templates OpenShift Automation Broker ANSIBLE Ansible Playbook Bundles AWS Service Broker AWS AWS Services OPENSHIFT SERVICE CATALOG Other Service Brokers OTHER COMPATIBLE SERVICES Other Services A multi-vendor project to standardize how services are consumed on cloudnative platforms across service providers 14
PERSISTENT VOLUME CLAIM 생성 Rstudio, Tensorflow, JupyterHub 에서사용하는 Persistent volume claim 설정 15
PERSISTENT VOLUME CLAIM 할당 Container Mount Point PVC Rstudio /home/rstudio/pv-rs pv-rs(rw) Tensorflow /notebooks/pv-rs /notebooks/pv-tf pv-rs(ro) pv-tf(rw) JupyterHub /home/admin/work /home/cabin/work /home/ekhan/work pv-jupyterhub(rw) 16
DATA SCIENTIST 컨테이너생성 요구사항 분석툴 ( 버전, 모듈, 라이브러리등 ) CPU / GPU MEMORY, 개인 or 팀 컨테이너생성 OpenShift Web Console 에서서비스카탈로그를이용하여생성 1 2 3 4 17
DATA SCIENTIST 사용환경 18
컨테이너환경운영관리 컨테이너운영관리 운영효율성 서비스모니터링 보안및컴플라이언스 운영비용관리 19
컨테이너환경운영관리 Operational Management 실시간검색 관계시각화 모니터링및경고 취약점검사 보안준수 워크플로및정책 자동화 미터링 / 과금 20
운영효율성 컨테이너인프라통합실시간모니터링 다양한인프라구성요소간시각화 다양한인프라 HW/SW 통합관리 제어정책및 UI 확장을통한자동화기능 21
서비스모니터링 리소스모니터링및추세에의한사전장애요소제거 성능임계치및이벤트에대한경고 최적의컨테이너크기또는권장사항 이미지와컨테이너관계추적 22
보안및컴플라이언스 정책을준수하지않는노드검색 컨테이너출처보고 이미지와컨테이너간구성추적 OpenSCAP 을사용하여컨테이너이미지스캔 23
운영비용관리 인프라비용모델정의 플랫폼요금스케쥴링 프로젝트단위과금체계 사용자별리소스사용량 24
CONTAINER BENEFIT 25
CONTAINER BENEFIT Time: package install 필요없고 docker container 실행하여바로사용 Reproducibility: Python script와결과물을 docker 이미지로빌드하여공유 Flexibility: docker 이미지를실행할수있는모든소프트웨어상에서실행가능 Isolation: dependency 관계의라이브러리, 모듈등을컨테이너로격리하여다른툴, 라이브러리와충돌차단 Manageability: 컨테이너실행상태, 리소스사용현황등관리모니터링 자율성 : 데이터분석가 ( 팀 ) 이업무를자율적으로실행할수있음 Security: 컨테이너기반분석환경의결과물, 산출물에대한정보보호 ( 유출차단 ) 26
WRAP UP 27
WRAP UP Data scientist 개발환경컨테이너화 GPU, CPU 리소스효율적운영 사용자관리 BUILD to PUBLISH 자동화 28
THANK YOU