SlideShare a Scribd company logo
/ (+ )
lablup.com
,
,
.
/ (+ )
lablup.com
,
,
.
연구자 및 교육자를 위한 계산 및 분석 플랫폼 설계 - PyCon KR 2015
▪
▪
▪ /
▪
▪
/
▪ TNF/ Needlworks
▪ …
▪
▪
▪
▪ NBA
▪
80 Gbps
▪
▪ …
http://www.lablup.com .
▪ 21 , 20 , 19
▪
▪ ,
21
?
▪
.
▪
.
.
..
▪
▪
▪ / / /
▪
▪ /
▪ Three keyboardists but…
▪
▪
▪
▪ resource consolidation
▪
▪
연구자 및 교육자를 위한 계산 및 분석 플랫폼 설계 - PyCon KR 2015
!
Python!
…
…
Python!
▪
▪ :
▪ PEP-8
▪ :
▪
▪
Python T_T
▪
▪
▪ PyPy / Pyston
▪ :
▪ C
▪ Cython
▪
Python /
▪
▪ CS101
▪ “ ”
▪
▪ indent
…
▪
▪ MATLAB numpy
:
▪
▪ MATLAB : matplotlib, ipython notebook
▪ Ultra-complex figures
▪
▪
▪
▪ /
:
▪
▪ NBA
▪
▪ configuration Python
▪ I/O
stdout asyncio
It's time to go Python 3
▪ Python 3
▪ Django, numpy/scipy, …
▪ Python 3.3
▪ PEP-393: str
unicode codepoint
▪ narrow build UTF-16, wide build UTF-32
▪ UTF-8/16/32
▪ ASCII/Latin-1
▪ / ·
It's time to go Python 3
▪ Python 3.4
▪ PEP-3156: asyncio coroutine
▪ I/O
▪ GIL (global interpreter lock)
▪
▪ pip virtualenv
▪
▪ RabbitMQ, Kafka, Celery, ...
▪
▪ (broker) ,
▪ redis …
– ZeroMQ
▪
▪ Request-Reply
▪ 1
( : HTTP-like server/client)
▪ Push-Pull
▪ N-to-1
( : logging system, task partitioning)
▪ Publish-Subscribe
▪ 1-to-N / N-to-M
( : broadcast)
– ZeroMQ
▪ :
▪ zero broker, zero latency, zero administration, ...
▪ : connection
▪ TCP / UDP / UNIX domain / local "in-process"
▪ zeromq transport header (ZMTP)
▪ payload (64+ )
▪ : persistent queue
▪ TCP reliability
– LogStash
▪ LogStash
▪ input / filter / output
▪ ZeroMQ, S3
▪ ( !)
Django
User Kernel
Logstash
Server
Database
ZeroMQ (push-pull)
+ JSON
AWS S3
msgpack
On-premise vs. Hosting vs. Cloud
▪
▪ " " ...
▪ , ,
▪ AWS
▪
▪
▪ …
▪ 2012 R2 / /
.
Docker containers
▪ docker container
▪
▪ VM deploy/destroy
▪ AWS EC2 Instance: ( )
▪ pooling
▪ Amazon ECS?
▪ container (run task) latency
▪ …
Docker containers
▪
▪ : instance
▪ Microsoft docker
▪ Azure Windows
Polymer library
▪ HTML5
▪ HTML imports / Custom elements / Shadow DOM
▪ Web components
▪ “Polyfill”
▪
▪ DOMelements
Polymer library
▪ ...
▪ !
▪ Bootstrap + theme?
▪
▪ HTML5 !
연구자 및 교육자를 위한 계산 및 분석 플랫폼 설계 - PyCon KR 2015
연구자 및 교육자를 위한 계산 및 분석 플랫폼 설계 - PyCon KR 2015
HTML imports!
Reusable web
components!
Shadow DOM!
Polyfill!
Polymer
▪
▪ 7 ? ?
Electron: Cross-platform Polymer
▪ : cross-platform webapp container
▪ Electron
▪ Github Node.js
▪ Node Chromium wrapping
▪ / /
▪ ATOM
▪ ?
▪ Apache Cordova
▪
▪
▪
▪ Django UnitTest + Selenium
▪ Selenium webdriver:
▪
▪
▪
▪ sphinx
▪ reST
▪
▪
▪ !
▪
▪
▪
▪ sphinx
▪ reST
▪
▪
▪ !
▪
.
.
, ,
+
,
▪ +
.
▪ :
▪ –
▪ , , scaling, ...
➞ ++
▪ :
▪ –
▪
▪ .
▪ !
▪
▪
CodeON!
//codeonweb.com
!
연구자 및 교육자를 위한 계산 및 분석 플랫폼 설계 - PyCon KR 2015
연구자 및 교육자를 위한 계산 및 분석 플랫폼 설계 - PyCon KR 2015
연구자 및 교육자를 위한 계산 및 분석 플랫폼 설계 - PyCon KR 2015
연구자 및 교육자를 위한 계산 및 분석 플랫폼 설계 - PyCon KR 2015
…
, …
연구자 및 교육자를 위한 계산 및 분석 플랫폼 설계 - PyCon KR 2015
“ .”
▪ React / Flux / AngularJS / Polymer / ...
▪ +UI
▪ Polymer 0.9 API ....
▪ (?) Bootstrap …
▪ I/O 2015 Polymer 1.0
...
Polymer: it is too google to be true
▪
▪ 0.5 - 0.8rc2 - 0.9 - …
▪
▪ ( )
▪ Google I/O - 1.0 :
Polymer: vulcanize
▪ Vulcanize
▪ :
▪ IE – +
▪ CSS – +
▪ Crisper javascript map shadow DOM
root - +
Polymer: vulcanize
▪ Vulcanize
▪ :
▪ IE –
▪ CSS –
▪ Crisper javascript map shadow DOM
root -
Polymer: polyfill
▪
▪
▪
(html import
shadow DOM)
polyfill
▪
▪
Polymer + Django
▪
▪ {{ … }}
▪ Polymer –
▪ Django –
▪
▪
▪ …
Polymer + Django + Security
▪ CORS (cross-origin resource scripting)
▪ Django – CORS header ( )
▪ Polymer – vulcanize Javascript CORS
▪ Crisper CORS Javascript
▪ -
▪ XSS
▪ Django - CSRF token
▪ Polymer – header iron-ajax
▪
Polymer
▪ Production ready?!
▪
▪ “Do not swim in sandocean. Swim in the ocean.”
▪ HTML5
▪
▪ X-tag, react, polymer…
▪ ?
Polymer
▪ Production ready?!
▪
▪ “Do not swim in sandocean. Swim in the ocean.”
▪ HTML5
▪
▪ X-tag, react, polymer…
▪ ?
Electron + web
▪ ... !
▪
▪
(Noto )
▪
▪ CSS:
.
▪
?
: Django + RDS
▪ UTF-8 Python ?
▪ (cf., str / bytes / io / codecs)
▪ MySQL SQLite
▪ MySQL
▪ ForeignKey Django
▪ MySQL + Django + Korean = EPIC FAIL
▪ ( ) Postgres ...
▪ postgres ( / ) .
Python 3.4 – asyncio / coroutine
▪ .
▪ yield	from	 ...
▪ AST	 static	analysis coroutine
yield	from
▪ , 100% static analysis
▪ duck typing + dynamic method generation
+ method proxy pattern ...
▪ Python 3.5 await/async
!
Python 3.4 – asyncio loop
▪ loop.close()
..
import asyncio
import asyncio_redis
loop = asyncio.get_event_loop()
conn = loop.run_until_complete(
asyncio_redis.Connection.create('localhost', 6379))
conn.close()
loop.close()
Task was destroyed but it is pending!
task: <Task pending coro=<_reader_coroutine() running at /...
/lib/python3.4/site-packages/asyncio_redis/protocol.py:919>
wait_for=<Future pending cb=[Task._wakeup()]>>
Python 3.4 – asyncio loop
▪ asyncio graceful shutdown ,
1. loop._run_once()
2. loop.run_until_complete(asyncio.sleep(0))
3. loop.run_until_complete(server.wait_closed())
▪ , wait_closed()
coroutine
.
▪ event loop .
Python 3.4 – asyncio loop
#! /usr/bin/env python3
import asyncio
loop = asyncio.get_event_loop()
@asyncio.coroutine
def my_timer():
i = 0
while True:
yield from asyncio.sleep(1)
print(i)
i += 1
try:
asyncio.async(my_timer(), loop=loop)
loop.run_forever()
except KeyboardInterrupt:
pass
finally:
loop.close()
^CTask was destroyed but it is pending!
task: <Task pending coro=<my_timer() done, defined at test.py:4>
wait_for=<Future pending cb=[Task._wakeup()]>>
Python 3.4 – asyncio loop
#! /usr/bin/env python3
import asyncio
loop = asyncio.get_event_loop()
@asyncio.coroutine
def my_timer():
i = 0
while True:
yield from asyncio.sleep(1)
print(i)
i += 1
try:
asyncio.async(my_timer(), loop=loop)
loop.run_forever()
except KeyboardInterrupt:
for t in asyncio.Task.all_tasks():
t.cancel()
try:
loop._run_once()
except asyncio.CancelledError:
pass
finally:
loop.close()
asyncio_redis
▪ Redis asyncio
▪ Heisenbug ! 🚨
▪ SCAN key ...
▪ while if ➞
▪ https://github.com/jonathanslenders/asyncio-
redis/issues/65
▪ Connection pool API
▪ API call connection
stateful API ( : SELECT)
▪ (aioredis)
: – ZeroMQ
▪ Asynchronous ? block ??
▪ socket connect
. ( ...)
▪ send/recv timeout
▪ aiozmq , blocking call
asyncio.wait_for timeout
.
▪ pyzmq , socket.poll(msec)
timeout .
: – LogStash
▪ zmq input plugin s3 output plugin
zmq recv_string
▪ 1: s3 output plugin “write”
, PutObject
DeleteObject .
▪ 2: config , output
plugin log level
· .
▪ 3: output plugin
input plugin receive timeout .
: Docker
▪
▪ docker registry "latest"
latest
▪ 2.0 2.0.1 tag
▪
▪
▪ docker 1.8 , CoreOS (rkt)
▪ /API
:
▪ Jupyter / ipython
▪ scalable
▪ Jupyter
▪ Unix	
▪
▪ :
▪
▪ – Sorna
▪ .
CodeON
▪ Container Resource Consolidation
▪ Kubernetes
▪ paxos raft
agreement key-value
store .
▪ Ingen REPL (read-evaluate-print loop)
▪ stdout/stderr	streaming
▪ interactive	plot	
▪ image,	sound	 multimedia
▪
▪
▪ User profiler + backtracer + ML with back propagation
▪
▪ d3.js fluid nonlinear navigation UI
▪
▪
▪
▪
▪
▪
.
▪ ... + +
…
▪ .
▪ ?
연구자 및 교육자를 위한 계산 및 분석 플랫폼 설계 - PyCon KR 2015
Lablup Inc.
http://www.lablup.com

More Related Content

PDF
What is nodejs
PDF
Node.js
PDF
The DOM is a Mess @ Yahoo
PDF
PDF
Java/Spring과 Node.js의공존
KEY
Building a real life application in node js
PDF
Performance Improvements in Browsers
PDF
HTML5: friend or foe (to Flash)?
What is nodejs
Node.js
The DOM is a Mess @ Yahoo
Java/Spring과 Node.js의공존
Building a real life application in node js
Performance Improvements in Browsers
HTML5: friend or foe (to Flash)?

What's hot (20)

PDF
"Swoole: double troubles in c", Alexandr Vronskiy
PDF
rake puppetexpert:create - Puppet Camp Silicon Valley 2014
PDF
Puppet at Opera Sofware - PuppetCamp Oslo 2013
PDF
우리가 모르는 노드로 할 수 있는 몇가지
PDF
하루프레스
PDF
Understanding the Node.js Platform
PPT
Web::Scraper
PDF
"今" 使えるJavaScriptのトレンド
PDF
Datagrids with Symfony 2, Backbone and Backgrid
PPTX
JavaScript on the Desktop
PDF
Middleware as Code with mruby
PDF
Automate with Ansible basic (2/e, English)
PPTX
ES6 is Nigh
PDF
Analyse Yourself
PDF
HTML5 for the Silverlight Guy
PDF
The SPDY Protocol
PDF
はじめてのSymfony2
PDF
Building a desktop app with HTTP::Engine, SQLite and jQuery
KEY
Devsumi2012 攻めの運用の極意
PDF
Web Crawling with NodeJS
"Swoole: double troubles in c", Alexandr Vronskiy
rake puppetexpert:create - Puppet Camp Silicon Valley 2014
Puppet at Opera Sofware - PuppetCamp Oslo 2013
우리가 모르는 노드로 할 수 있는 몇가지
하루프레스
Understanding the Node.js Platform
Web::Scraper
"今" 使えるJavaScriptのトレンド
Datagrids with Symfony 2, Backbone and Backgrid
JavaScript on the Desktop
Middleware as Code with mruby
Automate with Ansible basic (2/e, English)
ES6 is Nigh
Analyse Yourself
HTML5 for the Silverlight Guy
The SPDY Protocol
はじめてのSymfony2
Building a desktop app with HTTP::Engine, SQLite and jQuery
Devsumi2012 攻めの運用の極意
Web Crawling with NodeJS
Ad

Similar to 연구자 및 교육자를 위한 계산 및 분석 플랫폼 설계 - PyCon KR 2015 (20)

PDF
Beyond Puppet
PDF
Complex Made Simple: Sleep Better with TorqueBox
PDF
Why my Go program is slow?
PDF
marko_go_in_badoo
PDF
Debugging PySpark: Spark Summit East talk by Holden Karau
PDF
Debugging PySpark - Spark Summit East 2017
PDF
Kettunen, miaubiz fuzzing at scale and in style
KEY
plackdo, plack-like web interface on perl6
KEY
Pylons + Tokyo Cabinet
PPTX
JavaScript Performance Patterns
PDF
ooc - OSDC 2010 - Amos Wenger
PDF
Доклад Антона Поварова "Go in Badoo" с Golang Meetup
KEY
Sinatra for REST services
PDF
Meetup C++ Floripa - Conan.io
PDF
(Fios#02) 2. elk 포렌식 분석
KEY
Foreman - Process manager for applications with multiple components
PPTX
JavaScript performance patterns
PPTX
Racing with Droids
PDF
Using Nix and Docker as automated deployment solutions
PDF
EEA Faceted Navigation and Plone 6.pdf
Beyond Puppet
Complex Made Simple: Sleep Better with TorqueBox
Why my Go program is slow?
marko_go_in_badoo
Debugging PySpark: Spark Summit East talk by Holden Karau
Debugging PySpark - Spark Summit East 2017
Kettunen, miaubiz fuzzing at scale and in style
plackdo, plack-like web interface on perl6
Pylons + Tokyo Cabinet
JavaScript Performance Patterns
ooc - OSDC 2010 - Amos Wenger
Доклад Антона Поварова "Go in Badoo" с Golang Meetup
Sinatra for REST services
Meetup C++ Floripa - Conan.io
(Fios#02) 2. elk 포렌식 분석
Foreman - Process manager for applications with multiple components
JavaScript performance patterns
Racing with Droids
Using Nix and Docker as automated deployment solutions
EEA Faceted Navigation and Plone 6.pdf
Ad

More from Jeongkyu Shin (20)

PDF
Boosting machine learning workflow with TensorFlow 2.0
PDF
Machine Learning in Google I/O 19
PDF
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
PDF
TensorFlow 2: New Era of Developing Deep Learning Models
PDF
Machine Learning Model Serving with Backend.AI
PDF
그렇게 커미터가 된다: Python을 통해 오픈소스 생태계 가르치기
PDF
오픈소스 라이선스를 둘러싼 소송들
PDF
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
PDF
모바일 개발자를 위한 ML Kit: Machine Learning SDK 소개
PDF
회색지대: 이상과 현실 - 오픈소스 저작권
PDF
TensorFlow.Data 및 TensorFlow Hub
PDF
Google Polymer in Action
PDF
The Flow of TensorFlow
PDF
Let Android dream electric sheep: Making emotion model for chat-bot with Pyth...
PDF
구글의 머신러닝 비전: TPU부터 모바일까지 (Google I/O Extended Seoul 2017)
PDF
Deep-learning based Language Understanding and Emotion extractions
PDF
기술 관심 갖기: 스타트업 기술 101 (Interested in Tech?: Startup Technology 101)
PDF
OSS SW Basics Lecture 14: Open source hardware
PDF
OSS SW Basics Lecture 12: Open source in research fields
PDF
OSS SW Basics Lecture 10: Setting up term project
Boosting machine learning workflow with TensorFlow 2.0
Machine Learning in Google I/O 19
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
TensorFlow 2: New Era of Developing Deep Learning Models
Machine Learning Model Serving with Backend.AI
그렇게 커미터가 된다: Python을 통해 오픈소스 생태계 가르치기
오픈소스 라이선스를 둘러싼 소송들
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
모바일 개발자를 위한 ML Kit: Machine Learning SDK 소개
회색지대: 이상과 현실 - 오픈소스 저작권
TensorFlow.Data 및 TensorFlow Hub
Google Polymer in Action
The Flow of TensorFlow
Let Android dream electric sheep: Making emotion model for chat-bot with Pyth...
구글의 머신러닝 비전: TPU부터 모바일까지 (Google I/O Extended Seoul 2017)
Deep-learning based Language Understanding and Emotion extractions
기술 관심 갖기: 스타트업 기술 101 (Interested in Tech?: Startup Technology 101)
OSS SW Basics Lecture 14: Open source hardware
OSS SW Basics Lecture 12: Open source in research fields
OSS SW Basics Lecture 10: Setting up term project

Recently uploaded (20)

PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PPTX
Online Work Permit System for Fast Permit Processing
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
Understanding Forklifts - TECH EHS Solution
PPTX
ai tools demonstartion for schools and inter college
PPTX
CHAPTER 2 - PM Management and IT Context
PPTX
ISO 45001 Occupational Health and Safety Management System
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
AI in Product Development-omnex systems
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
Digital Strategies for Manufacturing Companies
PPTX
L1 - Introduction to python Backend.pptx
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
VVF-Customer-Presentation2025-Ver1.9.pptx
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Online Work Permit System for Fast Permit Processing
How Creative Agencies Leverage Project Management Software.pdf
Which alternative to Crystal Reports is best for small or large businesses.pdf
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Understanding Forklifts - TECH EHS Solution
ai tools demonstartion for schools and inter college
CHAPTER 2 - PM Management and IT Context
ISO 45001 Occupational Health and Safety Management System
Internet Downloader Manager (IDM) Crack 6.42 Build 41
AI in Product Development-omnex systems
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
How to Choose the Right IT Partner for Your Business in Malaysia
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Digital Strategies for Manufacturing Companies
L1 - Introduction to python Backend.pptx
Wondershare Filmora 15 Crack With Activation Key [2025
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool

연구자 및 교육자를 위한 계산 및 분석 플랫폼 설계 - PyCon KR 2015