development Yobi
-
Github과 비슷한 종류의 설치형 오픈소스
- Play2에 Java 사용(ORM은 Ebean)
- ORM 때문에 고생함
- Github이라는 강력한 상대, 영혼없는 개발자
- 개밥먹기 - 제품향상위한 제일 좋은 방법
- 개발자 모두가 기획, 디자인 ,개발, 테스트
- 코드리뷰
- Play2 버그로 인해 많이 고생(Java 지원이 약함)
- scala template으로 인한 어려움
- 문서작업은 plain text 기반
android performance
- Jelly Bean부터 많이 좋아짐
- Bitmap decoding performance
- GC 개선 - concurrent
- SDK, NDK, Renderscipt(LLVM)
- Chrome Browser 구조 - render, browser process
- Vsync - schedule for input and drawing
- Blink 및 Chrome 이 좋은 참고자료
- gpu computing에 주목
realtime document
- Operational Transformation - 구현이 어려움
- Operation 만 전송, OT function 으로 변환해 동기화
- client - javascript
- server - java(logic재사용 문제, 표현력이 약함) -> drop
- server - node.js ( document model 재사용가능, high order function) -> 채택
- node.js - non blocking I/O, websocket(socket.io)
- OT open source - Etherpad, sharejs, ot.js, chageset(ot모듈만 가져다 쓰기 좋음)
- summet note(github)
cloud foundry
- open source pass - vmware
- v1, v2
- Nats - 모든 컴포넌트가 바라보는 곳으로 SPOF
- Router - go(v2), SSL 제약, nginx를 revers proxy로 두어서 보완
- Stager - DEA에 흡수(v2). build pack
- DEA - warden container별 관리 실행, LXC가 아닌 cgroup 사용
- service gateway, controller - provisioning, warden container 관리
- controller는 ROR로 개발되어짐
java script로 하는 naver office
- Performance problem
- 응답없음 - function call 내 명령 기준
- dynamic rendering - chunk rendering, setTimeout
- dom 객체 과다 문제 - 보이는 부분만 렌더링, buffer 영역
- reflow, repaint - batch dom manipulation, repaint와 reflow 격리
- theme - document style sheet 의 메소드 사용
- local font detecting - ruler span 사용, 높이/너비 변경 확인
- clipboard 처리 - hidden iframe 사용, type에 따른 처리
- vector element event - 이벤트는 사각형 기준이 문제, svg는 pointer event prop 사용(파폭과 크롬에서는 div에서도 됨)
- IE 에서는 특정 클래명 검사, elementFromPosition, fireevent 사용
- 앞으로 Javascript는 application개발의 미래다(desktop, mobile등)
Nosql and hadoop
- operational vs analytic
- sqoop 통해 couchbase등 nosql 과의 연동
- 분산처리로 인해 sqoop이 전통적 ETL에 비해 big data에 유리
- Ansible 사용해서 couchbase 설치
- javascript를 사용해서 map, reduce for couchbase 시연
- node.js express 사용해서 결과 시연
multi thread programming
- Lock의 문제
- Data race condition
- Compiler 최적화
- CPU 사기(최적화)
- Synchronized - performance problem
- CAS
- Lock Free programming - 어렵다
- TBB, PPL - 범용적, 성능이 저하
- functional programming(Erlang..)
netflix
- 실시간 분석
- 시험삼아 소규모 deploy, 모니터링 패턴 비교
- mr scheduling 도입 - 지니
- hive query - latency 문제
- visualization (3d 지구) - 위치등
- monitoring - discover outstanding data, intelligent alert
- kibana 로 상세탐색
- data pipeline - suro(open source 예정)
- log가 map 형식
- druid - column oriented storage, bitmap index
- monitoring - servo and atlas 사용
- software load balancer - eureka
- kafka - 수집담당
- elastic search
- zookeeper - zkclient를 curator로 대체
Tajo
- hive is too slow
- hive 문제점...
- vectorized 연산, 별도 스케줄링 엔진, cost based, sequence disk access...
- open source 적용시 문제 - irq 할당 버그, kernal option disable
- SIMD, LLVM 최신 기술 적용 - C++ 변환중
ram cloud
- low latency at small scale
- log structure, fast recovery, partitioned recovery
- backup on disk
- clean mechanism
- replicated state machine
- Raft - Consensus algorithm(paxos is difficult)
- Logcabin - configuration server(like zookeeper)
recommendation system
- skill endorsed
- supervised machine learning - 과거 데이터 기반으로 미래를 예측
- Hadoop 기반 - infra 기반과 분석기반이 분리
- feature 선정 - feature 추출 - 수집 - 모델생성 - 서비스 반영
- 초기에 기초자료 없는 경우 다른 produc의 결과 및 메뉴얼 작업을 기초 데이터로 세팅
- Feature 수집은 kafka 이용 - 저장은 hdfs - 분석은 pig, java, r 등
- flow는 azkaban을 사용해서 관리
- 생성된 모델데이터로 만든 추천데이타는 voldmort에 저장
- machine learning algorithm은 속도, 정확성 두 요소 고려
Made with Slides.com