COSCUP 2010 結束一段時間了, 錄影檔也都有釋放出來, 可以搭配著看. 🙂
COSCUP 議程與錄影檔
詳見: COSCUP / GNOME.Asia 2010 簡報與錄影檔案
COSCUP 錄影擋下載 (感謝 Pixnet)
COSCUP 2010 議程筆記
Yahoo Traffic Server, a Powerful Cloud Gatekeeper - Shih-Yong Wang (Software Engineer, Yahoo! Taiwan)
- Proxy Caching.
- Proxy Caching: explicit, transparent
- Reverse Proxy Caching: deploy on "server side"
- YTS: high performance web caching solution (Squid, Varnish, HAProxy, Nginx)
- Traffic Edge (Inktomi)
- 買 2~5 名的 Search engine, 第一名不賣. XD
- Traffic Server: multi-threaded state machine.
- YTS 跑再 64bit OS 效能好很多.
- YTS 有自己的 DNS resolver.
- YTS: supports an extensible plug-in architecture (有強大的 API, 可以寫自己的 Plugin)
- YTS: 可以當L7 的 Switch.
- YTS vs Squid - 每秒 QPS 可以跑到 4萬 ~ 4萬5千, Squid 跑 5000 request. (通常 2800~3000 IO 就滿了)
- Service time: YTS 可以在 50ms 以下.
- Y! 如何使用 YTS?
- Yahoo! CDN 使用 YTS.
- Y! CDN 的數字: 128TB per day
- 17 billion requests per day, peak 20+Gbps.
- Y! CDN 可做到 90% hit rate.
- Yahoo Connection Proxy (HTTP Proxy)
- Cache connection.
- 讓網友在最近的地方連上線.
- client -> 連到 Y! 最近的點, 然後, 連到 US, UK 都會走 Y! 內部的 connection (Cache connection)
- provides keep-alive support
- keep-alive: 在 session 用完前, 可以一直將資料送給你. (不然 HTTP 要走 3 Tier)
- YTS 做分流. news.yahoo.com, "/", "api", "/..y/I" ... 用 sub dir 做分流 (分多台不同機器)
- YTS: Open Source: http://trafficserver.apache.org/
- Setup YTS.
- install YTS.
- create mapping rules (remap.config)
- map tw.image.xxx.yahoo.com http://localhost:8080
- setup cache storage (storage.config)
- enable reverse proxy (records.config)
- DNS entry of the advertised hostname of the origin server => YTS (ex: tw.image.XXX.yahoo.com => tw.ytsvip.XXX.yahoo.com)
- map: map tw.image.XX.yahoo.com/oa tw.m.XXX.yahoo.com
- map: map http://ab.cd.yahoo.com:9876/A.html... ef.gh.yahoo.com/dl
- map 甚至可以 http 指到 https 去...
- Cluster Caching.
- Object Freshness (更新時間)
- YTS 一定要: 後端需要 support expires 和 max-age header
- freshness_limit = (date - last_modified) * threshold
- Cache Management: cache preloading.
- 動態網址 ?, ;, cgi, cookie oject, 同一個 URL 來自不同網友, 都可以 cache.
- YTS 要決定 Cache Size.
- 越常用的要越被 Cache 住, 要如何算.
- 每個 object, image, js, css 平均 Size. Total 容量要多大.
- YTS 建議用 raw disk. (跳過 OS I/O, 可以跳過 kernel)
- 若要放在 Ram 裡面: proxy.config.cache.ram_cache.size
- YTS 是 32bit only, 所以 2.5~3G 的 ram.可以吃.
- proxy.config.cache.ram_cache_cutoff
- YTS startup, 需要 initialize 需要 10s.
- 那 10s 是無法 cache 的.
- 動態 URL 預設都是會被 cache 住的.
- YTS Plugin: regex mapping, WoE (Where on Earth) 哪邊來, 哪邊可以看, 哪邊不能看.
- cookie based routing
- Oauth request caching
- map CAPTCHA session
- traffic throttle
- User -> JS, CSS
- User 連到某服務, 會導到最近的機房 (Keep-Alive)
- YTS 的 L7 URL Hashing.
- YTS 是 multi-thread, 其他得都是靠 fork.
- Cookie cache, 某些服務要區分, 台灣, 香港, 美國, 依據不同地區, 去不同地方(cache public data)
Cloud Experience — from Google to Delta - 翟本喬 (台達電子 資深處長)
- GFS, Hadoop (Single master)
- MapReduce
- MapReduce 最初是要建立 Search index 用.
- 所以 MapReduce 會自動去算最大值, 最小值.. 等等....
- Ram 速度是 HD 的 1000 倍.....
- 計算的單位, 可以切成很多個小塊, 就可以用便宜的電腦來解決.
- 3年當一台, 所以 1000 台的狀況, 每天會當1台..
- 軟體寫得好, 硬體可以省非常多的錢~
- 5年的電費, 是比 Server 還貴~
- 當初是用面積來算錢的, 所以在面積內, 可以塞多少機器, 就盡量塞..
- 買電風扇.... 來解決散熱~
- 租金改面積 + 用電量, 所以改 2U 的機器~
- 硬碟用魔鬼氈...
- 多久壞一次沒關係, 只要在別人沒發覺前修好就好了
- 大多電壓現在主機板都沒有在用了
- 將電壓改成一條就好(都需要 convert)
- Power 省 92%, 12v 可以掛汽車電池就可以搞定, 不需要 UPS.
- Large data sets, Parallel and distributed computing, Fault tolerance.
- Cloud computing 定義.
- On-demand self-service, Broad network access, Resource pooling, Rapid elasticity, Measured Service(使用多少, 付多少錢)
- 真的是錙銖必較
- Cloud ... 是 Cloud, 還是只是一堆電腦賣給你~
- 掛汽車電池代替ups真是個不錯的想法耶,穩定性呢?
- Private Cloud: 在 Cloud 裡面, 單獨的一個區塊, 單獨存你的資料, 跑你的程式.
- clonn: 把漏電亮去掉, 然後放對位置, 可以用 4~5年, 放錯位置只能用 1年~
- WebApp/SaaS
- WebApp/SaaS, IaaS
- 一個租用的系統, 不用的時候可以放掉 = SaaS.
- 如果一個租用的系統, 不用時還是繼續放在那邊, 就是 WebApp
- 台達 = 電源
- Data center 和 Cloud Computing
- IaaS: Data center, IT equipment, Systems software, Cloud infrastructure software
- 省電和效能的比較.
- 硬體成本所有元件的成本, 都列出來.
- 請問一下,「12v 可以掛汽車電池就可以搞定, 不需要 UPS.」,是指說電腦的12V電壓直接吃UPS的供電,還是說用汽車電池再轉成110Vac供應給power supply呢??thanks!!
- 應該說, 用汽車電池就可以不用 UPS.
- 我最記得 memory 才是王道...XD
App Engine 大爆料 - 葉平 Ping Yeh
- 投影片
- App Engine 免費版, 一分鐘只能寄 8封信
- 是的..所以要用 mail Queue or Task Queue 的方式來跑....
- i18n 可以走 po / mo, 但是於 Template 不是用 _().
- 說到 mail Queue ... Pear Mail_Queue
- 有用到 Google 的服務, 都要用 try-except 包起來, 並寫 log 紀錄.
HTML5: Building the Next Generation Web Application - Eric Bidelman (Developer Advocate, Google)
- JSON.parse();
- JSON.stringify();
- String.trim(.....);
- rel="pingback"
- a rel="pingback", link rel="prefetch"
- html 5 的漂亮表單
- 有個問題, 前前一場 Opera 講 not in HTML5 -> db storage.
- 但是後來這兩場, 都有講到 db storage.
- 後來有把它獨立出來,我之前的分享噗裡有提到
- 可能講者已經準備了,所以只好繼續拿出來講
- Eric 有說他講的是 "HTML5++" 😉
- 26 HTML5 Features, Tips, and Techniques you Must Know
- Mike Smith 講的 html5rocks.com 其實是 Eric Bidelman 建的 site
HTML5 for Programmers Michael(tm) Smith (HTML Activity/WG lead, W3C)
- 投影片
- http://people.w3.org/mike/
- [email protected]
- twitter: http://twitter.com/sideshowbarker
- HTML5 ROCKS
- Web Sockets, 之後可以跟遠端 smtp.. 等, 連線直接操作使用.
- HTML5 Reset
HTML5 - More Web for More People
- canvas, video, audio
- SVG, MathML
- not in HTML5, geo, css3 transitions, webfonts, borders, db storage, device access apis.
- Accesskey mode
xPad — Building Simple Tablet OS with Gtk/WebKit 陳品勳 penk (xpud.org)
- 投影片
- compile => 重新整理
- parse 翻譯的 .mo 檔, 弄出 rosetta.js
- plate UI - web-base 使用介面
- plate.js - js 與 cli 溝通的橋樑
- 用 JavaScript / CSS / HTML 來寫桌面
- xPUD
- xPAD
- $job_request = "overloaded";
- 以網頁回基礎的介面.
- Web is the new graphic library!
- I code in C, but a web developer in mind.
- what a designer.
- finger-friendly
- 觸控式的介面 - No mouseover event, Finger 要可以輕易存取.
- 用 iframe 去遮掉背景程式.
- Virtual Keyboard - 螢幕小鍵盤 + 輸入法 + 好的鍵盤排列
- fvkbd-gtk - 鍵盤
- fvkbd-gtk + scim + scim-bridge patch
- 捲動效果 - Kinetic scrolling.
- TouchWeb.
- 電腦無所不在原則, 讓人感覺不到的介面, 才是好的介面.
- Feelingless UI - "TouchWeb" browser.
- http://gitorious.org/fvkbd
- 在網頁開 gtk / qt 寫得程式.
- 用 mozplugger 來作嵌入, NPAPI plugin
- 在網頁裡面開一個 XWindow, 靠裡面的程式, 去攔截 X 的 id, 在 re-parent 塞進去 網頁裡面.
- 寫自己的 Window Manager
- TableWare .... writing window manager in html / css / javascript. (web base 的 window manager)
- TableWare - WebKit + JS/D-Bus bridge, NPAPI plugin + XCB (Window manager, 將 notify 都送去 D-Bus)
- 未來: GObject DOM binding(取代 D-Bus) + jQuery Mobile + Comet Server
- http://wiki.github.com/penk/mkxpud/next-generation-of-xpud
- WebKit: HTML5, CSS3 支援, Chrome OS 支援.
- 以功能發展的方向來說, 還沒考慮到 Security. 😀
The NoSQL Movement: CouchDB as an example - 周立瑋 sleepnova
- http://couchdb.apache.org/
- 講不完, 等 投影片
Building a Cloud Computing Platform by Using Open Source Software - Michael Pan (CEO, nephosity)
- Hadoop-core provides map-reduce
- HDFS provides data management funcationality
- Hypervisor / Virtual machine
- QEMU (virtualizer), KVM, Xen, VirtualBox-(Desktop only)
- Single big file.
- (OS)
- Platform - Data management, Map reduce, Workflow management, Messaging.
- app | wfm | MR | DBM | VM/ OS 機器由下到上的流程
- 兩台機器溝通 Messaging | TCP/IP | ethernet.
- Distribute / Replicate your data access network.
- SQL vs NoSQL, small file vs. BLOG storage
- Centralized vs. decentralized
- HDFS (Hadoop), DDFS (Nokia), Cassandra (Facebook / Apache), MongoDB, CouchDB(Apache), MySQL (Oracle), Ceph (DreamHost)
- Ceph release as part of Linux v2.6.34
- Data management (DB)
- Save: Split and parallelize data, Query: Combind the results of the split tasks for a final result.
- Workflow management: Oozie (Yahoo), Pig (Hadoop / Apache), Cascading (Concurrent), Azkaban (LinkedIn), Pomsets (nephosity)
- Messaging: qpid (Apache), RabbitMQ (SpringSource / VMWare), ZeroMQ(iMatix)
- Cluster management: puppet labs, Scalr, Ganlia, Nagios. (Scalr, Nagios)
- Configuration management
- Dynamic configuation that cannot be stored in OS image (因為新的機器啟動/移除, 設定檔一定得要新增 / 移除)
- Analytics: Compute load, Network usage.
- Dynamic load balancing and scaliing for your cloud. (loading 重, 自動加機器, loading 輕, 自動減少機器(instances))
- Analytics: Graphite (Orbitz), Scalr, Nagios, Gangliz.
- Michael Pan [email protected]
- Dynamic provisioning: Eucalyptus, OpenNebula / Haizea, Condor (via VM universe), TCloud Elaster (not yet released)
- Pomsets on Pipy - http://pypi.python.org/pypi?:action=search&term=pomsets&submit=search
- 歐洲有規定, 儲存在裡面的資料, 不能離開歐洲. @.@a..
快速佈署叢集式的搜尋引擎 CrawlZilla - 郭文傑 (國網中心)
- 國家高速網路與計算中心
- Nutch - 目前文件做的最好地搜尋引擎. @.@a..
- Crawlzilla - 實驗版 NutchEZ
- 於 2010 重新命名為 Crawlzilla
- 支援中文分詞, 解決中文亂碼及中文支援
- http://code.google.com/p/crawlzilla/
- 支援同時存在多個搜尋引擎
- 開發, 測試 在 Ubuntu 10.04
- PC1(Master), PC2, PC3, PC4 (底層)
- Tomcat + Hadoop
- Crawlzilla System Management 控制 Tomcat, Hadoop 狀態
- Nutch + Lucene, JSP
- Crawlzilla 中文分詞
- 英文以 "詞" 為文字的基本單位
- 中文以 "字" 為文字的基本單位
- 中文分詞使用 ik-analyzer
- ik-analyzer 支援 Lucene
- 下載後, 解壓縮, 點選 install, 輸入系統密碼, 就可以進入安裝.
- 會自己上 Google code 抓取套件, 進行安裝.
- 執行: 輸入 crawlzilla
Solr on Cassandra - Gasol (PIXNET)
- 投影片
- date:[* TO NOW]
- Nutch is based on Solr & Lucene.
- Query Boost: title:老虎^5+OR+title:老鼠
- Cassandra
- Cassandra 是 facebook 2008 放出來的
- Partitioning: md5(key) -> Token
- Token Range 0~2^127
- Cassandra: 寫比讀快
- 先保證寫入正確.
- 所以先寫入 Disk 再到 Memory.
- Data Model: Keyspace (database), ColumnFamily (table)
- TimeUUID (照時間 Sort)
- Consistency.
- W+R > N, 代表美台機器都會有 data.
- Cassandra 拿來當 memcached 用.
- MLT Algorithm, 找出 term 的頻率
- keyword 出現在這篇文件的次數, 但是若在其他文件出現的次數也很高, 分數就會下降~
Lighting talk
- 5 mins. 工商服務.
- http://www.plugboot.com/ .... USB boot on X86...
- 產品秀 XD
- JetPlurk
- PhoneGap = HTML + CSS + JS, Mobile framework.
- 高中數學裡, scilab 的輔助應用.
- 明明是簡單 3行的快速入門, 但是完全看不懂.
- 這個並不是粗淺的數學阿. Orz..
- goristock, Analysis tools for Taiwan stock - Toomore
- 將一切交給 *無情* 的機器人
- 原來沒有祝生日快樂... 是很無情的. Orz..
- http://github.com/toomore/goristock
- import goristock
- g = goristock.goristock(2363)
- Add [email protected] 加入 Google talk.
- SFD 軟體自由日
- 原來軟體自由日 跟 ICOS 有關系
- http://way3sec.blogspot.com/2010/01/google.html
- Powertop 測量比耗電能的工具
- http://www.lesswatts.org/projects/powertop/
- 參考 ACPI 拿到所有資訊.
- apt-get install powertop
- sudo powertop
- firefox-bin 耗費 13.4% 的電力.
- mozilla 的產品一向不環保吧? XD
- 要用 Notebook 的電池, 才看得出效果.
- Motivations - 檢查 Android 硬體效能 (Benchmarking for Android)
- 0xBench
- Project name: 0xBench
- 或 0xBenchmark
- 沒想到現在還能聽到行列輸入法.
- 不過, 在無蝦米破紀錄前, 行列輸入法是之前的冠軍.
- 行列 on iBus
- http://www.linuxpilot.com/
- NicoFox