SlideShare uma empresa Scribd logo
1 de 15
1
Google App Engine
Alek Kowalczyk
1.10.2013
www.offiserv.com
2
LAMP vs GAELAMP vs GAE
3
LAMP vs GAELAMP vs GAE
Components:
✔Linux
✔Apache
✔MySQL
✔PHP, Python, Ruby, Perl
Components:
✔Python
Tasks:
✔ Keep secure
✔ Maintain updates
✔ Design and keep scalable
✔ Maintain load balancing
Tasks:
Pay monthly bills
4
GAE Dev EnvGAE Dev Env
Python libs:
Services:
Task Queues
Users & OAuth
XMPP
Memcache
Logs
Mail
Development server
Languages:
5
MissingMissing
Preview
6
HRD – High Replication DatastoreHRD – High Replication Datastore
Schema-less

Dynamic properties

Watch out missing
or type-varying columns!
Database Access:

ORM:

DB API older

NDB newer – advanced caching

GQL

Low level API
7
Forget about what you know on SQL...Forget about what you know on SQL...
No planned downtimes
(I haven't noticed unplanned ones too)
Scalability
100 records query performs the same when
searching in 100 records
as in 1 000 000 000 records
Query limitations

>, <, != conditions:
one field only
(who cares...)

No LIKE, GROUP BY,
COUNT or SUM (again, who cares...)
No JOIN queries
What? 
8
Eventual ConsistencyEventual Consistency
GAE
High Replication
Datastore
Nope...
?
SELECT *
WHERE
name='Alex'
GAE
High Replication
Datastore
__key__=5
name='Alex'
GAE
High Replication
Datastore
id=5
name='Alex'
SELECT *
WHERE
name='Alex'
?
9
How can I live with that?How can I live with that?
>>> ses = Session(cookie=cookie, user=user)
>>> ses.put()
# next request:
>>> ses = GqlQuery(“SELECT * FROM Session WHERE cookie=:1”, cookie).get() 
None  # or <Session object> if lucky...
>>> ses = Session.all().filter('cookie', cookie).get()
None  # or <Session object> if lucky...
>>> ses = Session(key_name=COOKIE, user=userid, …)
>>> ses.put()
# next request: 
>>> ses = Session.get_by_key_name(cookie) 
<Session object>  # for sure
Most likely won't hurt
If hurts:

Entity groups/ancestor queries

Primary key queries
Some code?
Google BigTable is used by:
Google Search, Google Maps,
Gmail, YouTube, Orkut,
Google Earth,...
10
BillingBilling
Google App Engine charges for:
Outgoing Bandwidth
Frontend & Backend Instances
Stored Data (Datastore, Logs Data, Task Queue)
Memcache
Recipients Emailed
SNI SSL certificates
PageSpeed bandwidth
DB Write Operation
DB Read Operation
(and more...)
Free quotas for each app
11
Good and badGood and bad
✔New apps
✔Big data – small result sets
✔Google integration
✗Legacy apps
✗Binary code
✗CPU-intensive / background apps
¿Big data - big result sets – runtime analytics
•
Integrate with Google BigQuery
•
MapReduce
12
Q&A
Mobile developers needed
https://www.offiserv.com/career
13
Application Versions supportApplication Versions support
V1 V2
V2 – 70%V1 – 30%
Versioning
A/B Testing
14
Backup: Development setupBackup: Development setup
I. Create a free app on your google account:
https://appengine.google.com/
II. Download SDK:
http://goo.gl/hoK5tk
III. Create WSGI python app
IV. Create app.yaml configuration file
V. Run app at http://localhost:8000:
dev_appserver.py ­­port=8000 <app­name>
VI. Upload app google credentials
appcfg.py update app-name
VII. http://app-name.appspot.com
15
Backup: The SandboxBackup: The Sandbox
An application cannot:
 Open a socket
 Access another host - except URL Fetch Service
 Respond slowly – 60 secs
 Write to the filesystem - reading is OK
 Run other programs
 Run binary (C) extensions – pure Python only

Mais conteúdo relacionado

Mais procurados

Google app engine introduction
Google app engine introductionGoogle app engine introduction
Google app engine introduction
rajsandhu1989
 

Mais procurados (20)

I've (probably) been using Google App Engine for a week longer than you have
I've (probably) been using Google App Engine for a week longer than you haveI've (probably) been using Google App Engine for a week longer than you have
I've (probably) been using Google App Engine for a week longer than you have
 
Clickhouse MeetUp@ContentSquare - ContentSquare's Experience Sharing
Clickhouse MeetUp@ContentSquare - ContentSquare's Experience SharingClickhouse MeetUp@ContentSquare - ContentSquare's Experience Sharing
Clickhouse MeetUp@ContentSquare - ContentSquare's Experience Sharing
 
Clearing Airflow Obstructions
Clearing Airflow ObstructionsClearing Airflow Obstructions
Clearing Airflow Obstructions
 
Managing Your Cloud Spend With PlanForCloud - RightScale Compute 2013
Managing Your Cloud Spend With PlanForCloud - RightScale Compute 2013Managing Your Cloud Spend With PlanForCloud - RightScale Compute 2013
Managing Your Cloud Spend With PlanForCloud - RightScale Compute 2013
 
MongoDB World 2018: Building Serverless Apps with MongoDB Atlas on Google Clo...
MongoDB World 2018: Building Serverless Apps with MongoDB Atlas on Google Clo...MongoDB World 2018: Building Serverless Apps with MongoDB Atlas on Google Clo...
MongoDB World 2018: Building Serverless Apps with MongoDB Atlas on Google Clo...
 
Google app engine introduction
Google app engine introductionGoogle app engine introduction
Google app engine introduction
 
Oct 2011 CHADNUG Presentation on Hadoop
Oct 2011 CHADNUG Presentation on HadoopOct 2011 CHADNUG Presentation on Hadoop
Oct 2011 CHADNUG Presentation on Hadoop
 
Introduction to Data Engineer and Data Pipeline at Credit OK
Introduction to Data Engineer and Data Pipeline at Credit OKIntroduction to Data Engineer and Data Pipeline at Credit OK
Introduction to Data Engineer and Data Pipeline at Credit OK
 
Using Kafka to scale database replication
Using Kafka to scale database replicationUsing Kafka to scale database replication
Using Kafka to scale database replication
 
Big Data Berlin - Criteo
Big Data Berlin - CriteoBig Data Berlin - Criteo
Big Data Berlin - Criteo
 
Embracing Serverless with Google
Embracing Serverless with GoogleEmbracing Serverless with Google
Embracing Serverless with Google
 
On Improving Broadcast Joins in Apache Spark SQL
On Improving Broadcast Joins in Apache Spark SQLOn Improving Broadcast Joins in Apache Spark SQL
On Improving Broadcast Joins in Apache Spark SQL
 
JCConf 2016 - Google Dataflow 小試
JCConf 2016 - Google Dataflow 小試JCConf 2016 - Google Dataflow 小試
JCConf 2016 - Google Dataflow 小試
 
Scaling Galaxy on Google Cloud Platform
Scaling Galaxy on Google Cloud PlatformScaling Galaxy on Google Cloud Platform
Scaling Galaxy on Google Cloud Platform
 
Real-time Analytics with Presto and Apache Pinot
Real-time Analytics with Presto and Apache PinotReal-time Analytics with Presto and Apache Pinot
Real-time Analytics with Presto and Apache Pinot
 
BlazingSQL & Graphistry - Netflow Demo
BlazingSQL & Graphistry - Netflow DemoBlazingSQL & Graphistry - Netflow Demo
BlazingSQL & Graphistry - Netflow Demo
 
SQL Server on Google Cloud Platform
SQL Server on Google Cloud PlatformSQL Server on Google Cloud Platform
SQL Server on Google Cloud Platform
 
MongoDB .local London 2019: Gaining ML insight on Google Cloud with Google Vi...
MongoDB .local London 2019: Gaining ML insight on Google Cloud with Google Vi...MongoDB .local London 2019: Gaining ML insight on Google Cloud with Google Vi...
MongoDB .local London 2019: Gaining ML insight on Google Cloud with Google Vi...
 
Google Cloud Dataflow
Google Cloud DataflowGoogle Cloud Dataflow
Google Cloud Dataflow
 
GDD 2011 - How to build kick ass video games for the cloud
GDD 2011 - How to build kick ass video games for the cloudGDD 2011 - How to build kick ass video games for the cloud
GDD 2011 - How to build kick ass video games for the cloud
 

Destaque

Levin library databases page redesign
Levin library databases page redesignLevin library databases page redesign
Levin library databases page redesign
Emily Singley
 
Myspace project
Myspace projectMyspace project
Myspace project
fzemcik
 
Dancing with Life - Czech Republic - Sept 2012
Dancing with Life - Czech Republic - Sept 2012Dancing with Life - Czech Republic - Sept 2012
Dancing with Life - Czech Republic - Sept 2012
Beautiful Individuals
 
Phm 1.1.5(Harman S. Gahir)
Phm 1.1.5(Harman S. Gahir)Phm 1.1.5(Harman S. Gahir)
Phm 1.1.5(Harman S. Gahir)
Harman Gahir
 
Spelling Bee Contest Word List La Salle School
Spelling Bee Contest Word List La Salle SchoolSpelling Bee Contest Word List La Salle School
Spelling Bee Contest Word List La Salle School
darkcrow08
 
интересные факты из истории олимпийских игр1
интересные факты из истории олимпийских игр1интересные факты из истории олимпийских игр1
интересные факты из истории олимпийских игр1
Елена Денисова
 

Destaque (20)

2010 16 oct 1-15
2010  16  oct 1-152010  16  oct 1-15
2010 16 oct 1-15
 
Hammett bullying-in-the-church-5.29.12-edition
Hammett bullying-in-the-church-5.29.12-editionHammett bullying-in-the-church-5.29.12-edition
Hammett bullying-in-the-church-5.29.12-edition
 
Paycreditreport
PaycreditreportPaycreditreport
Paycreditreport
 
Levin library databases page redesign
Levin library databases page redesignLevin library databases page redesign
Levin library databases page redesign
 
Generation 3
Generation 3Generation 3
Generation 3
 
NEW ARRIVALS IN OCTOBER 2010
NEW ARRIVALS IN OCTOBER 2010NEW ARRIVALS IN OCTOBER 2010
NEW ARRIVALS IN OCTOBER 2010
 
How to Quantumly Grow your Ecommerce Business - Strategies and Tactics
How to Quantumly Grow your Ecommerce Business - Strategies and TacticsHow to Quantumly Grow your Ecommerce Business - Strategies and Tactics
How to Quantumly Grow your Ecommerce Business - Strategies and Tactics
 
Myspace project
Myspace projectMyspace project
Myspace project
 
Hoja de ruta jornada de inducción a madres y padres
Hoja de ruta jornada de inducción a madres y padresHoja de ruta jornada de inducción a madres y padres
Hoja de ruta jornada de inducción a madres y padres
 
IDEAS TO ENCOURAGE ENGLISH LEARNING
IDEAS TO ENCOURAGE ENGLISH LEARNINGIDEAS TO ENCOURAGE ENGLISH LEARNING
IDEAS TO ENCOURAGE ENGLISH LEARNING
 
Zarządzanie projektami kreatywnymi: kruczki i sztuczki
Zarządzanie projektami kreatywnymi: kruczki i sztuczkiZarządzanie projektami kreatywnymi: kruczki i sztuczki
Zarządzanie projektami kreatywnymi: kruczki i sztuczki
 
Dancing with Life - Czech Republic - Sept 2012
Dancing with Life - Czech Republic - Sept 2012Dancing with Life - Czech Republic - Sept 2012
Dancing with Life - Czech Republic - Sept 2012
 
Immigration
ImmigrationImmigration
Immigration
 
Raven
RavenRaven
Raven
 
Phm 1.1.5(Harman S. Gahir)
Phm 1.1.5(Harman S. Gahir)Phm 1.1.5(Harman S. Gahir)
Phm 1.1.5(Harman S. Gahir)
 
Gafas
GafasGafas
Gafas
 
Spelling Bee Contest Word List La Salle School
Spelling Bee Contest Word List La Salle SchoolSpelling Bee Contest Word List La Salle School
Spelling Bee Contest Word List La Salle School
 
Saint louis science center
Saint louis science centerSaint louis science center
Saint louis science center
 
интересные факты из истории олимпийских игр1
интересные факты из истории олимпийских игр1интересные факты из истории олимпийских игр1
интересные факты из истории олимпийских игр1
 
Gs1 healthcare voor een betere patientveiligheid
Gs1 healthcare voor een betere patientveiligheidGs1 healthcare voor een betere patientveiligheid
Gs1 healthcare voor een betere patientveiligheid
 

Semelhante a Google App Engine - unusual application plaform for your next SaaS Project

What is App Engine? O
What is App Engine? OWhat is App Engine? O
What is App Engine? O
ikailan
 
Javaedge 2010-cschalk
Javaedge 2010-cschalkJavaedge 2010-cschalk
Javaedge 2010-cschalk
Chris Schalk
 

Semelhante a Google App Engine - unusual application plaform for your next SaaS Project (20)

Exploring Google APIs with Python
Exploring Google APIs with PythonExploring Google APIs with Python
Exploring Google APIs with Python
 
What is App Engine? O
What is App Engine? OWhat is App Engine? O
What is App Engine? O
 
Entrepreneurship Tips With HTML5 & App Engine Startup Weekend (June 2012)
Entrepreneurship Tips With HTML5 & App Engine Startup Weekend (June 2012)Entrepreneurship Tips With HTML5 & App Engine Startup Weekend (June 2012)
Entrepreneurship Tips With HTML5 & App Engine Startup Weekend (June 2012)
 
Exploring Google APIs with Python
Exploring Google APIs with PythonExploring Google APIs with Python
Exploring Google APIs with Python
 
Powerful Google Cloud tools for your hack
Powerful Google Cloud tools for your hackPowerful Google Cloud tools for your hack
Powerful Google Cloud tools for your hack
 
Google Cloud Platform as a Backend Solution for your Product
Google Cloud Platform as a Backend Solution for your ProductGoogle Cloud Platform as a Backend Solution for your Product
Google Cloud Platform as a Backend Solution for your Product
 
Powerful Google developer tools for immediate impact! (2023-24 A)
Powerful Google developer tools for immediate impact! (2023-24 A)Powerful Google developer tools for immediate impact! (2023-24 A)
Powerful Google developer tools for immediate impact! (2023-24 A)
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for Java
 
Introduction to Google's Cloud Technologies
Introduction to Google's Cloud TechnologiesIntroduction to Google's Cloud Technologies
Introduction to Google's Cloud Technologies
 
Javaedge 2010-cschalk
Javaedge 2010-cschalkJavaedge 2010-cschalk
Javaedge 2010-cschalk
 
Boot camp 2010_app_engine_101
Boot camp 2010_app_engine_101Boot camp 2010_app_engine_101
Boot camp 2010_app_engine_101
 
OWF12/Java Moussine pouchkine Girard
OWF12/Java  Moussine pouchkine GirardOWF12/Java  Moussine pouchkine Girard
OWF12/Java Moussine pouchkine Girard
 
Google AppEngine @Open World Forum 2012 - 12 oct.2012
Google AppEngine @Open World Forum 2012 - 12 oct.2012Google AppEngine @Open World Forum 2012 - 12 oct.2012
Google AppEngine @Open World Forum 2012 - 12 oct.2012
 
Introduction to serverless computing on Google Cloud
Introduction to serverless computing on Google CloudIntroduction to serverless computing on Google Cloud
Introduction to serverless computing on Google Cloud
 
Raising ux bar with offline first design
Raising ux bar with offline first designRaising ux bar with offline first design
Raising ux bar with offline first design
 
App Engine On Air: Munich
App Engine On Air: MunichApp Engine On Air: Munich
App Engine On Air: Munich
 
Introduction to Google Cloud Platform Technologies
Introduction to Google Cloud Platform TechnologiesIntroduction to Google Cloud Platform Technologies
Introduction to Google Cloud Platform Technologies
 
Building Integrated Applications on Google's Cloud Technologies
Building Integrated Applications on Google's Cloud TechnologiesBuilding Integrated Applications on Google's Cloud Technologies
Building Integrated Applications on Google's Cloud Technologies
 
Google App Engine Overview and Update
Google App Engine Overview and UpdateGoogle App Engine Overview and Update
Google App Engine Overview and Update
 
Designing flexible apps deployable to App Engine, Cloud Functions, or Cloud Run
Designing flexible apps deployable to App Engine, Cloud Functions, or Cloud RunDesigning flexible apps deployable to App Engine, Cloud Functions, or Cloud Run
Designing flexible apps deployable to App Engine, Cloud Functions, or Cloud Run
 

Mais de Alek Kowalczyk

Mais de Alek Kowalczyk (10)

Surprised? Prepare for investor questions!
Surprised? Prepare for investor questions!Surprised? Prepare for investor questions!
Surprised? Prepare for investor questions!
 
Barcamp: Noise, Chaos and Deceptive Signals: Product Management in a Startup
Barcamp: Noise, Chaos and Deceptive Signals: Product Management in a StartupBarcamp: Noise, Chaos and Deceptive Signals: Product Management in a Startup
Barcamp: Noise, Chaos and Deceptive Signals: Product Management in a Startup
 
10 Key Elements Every Event Must Have
10 Key Elements Every Event Must Have10 Key Elements Every Event Must Have
10 Key Elements Every Event Must Have
 
Marketing Day - French Style or German Reliability - Alex Kowalczyk
Marketing Day - French Style or German Reliability - Alex KowalczykMarketing Day - French Style or German Reliability - Alex Kowalczyk
Marketing Day - French Style or German Reliability - Alex Kowalczyk
 
FoxyTasks Marketing Projects Tips and Tricks - Slide Deck
FoxyTasks Marketing Projects Tips and Tricks - Slide DeckFoxyTasks Marketing Projects Tips and Tricks - Slide Deck
FoxyTasks Marketing Projects Tips and Tricks - Slide Deck
 
What Meeting Animal Are You?
What Meeting Animal Are You?What Meeting Animal Are You?
What Meeting Animal Are You?
 
Zarządzanie jakością projekcie marketingowym
Zarządzanie jakością projekcie marketingowymZarządzanie jakością projekcie marketingowym
Zarządzanie jakością projekcie marketingowym
 
How To Make Your Day Last Longer: Time Management in Marketing Projects
How To Make Your Day Last Longer: Time Management in Marketing Projects How To Make Your Day Last Longer: Time Management in Marketing Projects
How To Make Your Day Last Longer: Time Management in Marketing Projects
 
Zarzadzanie czasem w projekcie (Polish)
Zarzadzanie czasem w projekcie (Polish)Zarzadzanie czasem w projekcie (Polish)
Zarzadzanie czasem w projekcie (Polish)
 
5 ways your marketing project can ruin customer day
5 ways your marketing project can ruin customer day5 ways your marketing project can ruin customer day
5 ways your marketing project can ruin customer day
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Último (20)

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 

Google App Engine - unusual application plaform for your next SaaS Project

  • 1. 1 Google App Engine Alek Kowalczyk 1.10.2013 www.offiserv.com
  • 3. 3 LAMP vs GAELAMP vs GAE Components: ✔Linux ✔Apache ✔MySQL ✔PHP, Python, Ruby, Perl Components: ✔Python Tasks: ✔ Keep secure ✔ Maintain updates ✔ Design and keep scalable ✔ Maintain load balancing Tasks: Pay monthly bills
  • 4. 4 GAE Dev EnvGAE Dev Env Python libs: Services: Task Queues Users & OAuth XMPP Memcache Logs Mail Development server Languages:
  • 6. 6 HRD – High Replication DatastoreHRD – High Replication Datastore Schema-less  Dynamic properties  Watch out missing or type-varying columns! Database Access:  ORM:  DB API older  NDB newer – advanced caching  GQL  Low level API
  • 7. 7 Forget about what you know on SQL...Forget about what you know on SQL... No planned downtimes (I haven't noticed unplanned ones too) Scalability 100 records query performs the same when searching in 100 records as in 1 000 000 000 records Query limitations  >, <, != conditions: one field only (who cares...)  No LIKE, GROUP BY, COUNT or SUM (again, who cares...) No JOIN queries What? 
  • 8. 8 Eventual ConsistencyEventual Consistency GAE High Replication Datastore Nope... ? SELECT * WHERE name='Alex' GAE High Replication Datastore __key__=5 name='Alex' GAE High Replication Datastore id=5 name='Alex' SELECT * WHERE name='Alex' ?
  • 9. 9 How can I live with that?How can I live with that? >>> ses = Session(cookie=cookie, user=user) >>> ses.put() # next request: >>> ses = GqlQuery(“SELECT * FROM Session WHERE cookie=:1”, cookie).get()  None  # or <Session object> if lucky... >>> ses = Session.all().filter('cookie', cookie).get() None  # or <Session object> if lucky... >>> ses = Session(key_name=COOKIE, user=userid, …) >>> ses.put() # next request:  >>> ses = Session.get_by_key_name(cookie)  <Session object>  # for sure Most likely won't hurt If hurts:  Entity groups/ancestor queries  Primary key queries Some code? Google BigTable is used by: Google Search, Google Maps, Gmail, YouTube, Orkut, Google Earth,...
  • 10. 10 BillingBilling Google App Engine charges for: Outgoing Bandwidth Frontend & Backend Instances Stored Data (Datastore, Logs Data, Task Queue) Memcache Recipients Emailed SNI SSL certificates PageSpeed bandwidth DB Write Operation DB Read Operation (and more...) Free quotas for each app
  • 11. 11 Good and badGood and bad ✔New apps ✔Big data – small result sets ✔Google integration ✗Legacy apps ✗Binary code ✗CPU-intensive / background apps ¿Big data - big result sets – runtime analytics • Integrate with Google BigQuery • MapReduce
  • 13. 13 Application Versions supportApplication Versions support V1 V2 V2 – 70%V1 – 30% Versioning A/B Testing
  • 14. 14 Backup: Development setupBackup: Development setup I. Create a free app on your google account: https://appengine.google.com/ II. Download SDK: http://goo.gl/hoK5tk III. Create WSGI python app IV. Create app.yaml configuration file V. Run app at http://localhost:8000: dev_appserver.py ­­port=8000 <app­name> VI. Upload app google credentials appcfg.py update app-name VII. http://app-name.appspot.com
  • 15. 15 Backup: The SandboxBackup: The Sandbox An application cannot:  Open a socket  Access another host - except URL Fetch Service  Respond slowly – 60 secs  Write to the filesystem - reading is OK  Run other programs  Run binary (C) extensions – pure Python only

Notas do Editor

  1. a