Stephan Ewen - Experiences running Flink at Very Large ScaleVerverica
This talk shares experiences from deploying and tuning Flink steam processing applications for very large scale. We share lessons learned from users, contributors, and our own experiments about running demanding streaming jobs at scale. The talk will explain what aspects currently render a job as particularly demanding, show how to configure and tune a large scale Flink job, and outline what the Flink community is working on to make the out-of-the-box for experience as smooth as possible. We will, for example, dive into - analyzing and tuning checkpointing - selecting and configuring state backends - understanding common bottlenecks - understanding and configuring network parameters
Building a Streaming Microservice Architecture: with Apache Spark Structured ...Databricks
As we continue to push the boundaries of what is possible with respect to pipeline throughput and data serving tiers, new methodologies and techniques continue to emerge to handle larger and larger workloads
데브시스터즈의 Cookie Run: OvenBreak 에 적용된 Kubernetes 기반 다중 개발 서버 환경 구축 시스템에 대한 발표입니다.
Container orchestration 기반 개발 환경 구축 시스템의 필요성과, 왜 Kubernetes를 선택했는지, Kubernetes의 개념과 유용한 기능들을 다룹니다. 아울러 구축한 시스템에 대한 데모와, 작업했던 항목들에 대해 리뷰합니다.
*NDC17 발표에서는 데모 동영상을 사용했으나, 슬라이드 캡쳐로 대신합니다.
Stephan Ewen - Experiences running Flink at Very Large ScaleVerverica
This talk shares experiences from deploying and tuning Flink steam processing applications for very large scale. We share lessons learned from users, contributors, and our own experiments about running demanding streaming jobs at scale. The talk will explain what aspects currently render a job as particularly demanding, show how to configure and tune a large scale Flink job, and outline what the Flink community is working on to make the out-of-the-box for experience as smooth as possible. We will, for example, dive into - analyzing and tuning checkpointing - selecting and configuring state backends - understanding common bottlenecks - understanding and configuring network parameters
Building a Streaming Microservice Architecture: with Apache Spark Structured ...Databricks
As we continue to push the boundaries of what is possible with respect to pipeline throughput and data serving tiers, new methodologies and techniques continue to emerge to handle larger and larger workloads
데브시스터즈의 Cookie Run: OvenBreak 에 적용된 Kubernetes 기반 다중 개발 서버 환경 구축 시스템에 대한 발표입니다.
Container orchestration 기반 개발 환경 구축 시스템의 필요성과, 왜 Kubernetes를 선택했는지, Kubernetes의 개념과 유용한 기능들을 다룹니다. 아울러 구축한 시스템에 대한 데모와, 작업했던 항목들에 대해 리뷰합니다.
*NDC17 발표에서는 데모 동영상을 사용했으나, 슬라이드 캡쳐로 대신합니다.
Secrets of Performance Tuning Java on KubernetesBruno Borges
Java on Kubernetes may seem complicated, but after a bit of YAML and Dockerfiles, you will wonder what all that fuss was. But then the performance of your app in 1 CPU/1 GB of RAM makes you wonder. Learn how JVM ergonomics, CPU throttling, and GCs can help increase performance while reducing costs.
Kubernetes와 Kubernetes on OpenStack 환경의 비교와 그 구축방법에 대해서 알아봅니다.
1. 클라우드 동향
2. Kubernetes vs Kubernetes on OpenStack
3. Kubernetes on OpenStack 구축 방벙
4. Kubernetes on OpenStack 운영 방법
This is the presentation I made on JavaDay Kiev 2015 regarding the architecture of Apache Spark. It covers the memory model, the shuffle implementations, data frames and some other high-level staff and can be used as an introduction to Apache Spark
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개if kakao
황민호(robin.hwang) / kakao corp. DSP개발파트
---
최근 Spring Cloud와 Netflix OSS로 MSA를 구성하는 시스템 기반의 서비스들이 많아지는 추세입니다.
카카오에서도 작년에 오픈한 광고 플랫폼 모먼트에 Spring Cloud 기반의 MSA환경을 구성하여, API Gateway도 적용하였는데 1년 반 정도 운영한 경험을 공유할 예정입니다. 더불어 MSA 환경에서는 API Gateway를 통해 인증을 어떻게 처리하는지 알아보고 OAuth2 기반의 JWT Token을 이용한 인증에 대한 이야기도 함께 나눌 예정입니다.
Event-Driven Messaging and Actions using Apache Flink and Apache NiFiDataWorks Summit
At Comcast, our team has been architecting a customer experience platform which is able to react to near-real-time events and interactions and deliver appropriate and timely communications to customers. By combining the low latency capabilities of Apache Flink and the dataflow capabilities of Apache NiFi we are able to process events at high volume to trigger, enrich, filter, and act/communicate to enhance customer experiences. Apache Flink and Apache NiFi complement each other with their strengths in event streaming and correlation, state management, command-and-control, parallelism, development methodology, and interoperability with surrounding technologies. We will trace our journey from starting with Apache NiFi over three years ago and our more recent introduction of Apache Flink into our platform stack to handle more complex scenarios. In this presentation we will compare and contrast which business and technical use cases are best suited to which platform and explore different ways to integrate the two platforms into a single solution.
HDFS has several strengths: horizontally scale its IO bandwidth and scale its storage to petabytes of storage. Further, it provides very low latency metadata operations and scales to over 60K concurrent clients. Hadoop 3.0 recently added Erasure Coding. One of HDFS’s limitations is scaling a number of files and blocks in the system. We describe a radical change to Hadoop’s storage infrastructure with the upcoming Ozone technology. It allows Hadoop to scale to tens of billions of files and blocks and, in the future, to every larger number of smaller objects. Ozone fundamentally separates the namespace layer and the block layer allowing new namespace layers to be added in the future. Further, the use of RAFT protocol has allowed the storage layer to be self-consistent. We show how this technology helps a Hadoop user and also what it means for evolving HDFS in the future. We will also cover the technical details of Ozone.
Speaker: Sanjay Radia, Chief Architect, Founder, Hortonworks
Secrets of Performance Tuning Java on KubernetesBruno Borges
Java on Kubernetes may seem complicated, but after a bit of YAML and Dockerfiles, you will wonder what all that fuss was. But then the performance of your app in 1 CPU/1 GB of RAM makes you wonder. Learn how JVM ergonomics, CPU throttling, and GCs can help increase performance while reducing costs.
Kubernetes와 Kubernetes on OpenStack 환경의 비교와 그 구축방법에 대해서 알아봅니다.
1. 클라우드 동향
2. Kubernetes vs Kubernetes on OpenStack
3. Kubernetes on OpenStack 구축 방벙
4. Kubernetes on OpenStack 운영 방법
This is the presentation I made on JavaDay Kiev 2015 regarding the architecture of Apache Spark. It covers the memory model, the shuffle implementations, data frames and some other high-level staff and can be used as an introduction to Apache Spark
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개if kakao
황민호(robin.hwang) / kakao corp. DSP개발파트
---
최근 Spring Cloud와 Netflix OSS로 MSA를 구성하는 시스템 기반의 서비스들이 많아지는 추세입니다.
카카오에서도 작년에 오픈한 광고 플랫폼 모먼트에 Spring Cloud 기반의 MSA환경을 구성하여, API Gateway도 적용하였는데 1년 반 정도 운영한 경험을 공유할 예정입니다. 더불어 MSA 환경에서는 API Gateway를 통해 인증을 어떻게 처리하는지 알아보고 OAuth2 기반의 JWT Token을 이용한 인증에 대한 이야기도 함께 나눌 예정입니다.
Event-Driven Messaging and Actions using Apache Flink and Apache NiFiDataWorks Summit
At Comcast, our team has been architecting a customer experience platform which is able to react to near-real-time events and interactions and deliver appropriate and timely communications to customers. By combining the low latency capabilities of Apache Flink and the dataflow capabilities of Apache NiFi we are able to process events at high volume to trigger, enrich, filter, and act/communicate to enhance customer experiences. Apache Flink and Apache NiFi complement each other with their strengths in event streaming and correlation, state management, command-and-control, parallelism, development methodology, and interoperability with surrounding technologies. We will trace our journey from starting with Apache NiFi over three years ago and our more recent introduction of Apache Flink into our platform stack to handle more complex scenarios. In this presentation we will compare and contrast which business and technical use cases are best suited to which platform and explore different ways to integrate the two platforms into a single solution.
HDFS has several strengths: horizontally scale its IO bandwidth and scale its storage to petabytes of storage. Further, it provides very low latency metadata operations and scales to over 60K concurrent clients. Hadoop 3.0 recently added Erasure Coding. One of HDFS’s limitations is scaling a number of files and blocks in the system. We describe a radical change to Hadoop’s storage infrastructure with the upcoming Ozone technology. It allows Hadoop to scale to tens of billions of files and blocks and, in the future, to every larger number of smaller objects. Ozone fundamentally separates the namespace layer and the block layer allowing new namespace layers to be added in the future. Further, the use of RAFT protocol has allowed the storage layer to be self-consistent. We show how this technology helps a Hadoop user and also what it means for evolving HDFS in the future. We will also cover the technical details of Ozone.
Speaker: Sanjay Radia, Chief Architect, Founder, Hortonworks
– Elastic stack과 Data pipeline의 개념
– 데이터의 종류와 형태 / Document 데이터 모델링 (mapping, data type)
– 분산 데이터 저장소 관점에서의 Elasticsearch (index, shard & replica, segment)
https://learningspoons.com/course/detail/elastic-stack/
Scala, Spring-Boot, JPA를 활용한 웹 애플리케이션 개발 과정에 대해 다룬다. Spring-Boot와 JPA 조합만으로도 생산성 있는 웹 애플리케이션 개발이 가능하다. 이 조합만으로도 충분히 의미가 있지만 여기에 Scala라는 약간은 불편한 듯 보이는 언어를 도입함으로써 얻을 수 있는 즐거움을 공유한다. Spring-Boot + JPA 조합에 Scala를 적용하면서의 좌충우돌 경험담을 전한다.
[PYCON Korea 2018] Python Application Server for Recommender System Kwangseob Kim
한글 수정: https://www.slideshare.net/kimkwangseop/pycon-korea-2018-python-application-server-for-recommender-system-110602118
추천 시스템을 위한 어플리케이션 서버 개발 후기
@ PYCON Korea 2018
link: https://www.pycon.kr/2018/program/33
Python과 Tensorflow를 활용한 AI Chatbot 개발 및 실무 적용Susang Kim
도입
AI Chatbot 소개
Chatbot Ecosystem
Closed vs Open Domain
Rule Based vs AI
Chat IF Flow and Story Slot
AI기반의 학습을 위한 Data 구성 방법
Data를 구하는 법 / Train을 위한 Word Representation
Data의 구성 / Data Augmentation(Intent, NER)
자연어처리 위한 AI 적용 방안
Intent (Char-CNN) / QnA (Seq2Seq)
Named Entity Recognition (Bi-LSTM CRF) / Ontology (Graph DB)
Chatbot Service를 위한 Architecture 구성
Chatbot Architecture
NLP Architecture
Web Service Architecture
Bot builder / Chatbot API
Test Codes for Chatbot
실무에서 발생하는 문제와 해결 Tips
Ensemble and voting / Trigger / Synonym(N-Gram)
Tone Generator / Parallel processing / Response Speed
마무리
[설명 코드]
Text Augmentation / Slot Bot / QA Bot / Graph DB / Response Generator
5. 이런게 좋아요!
데이터를 필요로 하는 사람이 직접 데이터를 볼 수
있으면 좋겠어요.
개발자들 너무 바빠서 부탁하기에 눈치 보여요.
여러 데이터를 조합해서 볼 수 있으면 좋겠어요.
전체 데이터를 볼 수 있으면 좋겠어요.
쉽고 빨랐으면 좋겠어요.
무엇보다도 Data 보안이 가장 중요해요.
6. 이런거는 필요 없어요!
멋진 챠트나 그래프는 있으면 좋지만 아직 필요
없어요.
엑셀이면 충분해요.
실시간으로 분석할 필요는 없지만 점차 필요하겠죠.
13. 기능이외 검토 항목
최근 기술인가?
오픈된 커뮤니티를
운영하고 있는가?
내부 구조까지 잘 아는
지인이 있는가?
14. - JSON 포맷을 지원해야 함
- S3, HDFS, MySQL 등에 저장된 데이터로
Join이 되어야 함
- 여러 사용자가 동시에 질의를 실행할 수 있어야 함
- Ruby에서 SQL을 실행할 수 있어야 함
- 가능하면 표준 SQL을 지원해야 함
- 기존 Hive 보다는 빨라야 함
- 하지만, Large Scale Data 처리는 필요 없음
(적당한 Scale 이면 충분)
기능 검토 항목
17. 가장 큰 고민은?
실무자가 SQL을 사용할 수 있을까?
(대부분의 질의는 Join, Filter, Group by, Order by)
단순히 학습만 하는 것으로는 한계가 있음
개발자와 실무자의 협업을 통해
SQL 사용 능력 향상
Spark 연동이 아닌 협업 도구로 Zeppelin 활용
18. 실무자의 SQL 학습 과정
사용자는 KPI 등 데이터 요청
개발자가 Notebook에 SQL 작성
(상단 Paragraph에 Query에 대한 설명)
유사한 패턴은 실무자가
Paragraph의 SQL 복사 후
일부 수정하여 직접 데이터 처리
(6개월 정도하면...)
19. Zeppelin에 추가 기능 필요
Presto Interpreter
질의 Progress, Kill 기능
리소스를 많이 사용하는 질의 실행 제한
Notebook에 대한 생성, 수정, 실행 권한
특정 기능에 대한 접근 제한
데이터의 접근 제한
21. Presto Interpreter: Data ACL
Presto 권한 관리는 각 Connector의 ACL 기능 이용
But, Kafka 등은 지원하지 않음
각 스토리지에 권한관리 별도 설정 해야 함
Presto Zeppelin Interpreter의 권한관리
. Catalog, Schema, Table, Column 단위로 권한 관리
. Read/Write는 schema 레벨로 관리
. Operation(INSERT, SELECT 등)별로 권한 관리는
지원하지 않음
22. Presto Interpreter: Data ACL
접근 제안 관리 설정
. {ZEPPELIN_HOME}/conf/presto-acl.properties
. {group}.{catalog}.{schema}.{table}.{columns}=allow|deny
국가별 사용자 Schema 접근 제한 예
. ko_emp.hive.korea.*=allow (한국 사용자만 접근)
컬럼 접근 제한
. ko_dev.hive.korea.logs.*=allow
(한국 개발자 logs 테이블 모든 컬럼 접근 권한 허용)
. ko_emp.mysql.korea.users.id,created_at=allow
(한국 일반 사용자에게 users 테이블의 id, created_at 컬럼만 허용)
23. Presto Interpreter: Query 검증
다음과 같은 잘못된 질의 실행 요청에 대한 검증
Partition column 반드시 사용
. Fact 테이블(logs) 질의 시 Where 절에 반드시
Partition column 존재 해야 함
. Join, Sub query 등 복잡한 질의도 검증 가능
Limit 절이 없는 경우 불필요한 데이터가 조회
. Plugin 설정에서 max limit 수 설정 가능
. 해당 설정 초과되는 데이터는 개발팀으로 요청
24. Zeppelin Improvement
Paragraph 결과 데이터 다운로드 기능이 없어서
. Paragraph 결과 데이터가 많은 경우 사용자 브라우저 속도 저하
. Copy & Paste 시 번거롭고, Excel Cell이 잘 깨짐
개선 사항
. 최대 1000개 레코드만 브라우저에 표시
. 1000개 이상의 데이터는 서버에 파일로 저장(retention 설정)
. Paragraph Download 버튼 추가
25. Zeppelin Improvement
Authentication
. Zeppelin 기본 기능 이용(Apache Shiro 기반)
. Presto Interpreter의권한관리에서 user, group 으로 사용
Authorization
. Zeppelin 커뮤니티 내에서도 꾸준히 개선 작업하고 있지만
바로 사용하기 위해 소스 코드내 권한 제어 코드 임의 추가
. Group 명 수정: User1, User2, User3 -> dev, emp, emp_writer
. 화면 특정 기능에 대한 접근 제한 기능
. Admin, Dev 계정만 Notebook 생성 가능
. Admin 계정만 Interpreter, Configuration 메뉴 사용 가능 등