Cloud Computing boot camp
 on the Google App Engine


                   by Matthew McCullough of Ambient Ideas, LLC
http://flushirts.spreadshirt.com/us/US/Shop/
➊
1960
circa 2 0 0 0
What is the Cloud?
Scalable
Dynamic
Pay-per-use
Stateless
Affinity-less
Scale up
Scale down
Grid
Why the Cloud?
Cost of startup
Experimentation
Transition to
 Production
No licensing fees
Instant Availability
What’s the most
  expensive item on a
startup’s balance sheet?
You!
Server setup
Server destruction
Time savings
Developer &
Consultant Time
Cloud Players
Google App Engine
Rackspace Mosso
Mor.ph
Amazon EC2
Levels of
Abstraction
Any language?
Ruby?
Java?
PHP?
Python?
Anything?
OS Images
or Predetermined
or Abstracted
File Systems
Mor.ph
Traditional File System
Amazon EC2
 S3 Buckets
Amazon EC2
Elastic Block Storage
Rackspace Mosso
Traditional File System
Google App Engine
       N/A
Databases
Amazon EC2
Simple DB
Amazon EC2
 IBM DB2
Google App Engine
  Big Table
Mor.ph
PostgreSQL
Mor.ph
MySQL
Mosso
MySQL
Mosso
Microsoft SQL Server
Mosso
<any db>
Operating
 Systems
Windows Server
 on Amazon EC2
1000 variants of Linux
    on Amazon EC2
CentOS Linux
  on Mor.ph
Debian, Fedora, Ubuntu
        on Mosso
<obfuscated>
on Google App Engine
Pricing
Amazon EC2
Mosso
Mor.ph
$1500/month
Mor.ph
  Free human inside
specially marked boxes!
Google App Engine
Google App Engine

We’ll give it away free and
 make it up in volume!
➋
App Engine
Google
2008
April 8th,
small company
Python!
2009
April 7th,
Java!
But more like
⅘
Java!
Getting Started with
     GAE
Free to start
Cell Phone #
Regular Google
   Account
10,000 first wave
obsessed
95 minutes
25,000 second wave
Ideas & Demos
Mobile Apps
Technology Stack
Servlet API
Jetty
JSPs
Java Mail API
Google Web Toolkit
Authentication
Integration with
 Google Accounts
Admin & User Level
   Permissions
Java Cache API
JSR-107 / JCache
BigTable
Database
Can import from
  existing DB
JDO
JPA
No
No Gorm
No Hibernate
No file writing
No threads
lack of server affinity
Who moved my
  cheese?
Even for sequential
     requests
No sockets
But... can use URLFetch
  for HTTP/HTTPS resources
No JNI
No more than 30s
Ouch!
Custom timeout
   response
Application ID
Globally Unique
required for
deployment
xxxxx.appspot.com
SDK
Shell scripts to manage
          apps
Source code included
Versioned by the JARs
     you include
DataNucleus
JDO for BigTable
Subset of JDK 1.6
Custom Class Loaders
“Sandbox”
Whitelist of Classes
Caution!
Can work on desktop,
    not on GAE
Compression
gzip
Accept-Encoding:gzip
Admin Console
Statistics
Graphs of Usage
System Health
Pay for
extreme usage
Daily Budget
Budget
per resource type
Logging
java.util.logging
System.out == info
System.err == warning
Log4j
Dev Tools
Eclipse
Jetty Demo Container
Bundled with
GWT plugin
Ant
Maven
➌
Ecosphere
Hyperic
Yup, those guys
CloudStatus.com
Mor.ph
Layer on top of EC2
Humans
Eclectic Info
Amazon Mechanical
      Turk
Amazon
Elastic Map Reduce
     Apache Hadoop
Cloud Fallout
Large Setups more
economical to self-host
Out of your hands
Uptime?
Do you trust the
    vendor?
Persistence can be
       weird
Give it a try!
Resources


• http://mor.ph
• http://appengine.google.com
• http://mosso.com
• http://aws.amazon.com/ec2/
Cloud Computing Bootcamp On The Google App Engine [v1.1]
Cloud Computing Bootcamp On The Google App Engine [v1.1]
Cloud Computing Bootcamp On The Google App Engine [v1.1]
Cloud Computing Bootcamp On The Google App Engine [v1.1]
Cloud Computing Bootcamp On The Google App Engine [v1.1]
Cloud Computing Bootcamp On The Google App Engine [v1.1]
Cloud Computing Bootcamp On The Google App Engine [v1.1]
Cloud Computing Bootcamp On The Google App Engine [v1.1]
Cloud Computing Bootcamp On The Google App Engine [v1.1]
Cloud Computing Bootcamp On The Google App Engine [v1.1]
Cloud Computing Bootcamp On The Google App Engine [v1.1]
Cloud Computing Bootcamp On The Google App Engine [v1.1]
Upcoming SlideShare
Loading in …5
×

Cloud Computing Bootcamp On The Google App Engine [v1.1]

1,447 views
1,372 views

Published on

Matthew McCullough's presentation to DOSUG on the Google App Engine's new Java language and JSP/servlet support. Covers the current definition of what Cloud means, and why you'd want to use it. All materials are highly subject to change, as this talk covers the Java Beta GAE support on the App Engine just 27 days after launch.

Published in: Education, Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,447
On SlideShare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
106
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Cloud Computing Bootcamp On The Google App Engine [v1.1]

  1. 1. Cloud Computing boot camp on the Google App Engine by Matthew McCullough of Ambient Ideas, LLC
  2. 2. http://flushirts.spreadshirt.com/us/US/Shop/
  3. 3.
  4. 4. 1960
  5. 5. circa 2 0 0 0
  6. 6. What is the Cloud?
  7. 7. Scalable
  8. 8. Dynamic
  9. 9. Pay-per-use
  10. 10. Stateless
  11. 11. Affinity-less
  12. 12. Scale up
  13. 13. Scale down
  14. 14. Grid
  15. 15. Why the Cloud?
  16. 16. Cost of startup
  17. 17. Experimentation
  18. 18. Transition to Production
  19. 19. No licensing fees
  20. 20. Instant Availability
  21. 21. What’s the most expensive item on a startup’s balance sheet?
  22. 22. You!
  23. 23. Server setup
  24. 24. Server destruction
  25. 25. Time savings
  26. 26. Developer & Consultant Time
  27. 27. Cloud Players
  28. 28. Google App Engine
  29. 29. Rackspace Mosso
  30. 30. Mor.ph
  31. 31. Amazon EC2
  32. 32. Levels of Abstraction
  33. 33. Any language?
  34. 34. Ruby?
  35. 35. Java?
  36. 36. PHP?
  37. 37. Python?
  38. 38. Anything?
  39. 39. OS Images
  40. 40. or Predetermined
  41. 41. or Abstracted
  42. 42. File Systems
  43. 43. Mor.ph Traditional File System
  44. 44. Amazon EC2 S3 Buckets
  45. 45. Amazon EC2 Elastic Block Storage
  46. 46. Rackspace Mosso Traditional File System
  47. 47. Google App Engine N/A
  48. 48. Databases
  49. 49. Amazon EC2 Simple DB
  50. 50. Amazon EC2 IBM DB2
  51. 51. Google App Engine Big Table
  52. 52. Mor.ph PostgreSQL
  53. 53. Mor.ph MySQL
  54. 54. Mosso MySQL
  55. 55. Mosso Microsoft SQL Server
  56. 56. Mosso <any db>
  57. 57. Operating Systems
  58. 58. Windows Server on Amazon EC2
  59. 59. 1000 variants of Linux on Amazon EC2
  60. 60. CentOS Linux on Mor.ph
  61. 61. Debian, Fedora, Ubuntu on Mosso
  62. 62. <obfuscated> on Google App Engine
  63. 63. Pricing
  64. 64. Amazon EC2
  65. 65. Mosso
  66. 66. Mor.ph
  67. 67. $1500/month
  68. 68. Mor.ph Free human inside specially marked boxes!
  69. 69. Google App Engine
  70. 70. Google App Engine We’ll give it away free and make it up in volume!
  71. 71.
  72. 72. App Engine Google
  73. 73. 2008 April 8th,
  74. 74. small company
  75. 75. Python!
  76. 76. 2009 April 7th,
  77. 77. Java!
  78. 78. But more like
  79. 79. ⅘ Java!
  80. 80. Getting Started with GAE
  81. 81. Free to start
  82. 82. Cell Phone #
  83. 83. Regular Google Account
  84. 84. 10,000 first wave
  85. 85. obsessed
  86. 86. 95 minutes
  87. 87. 25,000 second wave
  88. 88. Ideas & Demos
  89. 89. Mobile Apps
  90. 90. Technology Stack
  91. 91. Servlet API
  92. 92. Jetty
  93. 93. JSPs
  94. 94. Java Mail API
  95. 95. Google Web Toolkit
  96. 96. Authentication
  97. 97. Integration with Google Accounts
  98. 98. Admin & User Level Permissions
  99. 99. Java Cache API
  100. 100. JSR-107 / JCache
  101. 101. BigTable
  102. 102. Database
  103. 103. Can import from existing DB
  104. 104. JDO
  105. 105. JPA
  106. 106. No
  107. 107. No Gorm
  108. 108. No Hibernate
  109. 109. No file writing
  110. 110. No threads
  111. 111. lack of server affinity
  112. 112. Who moved my cheese?
  113. 113. Even for sequential requests
  114. 114. No sockets
  115. 115. But... can use URLFetch for HTTP/HTTPS resources
  116. 116. No JNI
  117. 117. No more than 30s
  118. 118. Ouch!
  119. 119. Custom timeout response
  120. 120. Application ID
  121. 121. Globally Unique
  122. 122. required for deployment
  123. 123. xxxxx.appspot.com
  124. 124. SDK
  125. 125. Shell scripts to manage apps
  126. 126. Source code included
  127. 127. Versioned by the JARs you include
  128. 128. DataNucleus
  129. 129. JDO for BigTable
  130. 130. Subset of JDK 1.6
  131. 131. Custom Class Loaders
  132. 132. “Sandbox”
  133. 133. Whitelist of Classes
  134. 134. Caution!
  135. 135. Can work on desktop, not on GAE
  136. 136. Compression
  137. 137. gzip
  138. 138. Accept-Encoding:gzip
  139. 139. Admin Console
  140. 140. Statistics
  141. 141. Graphs of Usage
  142. 142. System Health
  143. 143. Pay for extreme usage
  144. 144. Daily Budget
  145. 145. Budget per resource type
  146. 146. Logging
  147. 147. java.util.logging
  148. 148. System.out == info System.err == warning
  149. 149. Log4j
  150. 150. Dev Tools
  151. 151. Eclipse
  152. 152. Jetty Demo Container
  153. 153. Bundled with GWT plugin
  154. 154. Ant
  155. 155. Maven
  156. 156.
  157. 157. Ecosphere
  158. 158. Hyperic
  159. 159. Yup, those guys
  160. 160. CloudStatus.com
  161. 161. Mor.ph
  162. 162. Layer on top of EC2
  163. 163. Humans
  164. 164. Eclectic Info
  165. 165. Amazon Mechanical Turk
  166. 166. Amazon Elastic Map Reduce Apache Hadoop
  167. 167. Cloud Fallout
  168. 168. Large Setups more economical to self-host
  169. 169. Out of your hands
  170. 170. Uptime?
  171. 171. Do you trust the vendor?
  172. 172. Persistence can be weird
  173. 173. Give it a try!
  174. 174. Resources • http://mor.ph • http://appengine.google.com • http://mosso.com • http://aws.amazon.com/ec2/

×