SlideShare ist ein Scribd-Unternehmen logo
1 von 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
✔Python
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
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 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
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
•
Integrate with Google BigQuery
•
MapReduce
12
Q&A
13
Backup: Application Versions supportBackup: Application 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

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Google cloud functions
Google cloud functionsGoogle cloud functions
Google cloud functions
 
Using Google App Engine Python
Using Google App Engine PythonUsing Google App Engine Python
Using Google App Engine Python
 
Microservice Plumbing - Glynn Bird - Codemotion Rome 2017
Microservice Plumbing  - Glynn Bird - Codemotion Rome 2017Microservice Plumbing  - Glynn Bird - Codemotion Rome 2017
Microservice Plumbing - Glynn Bird - Codemotion Rome 2017
 
Serverless Big Data Architecture on Google Cloud Platform at Credit OK
Serverless Big Data Architecture on Google Cloud Platform at Credit OKServerless Big Data Architecture on Google Cloud Platform at Credit OK
Serverless Big Data Architecture on Google Cloud Platform at Credit OK
 
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...
 
JCConf 2016 - Google Dataflow 小試
JCConf 2016 - Google Dataflow 小試JCConf 2016 - Google Dataflow 小試
JCConf 2016 - Google Dataflow 小試
 
Fantastic datasets and where to find them
Fantastic datasets and where to find themFantastic datasets and where to find them
Fantastic datasets and where to find them
 
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
 
I/O intensiveなKafka ConsumerアプリケーションのスループットをLINE Ads Platformではどのように改善したか
I/O intensiveなKafka ConsumerアプリケーションのスループットをLINE Ads Platformではどのように改善したかI/O intensiveなKafka ConsumerアプリケーションのスループットをLINE Ads Platformではどのように改善したか
I/O intensiveなKafka ConsumerアプリケーションのスループットをLINE Ads Platformではどのように改善したか
 
Elastic Stack Basic - All The Capabilities in 6.3!
Elastic Stack Basic - All The Capabilities in 6.3!Elastic Stack Basic - All The Capabilities in 6.3!
Elastic Stack Basic - All The Capabilities in 6.3!
 
StackEngine Demo - Docker Austin
StackEngine Demo - Docker AustinStackEngine Demo - Docker Austin
StackEngine Demo - Docker Austin
 
The Magic of LINE 購物 Testing
The Magic of LINE 購物 TestingThe Magic of LINE 購物 Testing
The Magic of LINE 購物 Testing
 
Google cloud platform Introduction - 2014
Google cloud platform Introduction - 2014Google cloud platform Introduction - 2014
Google cloud platform Introduction - 2014
 
Seven Cloud Sins of DevOps
Seven Cloud Sins of DevOpsSeven Cloud Sins of DevOps
Seven Cloud Sins of DevOps
 
IThome DevOps Summit - IoT、docker與DevOps
IThome DevOps Summit - IoT、docker與DevOpsIThome DevOps Summit - IoT、docker與DevOps
IThome DevOps Summit - IoT、docker與DevOps
 
Blazing fast sites using Blaze, Hybrid CMS NYC
Blazing fast sites using Blaze, Hybrid CMS NYCBlazing fast sites using Blaze, Hybrid CMS NYC
Blazing fast sites using Blaze, Hybrid CMS NYC
 
Evolution of AWS infrastructure for ML: from Zero to Hero
Evolution of AWS infrastructure for ML: from Zero to HeroEvolution of AWS infrastructure for ML: from Zero to Hero
Evolution of AWS infrastructure for ML: from Zero to Hero
 
PGConf APAC 2018 - PostgreSQL performance comparison in various clouds
PGConf APAC 2018 - PostgreSQL performance comparison in various cloudsPGConf APAC 2018 - PostgreSQL performance comparison in various clouds
PGConf APAC 2018 - PostgreSQL performance comparison in various clouds
 
Productionize spark structured streaming
Productionize spark structured streamingProductionize spark structured streaming
Productionize spark structured streaming
 
Serverless Architecture GCP In Production
Serverless Architecture GCP In ProductionServerless Architecture GCP In Production
Serverless Architecture GCP In Production
 

Andere mochten auch

21 natek
21   natek21   natek
21 natek
3camp
 
Swiety mikolaj-dotacje
Swiety mikolaj-dotacjeSwiety mikolaj-dotacje
Swiety mikolaj-dotacje
3camp
 
Pstro
PstroPstro
Pstro
3camp
 
Justproto
JustprotoJustproto
Justproto
3camp
 
Legenhit
LegenhitLegenhit
Legenhit
3camp
 
Zubibu - Natywnie czy webowo - którędy do zysków na iPhone
Zubibu - Natywnie czy webowo - którędy do zysków na iPhoneZubibu - Natywnie czy webowo - którędy do zysków na iPhone
Zubibu - Natywnie czy webowo - którędy do zysków na iPhone
3camp
 

Andere mochten auch (20)

Poszedłeś na swoje, masz apetyt na więcej – czyli jak rozwinąć firmę
Poszedłeś na swoje, masz apetyt na więcej – czyli jak rozwinąć firmęPoszedłeś na swoje, masz apetyt na więcej – czyli jak rozwinąć firmę
Poszedłeś na swoje, masz apetyt na więcej – czyli jak rozwinąć firmę
 
Ostatnia faza produktu: co się dzieję kiedy programista zakończył swoje zadanie
Ostatnia faza produktu: co się dzieję kiedy programista zakończył swoje zadanieOstatnia faza produktu: co się dzieję kiedy programista zakończył swoje zadanie
Ostatnia faza produktu: co się dzieję kiedy programista zakończył swoje zadanie
 
Oculus Rift – zanurzenie w przyszłość
Oculus Rift – zanurzenie w przyszłośćOculus Rift – zanurzenie w przyszłość
Oculus Rift – zanurzenie w przyszłość
 
Prezentacja firmy Fineos
Prezentacja firmy FineosPrezentacja firmy Fineos
Prezentacja firmy Fineos
 
Brzydkie obrazki
Brzydkie obrazkiBrzydkie obrazki
Brzydkie obrazki
 
Atrybucja wielokanałowa – dlaczego last-click to zła metoda pomiaru?
Atrybucja wielokanałowa – dlaczego last-click to zła metoda pomiaru?Atrybucja wielokanałowa – dlaczego last-click to zła metoda pomiaru?
Atrybucja wielokanałowa – dlaczego last-click to zła metoda pomiaru?
 
21 natek
21   natek21   natek
21 natek
 
Swiety mikolaj-dotacje
Swiety mikolaj-dotacjeSwiety mikolaj-dotacje
Swiety mikolaj-dotacje
 
Agile UX komunikacja w projektowaniu
Agile UX komunikacja w projektowaniuAgile UX komunikacja w projektowaniu
Agile UX komunikacja w projektowaniu
 
Projektowanie aplikacji mobilnych
Projektowanie aplikacji mobilnychProjektowanie aplikacji mobilnych
Projektowanie aplikacji mobilnych
 
Retargetowanie
RetargetowanieRetargetowanie
Retargetowanie
 
Redesing serwisu Morizon.pl
Redesing serwisu Morizon.plRedesing serwisu Morizon.pl
Redesing serwisu Morizon.pl
 
Musi byc glosno kiedy jest impreza
Musi byc glosno kiedy jest imprezaMusi byc glosno kiedy jest impreza
Musi byc glosno kiedy jest impreza
 
FreeIPA – gotowe rozwiązanie do zarządzania użytkownikami
 FreeIPA – gotowe rozwiązanie do zarządzania użytkownikami FreeIPA – gotowe rozwiązanie do zarządzania użytkownikami
FreeIPA – gotowe rozwiązanie do zarządzania użytkownikami
 
Procesy konwersji a zarządzanie produktem na przykładzie Alegratka.pl
 Procesy konwersji a zarządzanie produktem na przykładzie Alegratka.pl Procesy konwersji a zarządzanie produktem na przykładzie Alegratka.pl
Procesy konwersji a zarządzanie produktem na przykładzie Alegratka.pl
 
Pstro
PstroPstro
Pstro
 
Justproto
JustprotoJustproto
Justproto
 
UCD - Waga użytkowników
UCD - Waga użytkownikówUCD - Waga użytkowników
UCD - Waga użytkowników
 
Legenhit
LegenhitLegenhit
Legenhit
 
Zubibu - Natywnie czy webowo - którędy do zysków na iPhone
Zubibu - Natywnie czy webowo - którędy do zysków na iPhoneZubibu - Natywnie czy webowo - którędy do zysków na iPhone
Zubibu - Natywnie czy webowo - którędy do zysków na iPhone
 

Ähnlich wie Google App Engine – niekonwencjonalna platforma aplikacji SaaS do Twojego następnego projektu.

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
 

Ähnlich wie Google App Engine – niekonwencjonalna platforma aplikacji SaaS do Twojego następnego projektu. (20)

Exploring Google APIs with Python
Exploring Google APIs with PythonExploring Google APIs with Python
Exploring Google APIs with Python
 
Exploring Google APIs with Python
Exploring Google APIs with PythonExploring Google APIs with Python
Exploring Google APIs with Python
 
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)
 
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)
 
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
 
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
 
What is App Engine? O
What is App Engine? OWhat is App Engine? O
What is App Engine? O
 
A fresh look at Google’s Cloud by Mandy Waite
A fresh look at Google’s Cloud by Mandy Waite A fresh look at Google’s Cloud by Mandy Waite
A fresh look at Google’s Cloud by Mandy Waite
 
Cc unit 5
Cc unit 5Cc unit 5
Cc unit 5
 
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
 
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
 
Google App Engine for PHP
Google App Engine for PHP Google App Engine for PHP
Google App Engine for PHP
 
Google App Engine - Overview #1
Google App Engine - Overview #1Google App Engine - Overview #1
Google App Engine - Overview #1
 
Quick Intro to Google Cloud Technologies
Quick Intro to Google Cloud TechnologiesQuick Intro to Google Cloud Technologies
Quick Intro to Google Cloud Technologies
 
Thinking DevOps in the era of the Cloud - Demi Ben-Ari
Thinking DevOps in the era of the Cloud - Demi Ben-AriThinking DevOps in the era of the Cloud - Demi Ben-Ari
Thinking DevOps in the era of the Cloud - Demi Ben-Ari
 
Introduction to Google's Cloud Technologies
Introduction to Google's Cloud TechnologiesIntroduction to Google's Cloud Technologies
Introduction to Google's Cloud Technologies
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for Java
 
Javaedge 2010-cschalk
Javaedge 2010-cschalkJavaedge 2010-cschalk
Javaedge 2010-cschalk
 
#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...
#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...
#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...
 
WebSphere Technical University: Introduction to the Java Diagnostic Tools
WebSphere Technical University: Introduction to the Java Diagnostic ToolsWebSphere Technical University: Introduction to the Java Diagnostic Tools
WebSphere Technical University: Introduction to the Java Diagnostic Tools
 

Mehr von 3camp

Marcin Szeląg, InnovationNest, Startup Risk Model
Marcin Szeląg, InnovationNest, Startup Risk ModelMarcin Szeląg, InnovationNest, Startup Risk Model
Marcin Szeląg, InnovationNest, Startup Risk Model
3camp
 

Mehr von 3camp (20)

Ochrona podatnych webaplikacji za pomocą wirtualnych poprawek
Ochrona podatnych webaplikacji za pomocą wirtualnych poprawekOchrona podatnych webaplikacji za pomocą wirtualnych poprawek
Ochrona podatnych webaplikacji za pomocą wirtualnych poprawek
 
HTTPS bez wymówek
HTTPS bez wymówekHTTPS bez wymówek
HTTPS bez wymówek
 
Jak udokumentować bazę danych
Jak udokumentować bazę danychJak udokumentować bazę danych
Jak udokumentować bazę danych
 
ORM - tuningujemy podejście do mapowania
ORM - tuningujemy podejście do mapowaniaORM - tuningujemy podejście do mapowania
ORM - tuningujemy podejście do mapowania
 
No pressure, no diamonds. Rzecz o łamaniu zasad w projektach.
No pressure, no diamonds. Rzecz o łamaniu zasad w projektach.No pressure, no diamonds. Rzecz o łamaniu zasad w projektach.
No pressure, no diamonds. Rzecz o łamaniu zasad w projektach.
 
W poszukiwaniu procesu doskonałego. Wdrożenie Scruma, Continuous Integrations...
W poszukiwaniu procesu doskonałego. Wdrożenie Scruma, Continuous Integrations...W poszukiwaniu procesu doskonałego. Wdrożenie Scruma, Continuous Integrations...
W poszukiwaniu procesu doskonałego. Wdrożenie Scruma, Continuous Integrations...
 
Wykorzystanie języka Kotlin do aplikacji na platformie Android
Wykorzystanie języka Kotlin do aplikacji na platformie AndroidWykorzystanie języka Kotlin do aplikacji na platformie Android
Wykorzystanie języka Kotlin do aplikacji na platformie Android
 
Learn you some rx for the greater good
Learn you some rx for the greater goodLearn you some rx for the greater good
Learn you some rx for the greater good
 
Google App Engine i Google Play Services w Twoich aplikacjach
Google App Engine i Google Play Services w Twoich aplikacjachGoogle App Engine i Google Play Services w Twoich aplikacjach
Google App Engine i Google Play Services w Twoich aplikacjach
 
Reakcja łańcuchowa, czyli React.js w praktyce
Reakcja łańcuchowa, czyli React.js w praktyceReakcja łańcuchowa, czyli React.js w praktyce
Reakcja łańcuchowa, czyli React.js w praktyce
 
Odtwarzanie multimediów w HTML5, czyli Player przez duże „P”
Odtwarzanie multimediów w HTML5, czyli Player przez duże „P”Odtwarzanie multimediów w HTML5, czyli Player przez duże „P”
Odtwarzanie multimediów w HTML5, czyli Player przez duże „P”
 
AngularJS (nie) nadaje się do dużego projektu
AngularJS (nie) nadaje się do dużego projektuAngularJS (nie) nadaje się do dużego projektu
AngularJS (nie) nadaje się do dużego projektu
 
Przemysław Bartkowiak - Sam ustalasz ile za to zapłacisz – czyli nowy wymiar ...
Przemysław Bartkowiak - Sam ustalasz ile za to zapłacisz – czyli nowy wymiar ...Przemysław Bartkowiak - Sam ustalasz ile za to zapłacisz – czyli nowy wymiar ...
Przemysław Bartkowiak - Sam ustalasz ile za to zapłacisz – czyli nowy wymiar ...
 
Mirek Wąsowicz - Segment jednego, dokąd zmierza marketing online?
Mirek Wąsowicz - Segment jednego, dokąd zmierza marketing online?Mirek Wąsowicz - Segment jednego, dokąd zmierza marketing online?
Mirek Wąsowicz - Segment jednego, dokąd zmierza marketing online?
 
Artur Senk, OKE Poland, Big Data na zakupach
Artur Senk, OKE Poland, Big Data na zakupachArtur Senk, OKE Poland, Big Data na zakupach
Artur Senk, OKE Poland, Big Data na zakupach
 
Piotr Macuk, Konfeo.com, Programista i biznes – plusy i minusy własnej działa...
Piotr Macuk, Konfeo.com, Programista i biznes – plusy i minusy własnej działa...Piotr Macuk, Konfeo.com, Programista i biznes – plusy i minusy własnej działa...
Piotr Macuk, Konfeo.com, Programista i biznes – plusy i minusy własnej działa...
 
Marcin Maj, Kainos - QA – wartko, zmiennie i interdyscyplinarnie
Marcin Maj, Kainos - QA – wartko, zmiennie i interdyscyplinarnieMarcin Maj, Kainos - QA – wartko, zmiennie i interdyscyplinarnie
Marcin Maj, Kainos - QA – wartko, zmiennie i interdyscyplinarnie
 
Jak przesiąść się na rower na dwóch kółkach? Od trzyosobowego startupu do spó...
Jak przesiąść się na rower na dwóch kółkach? Od trzyosobowego startupu do spó...Jak przesiąść się na rower na dwóch kółkach? Od trzyosobowego startupu do spó...
Jak przesiąść się na rower na dwóch kółkach? Od trzyosobowego startupu do spó...
 
Łukasz Brzeziński - Jak zarabiać z Wikingami? Czyli monetyzacja portalu inter...
Łukasz Brzeziński - Jak zarabiać z Wikingami? Czyli monetyzacja portalu inter...Łukasz Brzeziński - Jak zarabiać z Wikingami? Czyli monetyzacja portalu inter...
Łukasz Brzeziński - Jak zarabiać z Wikingami? Czyli monetyzacja portalu inter...
 
Marcin Szeląg, InnovationNest, Startup Risk Model
Marcin Szeląg, InnovationNest, Startup Risk ModelMarcin Szeląg, InnovationNest, Startup Risk Model
Marcin Szeląg, InnovationNest, Startup Risk Model
 

Kürzlich hochgeladen

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
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Kürzlich hochgeladen (20)

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?
 
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
 
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...
 
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
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
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
 
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...
 
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
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
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
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
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
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
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
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 

Google App Engine – niekonwencjonalna platforma aplikacji SaaS do Twojego następnego projektu.

  • 1. 1 Google App Engine Alek Kowalczyk 1.10.2013 www.offiserv.com
  • 2. 2 LAMP vs GAELAMP vs GAE ?
  • 3. 3 LAMP vs GAELAMP vs GAE Components: ✔Linux ✔Apache ✔MySQL ✔Python 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 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 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
  • 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 • Integrate with Google BigQuery • MapReduce
  • 13. 13 Backup: Application Versions supportBackup: Application 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