SlideShare une entreprise Scribd logo
1  sur  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

Contenu connexe

Tendances

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 haveSimon Willison
 
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 SharingVianney FOUCAULT
 
Clearing Airflow Obstructions
Clearing Airflow ObstructionsClearing Airflow Obstructions
Clearing Airflow ObstructionsTatiana Al-Chueyr
 
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 2013RightScale
 
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...MongoDB
 
Google app engine introduction
Google app engine introductionGoogle app engine introduction
Google app engine introductionrajsandhu1989
 
Oct 2011 CHADNUG Presentation on Hadoop
Oct 2011 CHADNUG Presentation on HadoopOct 2011 CHADNUG Presentation on Hadoop
Oct 2011 CHADNUG Presentation on HadoopJosh Patterson
 
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 OKKriangkrai Chaonithi
 
Using Kafka to scale database replication
Using Kafka to scale database replicationUsing Kafka to scale database replication
Using Kafka to scale database replicationVenu Ryali
 
Big Data Berlin - Criteo
Big Data Berlin - CriteoBig Data Berlin - Criteo
Big Data Berlin - CriteoSofian Djamaa
 
Embracing Serverless with Google
Embracing Serverless with GoogleEmbracing Serverless with Google
Embracing Serverless with GoogleJoseph Lust
 
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 SQLDatabricks
 
JCConf 2016 - Google Dataflow 小試
JCConf 2016 - Google Dataflow 小試JCConf 2016 - Google Dataflow 小試
JCConf 2016 - Google Dataflow 小試Simon Su
 
Scaling Galaxy on Google Cloud Platform
Scaling Galaxy on Google Cloud PlatformScaling Galaxy on Google Cloud Platform
Scaling Galaxy on Google Cloud PlatformLynn Langit
 
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 PinotXiang Fu
 
BlazingSQL & Graphistry - Netflow Demo
BlazingSQL & Graphistry - Netflow DemoBlazingSQL & Graphistry - Netflow Demo
BlazingSQL & Graphistry - Netflow DemoRodrigo Aramburu
 
SQL Server on Google Cloud Platform
SQL Server on Google Cloud PlatformSQL Server on Google Cloud Platform
SQL Server on Google Cloud PlatformLynn Langit
 
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...Lisa Roth, PMP
 
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 cloudChris Schalk
 

Tendances (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
 

En vedette

Levin library databases page redesign
Levin library databases page redesignLevin library databases page redesign
Levin library databases page redesignEmily Singley
 
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 TacticsGoECart
 
Myspace project
Myspace projectMyspace project
Myspace projectfzemcik
 
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 padresHilda Aimituma
 
IDEAS TO ENCOURAGE ENGLISH LEARNING
IDEAS TO ENCOURAGE ENGLISH LEARNINGIDEAS TO ENCOURAGE ENGLISH LEARNING
IDEAS TO ENCOURAGE ENGLISH LEARNINGdarkcrow08
 
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 sztuczkiAlek Kowalczyk
 
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 2012Beautiful 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 Schooldarkcrow08
 
интересные факты из истории олимпийских игр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 patientveiligheidGS1 Nederland
 

En vedette (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
 

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

Exploring Google APIs with Python
Exploring Google APIs with PythonExploring Google APIs with Python
Exploring Google APIs with Pythonwesley chun
 
What is App Engine? O
What is App Engine? OWhat is App Engine? O
What is App Engine? Oikailan
 
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)Ido Green
 
Exploring Google APIs with Python
Exploring Google APIs with PythonExploring Google APIs with Python
Exploring Google APIs with Pythonwesley chun
 
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 hackwesley chun
 
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 ProductSergey Smetanin
 
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)wesley chun
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for JavaLars Vogel
 
Introduction to Google's Cloud Technologies
Introduction to Google's Cloud TechnologiesIntroduction to Google's Cloud Technologies
Introduction to Google's Cloud TechnologiesChris Schalk
 
Javaedge 2010-cschalk
Javaedge 2010-cschalkJavaedge 2010-cschalk
Javaedge 2010-cschalkChris Schalk
 
Boot camp 2010_app_engine_101
Boot camp 2010_app_engine_101Boot camp 2010_app_engine_101
Boot camp 2010_app_engine_101ikailan
 
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.2012Paris Open Source Summit
 
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 Cloudwesley chun
 
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 designKyrylo Reznykov
 
App Engine On Air: Munich
App Engine On Air: MunichApp Engine On Air: Munich
App Engine On Air: Munichdion
 
Introduction to Google Cloud Platform Technologies
Introduction to Google Cloud Platform TechnologiesIntroduction to Google Cloud Platform Technologies
Introduction to Google Cloud Platform TechnologiesChris Schalk
 
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 TechnologiesChris Schalk
 
Google App Engine Overview and Update
Google App Engine Overview and UpdateGoogle App Engine Overview and Update
Google App Engine Overview and UpdateChris Schalk
 
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 Runwesley chun
 

Similaire à 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
 

Plus de Alek Kowalczyk

Surprised? Prepare for investor questions!
Surprised? Prepare for investor questions!Surprised? Prepare for investor questions!
Surprised? Prepare for investor questions!Alek Kowalczyk
 
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 StartupAlek Kowalczyk
 
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 HaveAlek Kowalczyk
 
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 KowalczykAlek 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 DeckAlek Kowalczyk
 
What Meeting Animal Are You?
What Meeting Animal Are You?What Meeting Animal Are You?
What Meeting Animal Are You?Alek Kowalczyk
 
Zarządzanie jakością projekcie marketingowym
Zarządzanie jakością projekcie marketingowymZarządzanie jakością projekcie marketingowym
Zarządzanie jakością projekcie marketingowymAlek Kowalczyk
 
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 Alek Kowalczyk
 
Zarzadzanie czasem w projekcie (Polish)
Zarzadzanie czasem w projekcie (Polish)Zarzadzanie czasem w projekcie (Polish)
Zarzadzanie czasem w projekcie (Polish)Alek Kowalczyk
 
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 dayAlek Kowalczyk
 

Plus 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
 

Dernier

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 CVKhem
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
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 Processorsdebabhi2
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 

Dernier (20)

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
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
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
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 

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

Notes de l'éditeur

  1. a