Using google appengine (2)

1,187 views

Published on

Published in: Technology, News & Politics
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,187
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
6
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Using google appengine (2)

  1. 1. 使用 GoogleAppEngine 建立个人信息中心 weibo.com/sagasw 2011-11
  2. 2. Agenda <ul><li>1 )云计算简介 </li></ul><ul><li>  </li></ul><ul><li>2 ) Google AppEngine </li></ul><ul><li>  </li></ul><ul><li>3 ) GAE 个人信息中心 </li></ul><ul><li>4 ) Resources </li></ul>
  3. 3. 调查 <ul><li>1 ) Python 语言? </li></ul><ul><li>  </li></ul><ul><li>2 ) Google AppEngine ? </li></ul><ul><li>  </li></ul><ul><li>3 )云计算平台? </li></ul>
  4. 4. 1 )云计算简介  
  5. 5. <ul><ul><li>IaaS (Infrastructure as a Service)   </li></ul></ul><ul><ul><ul><li>  Amazon EC2 , Microsoft Azure </li></ul></ul></ul><ul><ul><li>PaaS (Platform as a Service)  </li></ul></ul><ul><ul><ul><li>  GoogleAppEngine ,新浪 AppEngine , HeroKu </li></ul></ul></ul><ul><ul><li>SaaS (Software as a Service) </li></ul></ul><ul><ul><ul><li>Zoho , Google Apps ,易度  </li></ul></ul></ul>
  6. 6. 云平台比较 <ul><li>http://www.eecs.berkeley.edu/Pubs/TechRpts/2009/EECS-2009-28.pdf </li></ul>
  7. 7. 调查 - 虚拟化软件
  8. 8. 调查 - 公有云计算平台
  9. 9.   新浪微博 @_ 浪潮之巅 _ : 中国很多大公司 ( 主要是央企 ) ,对云计算理解就是 IDC 和设备。 美国的 case 都是应用。美国这点认识比较一致: IDC 和最基础的东西让 Google , Facebook 和 Amazon 去做。    http://weibo.com/2142166543/xtKu40qgP
  10. 10. 2 ) Google AppEngine  
  11. 11. Google AppEngine <ul><li>Go language, Python, Java (JRuby, Lua, Rails etc.) </li></ul><ul><li>  </li></ul><ul><li>优点: </li></ul><ul><ul><ul><li>  UrlFetch,Memcache,TaskSchedule </li></ul></ul></ul><ul><ul><ul><li>XMPP,Mail,Cron </li></ul></ul></ul><ul><ul><ul><li>  MapReduce,Channel </li></ul></ul></ul><ul><ul><ul><li>  支持 OAuth 认证或 Google 账号 </li></ul></ul></ul><ul><ul><ul><li>  Image 处理 </li></ul></ul></ul><ul><ul><ul><li>  域名绑定 </li></ul></ul></ul><ul><ul><ul><li>  易使用,易管理 </li></ul></ul></ul><ul><ul><ul><li>  免费限额大方 </li></ul></ul></ul><ul><li>缺点 :  </li></ul><ul><ul><ul><li>  无全文搜索 </li></ul></ul></ul><ul><ul><ul><li>  调整后的付费方案 </li></ul></ul></ul><ul><ul><ul><li>  需要熟悉新 SQL 操作方式 </li></ul></ul></ul>
  12. 12. <ul><li>适用于: </li></ul><ul><li>Wiki,CMS, 博客 , 微博 , 手机游戏后台 , 应用服务器 , 问答网站 , 电子书发布 ,SNS, 网店 , 工作流 </li></ul><ul><li>不适合: </li></ul><ul><li>音频视频服务 , 大文件 , 密集计算 </li></ul>
  13. 13. Django WebApp2 Tornado     <ul><li>https://github.com/facebook/tornado/tree/master/demos/appengine </li></ul>Web Framework
  14. 14. Python library <ul><li>BeautifulSoup, PythonTwitter, Readability </li></ul><ul><li>PIL, PyCrypto, lxml 等等 </li></ul><ul><li>可直接用于 AppEngine? </li></ul><ul><ul><li>不依赖 C 扩展 </li></ul></ul><ul><ul><li>不使用数据库 </li></ul></ul><ul><ul><li>不访问本地资源 </li></ul></ul><ul><li>http://pypi.python.org/pypi </li></ul>
  15. 15. Java on AppEngine <ul><li>Play! Framework </li></ul><ul><li>     http://www.slideshare.net/gasolin/play-framework-on-google-app-engine </li></ul><ul><li>     https://github.com/guillaumebort/play-gae </li></ul><ul><li>Scala Lift Framework </li></ul><ul><li>     http://lift-example.appspot.com/ </li></ul><ul><li>     http://www.scala-lang.org/node/1826 </li></ul><ul><li>JavaScript </li></ul><ul><li>     http://www.appenginejs.org/ </li></ul>
  16. 16. JRuby on  Google App Engine <ul><li>code.google.com/p/appengine-jruby/ </li></ul><ul><li>github.com/jruby/jruby-rack </li></ul><ul><li>                     </li></ul>
  17. 17. Lua in Appengine <ul><li>http://code.google.com/p/aelua/ </li></ul><ul><li>http://code.google.com/p/jillcode/ </li></ul><ul><li>http://code.google.com/p/kahlua/ </li></ul><ul><li>https://github.com/krka/kahlua2 </li></ul><ul><li>http://sourceforge.net/projects/luaj/ </li></ul>
  18. 18. 企业使用 ? <ul><ul><li>比较容易扩展 </li></ul></ul><ul><ul><li>管理方便 </li></ul></ul><ul><ul><li>用于特定任务  </li></ul></ul><ul><ul><li>更推荐 EC2 </li></ul></ul><ul><li>  </li></ul><ul><li>http://code.google.com/appengine/business/ </li></ul><ul><li>http://code.google.com/appengine/docs/premier/index.html </li></ul><ul><li>  </li></ul><ul><li>   </li></ul>
  19. 20. GAE SDK 1.5.5 <ul><ul><li>Python2.7 </li></ul></ul><ul><ul><li>支持多线程,可使用 threading </li></ul></ul><ul><ul><li>支持并发请求 </li></ul></ul><ul><ul><li>可以访问 bytecode </li></ul></ul><ul><ul><li>支持更多 Python lib ( PIL v1.1.7 )。 </li></ul></ul><ul><ul><li>前台请求的时间 30 秒增加到 60 秒, URLFetch 请求时间从 10 秒增加到 60 秒。 </li></ul></ul><ul><ul><li>URLFetches 的 POST 参数大小从 1MB 增加到 5MB 。 </li></ul></ul><ul><li>From Keakon's blog </li></ul>
  20. 21. <ul><li>GAE 编程心得 </li></ul><ul><ul><li>尽量使用 memcache </li></ul></ul><ul><ul><li>组合 Appengine & VPS </li></ul></ul><ul><ul><li>通过 service 访问 VPS 数据库, GAE 进行缓存 </li></ul></ul><ul><ul><li>使用 google 或 VPS 搜索 </li></ul></ul><ul><ul><li>Nginx 反向代理 AppEngine (必须的) </li></ul></ul><ul><li>  VPS seller and coupon </li></ul><ul><li>         http://www.lowendbox.com/   </li></ul><ul><li>  Install Debian, Nginx in VPS </li></ul><ul><li>         http://www.howtoforge.com/   </li></ul>
  21. 23. 3 )使用 GAE 建立个人信息中心  
  22. 24. 个人常用的信息服务 <ul><ul><li>TwitterWeb 客户端,可以同步到新浪腾讯网易搜狐 </li></ul></ul><ul><ul><li>RSS 聚合阅读 </li></ul></ul><ul><ul><li>获取网页 (urlfetch) ,解析短网址 </li></ul></ul><ul><ul><li>Cron Jobs </li></ul></ul><ul><ul><li>在线个人笔记,在线个人博客 </li></ul></ul><ul><ul><li>网络小说阅读 </li></ul></ul><ul><ul><li>推送文章到 Kindle </li></ul></ul><ul><ul><li>发送天气短信给自己 </li></ul></ul><ul><ul><li>生日提醒(邮件,聊天工具,短信等多种手段) </li></ul></ul><ul><ul><li>监控 iphone 购买网页的变化 </li></ul></ul><ul><ul><li>相册 </li></ul></ul><ul><ul><li>proxy </li></ul></ul>
  23. 26. 个人信息平台已经实现的功能 <ul><li>1 )选择现成代码进行修改( V2EX,Micolog, GaeBBS ) </li></ul><ul><li>2 )同步发推 , 新浪微博功能 ,t.co 扩展 </li></ul><ul><li>3 )定期采集 RSS 功能 </li></ul><ul><li>4 )支持 Google Reader share </li></ul><ul><li>5 ) HN 文章全文阅读, RSS Feed 输出 </li></ul><ul><li>6 )网页内容变化,通过短信提醒 </li></ul><ul><li>7 )支持 XMPP 协议( gtalk )客户端自动聊天 </li></ul>
  24. 27. 新浪微博 腾讯微博 <ul><li>  import mechanize </li></ul><ul><li>  br = mechanize.Browser()   br.open(&quot;http://abcd.com/openqqsdk/qqweibopost.php&quot;)   br.select_form(nr=0)   strform = status.encode('utf-8')   br.form['text'] = str   br.submit() </li></ul><ul><li>VPS 上搭建微博 PHP SDK 作中转 </li></ul><ul><li>  </li></ul>
  25. 28. BeautifulSoap 使用 <ul><li>from BeautifulSoup import BeautifulSoup VALID_TAGS = ['strong', 'em', 'p', 'ul', 'li', 'br', 'img', 'ol', 'blockquote'] def sanitize_html(value):     soup = BeautifulSoup(value)     for tag in soup.findAll(True):         if tag.name not in VALID_TAGS:             tag.hidden = True     return soup.renderContents() </li></ul>
  26. 29.   https://gist.github.com/1298152
  27. 36. https://gist.github.com/1312657
  28. 38. 资源使用情况(优化前)
  29. 39. 资源使用情况(优化后)
  30. 40. 4 ) Resources
  31. 41. 其它云平台 <ul><li>Amazon EC2 </li></ul><ul><li>Heroku (免费 + 付费) </li></ul><ul><li>Microsoft Azure </li></ul><ul><li>Sina AppEngine </li></ul><ul><li>Node AppEngine (内测中) </li></ul><ul><li>Yo2Lua Lua AppEngine (内测中) </li></ul>
  32. 42. Useful links <ul><li>http://googleappengine.blogspot.com/ </li></ul><ul><li>http://www.v2ex.com/go/gae </li></ul><ul><li>http://www.neopythonic.blogspot.com/ </li></ul><ul><li>http://blog.notdot.net/ </li></ul><ul><li>http://www.billkatz.com/ </li></ul><ul><li>http://www.franciscosouza.com/tag/google-app-engine/ </li></ul><ul><li>http://highscalability.com/google-architecture </li></ul><ul><li>https://groups.google.com/forum/#!forum/google-appengine </li></ul><ul><li>http://www.reddit.com/r/AppEngine/ </li></ul>
  33. 43. 可用于微创新的项目 <ul><li>http://code.google.com/p/appscale/ </li></ul><ul><li>http://code.google.com/p/app-engine-site-creator/ </li></ul><ul><li>http://code.google.com/p/google-app-engine-samples/ </li></ul><ul><li>http://code.google.com/p/fantasm/ </li></ul><ul><li>https://github.com/metachris/feedmailer </li></ul><ul><li>https://github.com/crabasa/Twitter2Mail </li></ul><ul><li>http://code.google.com/p/jaikuengine/ </li></ul><ul><li>http://code.google.com/p/appengine-mapreduce/ </li></ul><ul><li>http://code.google.com/p/gae-bbs/ </li></ul><ul><li>http://code.google.com/p/rietveld/ </li></ul><ul><li>http://code.google.com/p/tipfy/ </li></ul><ul><li>https://github.com/xuming/micolog </li></ul><ul><li>https://github.com/livid/picky </li></ul><ul><li>https://github.com/livid/v2ex </li></ul>
  34. 44.   <ul><li>Kindlereader </li></ul><ul><li>一个定时将 Google reader 发送至 kindle 的工具 master 分支为单用户版 ( 基于 python), 运行于 Linux, Mac OSX, Windows gae 分支为运行于 Google app engine 的多用户版 , demo: http://reader.dogear.mobi </li></ul><ul><li>  </li></ul><ul><li>https://github.com/jiedan/kindlereader/tree/gae </li></ul>
  35. 45. Q & A  

×