Google App Engine
(Platform as a Service)
Boston Cloud Services Meetup
J Singh
January 14, 2014
PaaS Goal: Focus on Development, not Ops
• Virtual Raised Floor
– IDE above the floor
– Website for visibility
and control below
the floor
– Deployment System
( Tile Lifter)

© DataThinks 2013-14
2

2
IDE Above the Floor
• The programmer’s development environment
– Presentation layer: HTML, CSS, JavaScript
– Control layer: Web Server code
• Access to external APIs

– Data layer: Data Model
• Indexing advice

– Optionally, analytics

© DataThinks 2013-14
3

3
Ops below the floor
• Made visible through a web interface
–
–
–
–
–
–

Operating System
File System
User Authentication
Utilities (cron, etc.)
Logs
Database maintenance, backups, etc.

© DataThinks 2013-14
4

4
Deployment System
• Methods for continuous deployment
– Upload
– Version management

© DataThinks 2013-14
5

5
Google App Engine
• Strategic Technology Offering for Server-side applications
– Vehicle for introducing internal technology to the outside
developer community
– Not to be confused with Google Apps
– Frequent criticism:
• Single-source
• Except for AppScale (GAE code that runs on Amazon)

© DataThinks 2013-14
6

6
Google App Engine History
• Introduced in 2008
– Python, Google DataStore

• Now
– Languages
• Python, Go, PHP, Java
– And languages that compile to JVM byte codes

– Data Stores
• Google DataStore (NoSQL), CloudStore (Cloud intf to MySQL)

– Map Reduce

© DataThinks 2013-14
7

7
Sources
• Getting Started Instructions: (http://goo.gl/Wc4A9R)
• Map Reduce Instructions: (http://goo.gl/gzmj7T)
• Code: (http://goo.gl/SqmCKk) (a Github repository)
– Commit 0e24b6ad7: Guestbook application
– Commit 68f929415: Fetching from a Gutenberg.org URL
• Gets “Permission Denied” from gutenberg.org
• Change to read & parse pages from Wikipedia or another
source

– Commit 1740fedc6: Map Reduce changes

© DataThinks 2013-14
8

8
Guestbook Application
• Application Demo
(http://goo.gl/ItxjME)

• Code walk through:
– Dispatching
– Code
– Templates

– Write something in the
guestbook,
– Log in, write again,
– …

• Change page text

• Console walk through:

• Delete some guestbook
entries

– Dashboard
– DataStore
– Logs

© DataThinks 2013-14
9

9
Map Reduce Flow

© DataThinks 2013-14
10

10
Map Reduce Pipelines
• Map Reduce is rarely a singular operation
• Multiple Map Reduce operations are pipelined together
– Fan out, synchronization semantics

© DataThinks 2013-14
11

11
Map Reduce Application
• Application Demo
(http://goo.gl/KUPDc1)

• Code walk through:
– WordCountPipeline
– word_count_map
– word_count_reduce

• Where are the results?

© DataThinks 2013-14
12

12
Thank you
• J Singh
– Principal, DataThinks
• j.singh@datathinks.org

– Adj. Prof, WPI

© DataThinks 2013-14
13

13

PaaS - google app engine

  • 1.
    Google App Engine (Platformas a Service) Boston Cloud Services Meetup J Singh January 14, 2014
  • 2.
    PaaS Goal: Focuson Development, not Ops • Virtual Raised Floor – IDE above the floor – Website for visibility and control below the floor – Deployment System ( Tile Lifter) © DataThinks 2013-14 2 2
  • 3.
    IDE Above theFloor • The programmer’s development environment – Presentation layer: HTML, CSS, JavaScript – Control layer: Web Server code • Access to external APIs – Data layer: Data Model • Indexing advice – Optionally, analytics © DataThinks 2013-14 3 3
  • 4.
    Ops below thefloor • Made visible through a web interface – – – – – – Operating System File System User Authentication Utilities (cron, etc.) Logs Database maintenance, backups, etc. © DataThinks 2013-14 4 4
  • 5.
    Deployment System • Methodsfor continuous deployment – Upload – Version management © DataThinks 2013-14 5 5
  • 6.
    Google App Engine •Strategic Technology Offering for Server-side applications – Vehicle for introducing internal technology to the outside developer community – Not to be confused with Google Apps – Frequent criticism: • Single-source • Except for AppScale (GAE code that runs on Amazon) © DataThinks 2013-14 6 6
  • 7.
    Google App EngineHistory • Introduced in 2008 – Python, Google DataStore • Now – Languages • Python, Go, PHP, Java – And languages that compile to JVM byte codes – Data Stores • Google DataStore (NoSQL), CloudStore (Cloud intf to MySQL) – Map Reduce © DataThinks 2013-14 7 7
  • 8.
    Sources • Getting StartedInstructions: (http://goo.gl/Wc4A9R) • Map Reduce Instructions: (http://goo.gl/gzmj7T) • Code: (http://goo.gl/SqmCKk) (a Github repository) – Commit 0e24b6ad7: Guestbook application – Commit 68f929415: Fetching from a Gutenberg.org URL • Gets “Permission Denied” from gutenberg.org • Change to read & parse pages from Wikipedia or another source – Commit 1740fedc6: Map Reduce changes © DataThinks 2013-14 8 8
  • 9.
    Guestbook Application • ApplicationDemo (http://goo.gl/ItxjME) • Code walk through: – Dispatching – Code – Templates – Write something in the guestbook, – Log in, write again, – … • Change page text • Console walk through: • Delete some guestbook entries – Dashboard – DataStore – Logs © DataThinks 2013-14 9 9
  • 10.
    Map Reduce Flow ©DataThinks 2013-14 10 10
  • 11.
    Map Reduce Pipelines •Map Reduce is rarely a singular operation • Multiple Map Reduce operations are pipelined together – Fan out, synchronization semantics © DataThinks 2013-14 11 11
  • 12.
    Map Reduce Application •Application Demo (http://goo.gl/KUPDc1) • Code walk through: – WordCountPipeline – word_count_map – word_count_reduce • Where are the results? © DataThinks 2013-14 12 12
  • 13.
    Thank you • JSingh – Principal, DataThinks • j.singh@datathinks.org – Adj. Prof, WPI © DataThinks 2013-14 13 13