SlideShare una empresa de 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

Más contenido relacionado

La actualidad más candente

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
 

La actualidad más candente (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
 

Destacado

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
 

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

Similar a 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
 

Similar 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
 
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
 
OWF12/Java Moussine pouchkine Girard
OWF12/Java  Moussine pouchkine GirardOWF12/Java  Moussine pouchkine Girard
OWF12/Java Moussine pouchkine Girard
 
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
 

Más 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
 

Más 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

"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 

Último (20)

DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 

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 del editor

  1. a