SlideShare una empresa de Scribd logo
1 de 37
均一的GAE甘苦談
如果當初我有選擇,我”可能”不會選GAE
只是可能而已啦~
均一教育平台,董事長:方新舟
達成了許多工程師(應該是許多年輕人)的夢想:創業 —> 把公司賣
給聯發科 —> 退休...
講到均一教育平台...
–by ???
“如果就這麼退休的話,
故事就結束了...”
• 方大哥希望可以真的為台灣做一些事情,他選擇了
一個相當困難的領域,就是教育。
• 他創立了誠致教育基金會,屬於非營利組織,截至
今年為止,整個基金會都是靠方大哥的 funding在
運作(包含在下的薪水)。
• 他在2012年跑去美國找Khan academy,跟他們拿
了source code並且在同年10月上線。
• ——————發生很多事情的分隔線—————
• 他們找來了均一教育平台的第一位工程師:就是我
。
• 在均一當軟體工程師之前,研究所是念光電,前一
份工作的Garmin的硬體工程師,只在CS實驗室寫
了~5 month的c++ (而且還是純演算法的code)
• 來均一的第一個禮拜,我就把test 伺服器的資料庫
搞爆了。(而且還跟方大哥講這是個意外,請讓我
直接把code上到live伺服器)
• —————發生很多事情的分隔線——————-
• 目前均一教育平台有15位工作伙伴,7位軟體工程
師。得Joe了。
1. k12的華文教育平台 — (k12其實是kindergarten to 高三)
2. 目前註冊人數~18萬人,七天的活躍使用者~4萬多人...一
個月活躍使用者15萬人。
均一教育平台:
Google App Engine
(GAE)
架設網路服務的平台(PaaS), 對比於Microsoft的Azure,
Amazon的AWS, Heroku…
看看用GAE的大廠怎麼說...
Khan academy
如果不是GAE,我們會花很多時間在處理server setup還有
routers上面,我們可以專注在產品上的原因是因為GAE!!
Rovio (Angry Bird)
一兩個工程師就可以很快地launch一個遊戲,因為google 管
理了整個server,我們幾乎不用任何的maintainance!!!
Feedly
因為GAE在後端的架構設計,我們唯一要擔心的事情就是上
Code!!
Best Buy
在GAE上面開發app,跟全部自己來比較的話,只需要花費
大約1/10 ~ 1/4的資源以及1/4的時間!!
GAE最大的好處:
它在server, logging, database, transaction, scalability …
許多地方都幫你寫好設計好了。yay~~
AWS, GAE架設網站需求比較表
AWS :
• 先在AWS上做一堆選擇跟
設定...
• webapp2, flask, django…
• nginx
• uWSGI, gunicorn
• superviser…
• 喔靠,還有database
GAE:
• 在GAE上面申請一個
app名稱
• webapp2, flask,
django…
• 沒了,上完code就可
以跑了。
相對完整的GUI來幫忙
管理網站:
1. Logging/404, 500
Logging
2. 簡單的memory,
cache管理
3. Database的管理(
可以針對特定的值
做修改)
4. Database backup
5. 直接做不同版本
code的分流,可以
做簡單的A/B test
6. transaction….
7. 因為沒有server,
scalability so ez~~
GAE最大的壞處:
它在server, logging, database …許多地方都幫你寫好設計
好了。
GAE 沒有 server!!!
在GAE的開發過程中用一個sandbox把你的code包起來,你不知道你
的code真正跑在什麼樣的環境裡,所以...
1. 你不能在GAE上面安裝package!!!
2. 你可以做的是...把package下載下來,放到你的code /third_party/
資料夾,然後使用它。
3. 這樣大幅增加package 管理、update …等等等困擾的問題。例如
當你要安裝或升級dependency高的package的時候...另外就是
code裡面多了一大多有的沒的...
小提醒:Github上pull request的時候記得把third_party跟你自己的
code分開上,不然...大家不會恨你,大家會叫你重做。
GAE最大的壞處:
它在server, logging, database …許多地方都幫你寫好設計
好了。
GAE內建的Database,叫做:High Replication Datastore (HRD), uses
the Paxos algorithm to replicate data across multiple datacenters.
好像很酷!!!但是它不保證always consistent…
Case 1:
book1 = Book(name=‘book1’, price=100) # 創建一本書
book1.price = 200 # 帳價了
book1.put() # 存入資料庫
query_book_by_name(‘book1’) —> {name=‘book1’, price=100}
WHAT????
解法:一定要query by key
key = db.Key(book1’s key)
key.get() —> {name=‘book1’, price=200}
真正麻煩困擾的Case 2:
# 已經有book1, book2, book3…
book4.put() #
query_all_the_books() —> [book1, book2, book3]
where is my book4!!!?????
解法:
book1.parent = book2.parent = book3.parent = ‘a’
book4.parent = ‘a’
query_all_the_books(parent=‘a’) —> [book1, book2, book3, book4]
parent 一定要在entity創造的時候就建好,如果你等到book4的時候才
發現你需要...GG....
我在GAE上吃過最多的苦頭—
拿取在GAE裡面的data base
這不是我自己的Data base嗎?為什麼拿到它我要那麼痛苦
??
如何獲取我自己的database資
料...
• GAE本身provide的方法(Bulk Loader)...非常慢!
• 20幾G我下載了一個禮拜才載完!!!
如何獲取我自己的database資
料...formal way…
• 即便如此: 從BigQuery Download還是有限制大小
• Table太大,請先把Table存回google cloud storage
,變成好幾個小table,再讓你download
App
Engine
Google Cloud
Storage
Google
BigQuery
Backup
to
Import
into
Finally
Download….
如何獲取我自己的database資
料...not formal way
• 一些Database欄位,不是GAE本身提供的資料格式,
是pickle過的Obj...
• @(#!$*@#%@! Import 進 BigQuery一片空白
• 還是先把資料 Backup 到GCS,直接download下來,
然後用GAE SDK裡面的一些module來解碼。 (記得,
原本是google自創的noSQL格式,沒有人看得懂。)
• 非常重要的文章:http://gbayer.com/big-data/app-
engine-datastore-how-to-efficiently-export-your-data/
可能Google也覺得自己這樣不
大應該...
• 推出新的資料庫架構 Google Cloud MySQL.
• 雲端的mysql,真是友善多了,也可以直接接
google app engine。
一樣,針對已經架好的資料庫像均一…
• 資料庫端的Code要全部重寫...
• 聽說資料庫大的時候還是會爆掉...
GAE另一個壞處:
它在server, logging, database …許多地方都幫你寫好設計
好了,這並不是免費的。
一般來講,GAE還有給人一個印象,就是貴!
最後一個跟GAE本身無關,但是我認為很
重大的缺點...比較少人用(尤其是台灣)。
• 當在選擇一個服務,或甚至只是一個Library的時候...
• 只要你做的不是全世界唯一的冷門尖端技術。我認為生
態系很重要...
• 在一個豐富的生態系,即便是很困難罕見的問題,你都
很有機會在網站上找到解答。反之,即便是一個很簡單
的問題,你可能都要花很多時間因為你必須要全部自己
來。
• 豐富生態系的服務或是Library,通常與時俱進的速度也
會特別快,反之,一個很簡單的問題可能拖很久都不會
得到改善。
Andy大大的補充
• 因為Google沒有想拿GAE來賺錢,所以客服做得
很糟糕。
• 客服反應會延遲到2個禮拜。
• 一些許多人要求解決的Bug會延遲到半年...
講那麼多,到底為什麼均一要選擇
GAE?
因為Khan用GAE...
Khan Academy為什麼選擇GAE??
Khan 裡面有非常多的高手,例如說...
John Resig, creator of jQuery…
他們選擇GAE一定有他們的理由,如同上述講
的,可以focus在產品本身,節省時間資源...
或是因為Google每年捐給Khan
Academy 100萬美金...XD
如果你團隊只有少少人,而且你足
夠了解GAE(其實應該要了解整個
google cloud platform),GAE或許
是個不錯的選擇。
如果你很多東西都喜歡自己來,有
自己的想法和style,並且很討厭被
限制的感覺,我覺得GAE不適合你
。
–謝謝大家~
希望今天的分享可以幫助各位在選擇PaaS上面
做更正確的選擇。
Q&A

Más contenido relacionado

Destacado

PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...DevGAMM Conference
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationErica Santiago
 

Destacado (20)

PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
 

均一Gae甘苦談