Magnus Jern presented at the Google Cloud Developer event in London about how and why Google App Engine (GAE) powers most of Golden Gekko's mobile solutions.
The presentation covered the following topics:
Why we chose GAE as our preferred cloud hosting solution in 2011 until now
Case studies on clients using GAE
How to forecast cost for using GAE
Summary of the benefits of GAE
2. Content
! About myself and Golden Gekko
! Why GAE?
! Four case studies
! Forecasting GAE cost
! Summary
2
3. Who am I?
Software engineer,
entrepreneur, CEO
and SVP
! Programmer since childhood
! Bulletin Boards
! University
!
Framfab
!
Driftbolaget
!
Blokks
! Vodafone
! Golden Gekko
!
NComVA
4. 200 brands and agency clients.
160+ people that love and breathe mobile technology.
4
5. Part of DMI Group
Growth
Global Footprint
Certifications
..............................................................
..............................................................
..............................................................
• $250 Million Revenue
• Bethesda, MD (HQ)
• ISO 9001: 2008 Certified
• 1,600 Employees
• New York, NY
• ISO 27001: 2005 Certified
• Inc 500/5000 Six years in
a row
• Barcelona, Spain
• ISO 20000-1: 2011
Certified
• Top 5 Enterprise Mobility
provider in the world
• Pune, India
• London, United Kingdom
• Washington, DC
• CMMI Level 3 Appraised:
Development and
Services
Key Partnerships
Awards
5
6. Used Google App Engine since 2010
Other Examples
..............................................................................................................
Local Offers, Product and store locator incl frontend apps, middleware and backoffice
Strategy, development framework and long term
solution for Anheuser-Busch InBev, managing all
mobile services across 200 brands in 50 countries.
Sales enterprise solution powering one of UK’s
most recognizable food brands.
All mobile services for 6 airports across the UK and
Scotland, including London’s Heathrow.
Mobile media solution providing intelligent
pespectives on news
• Telenor SoBazar
Social mCommerce platform mixing online and instore
experiences
• Nokadi
Putting all your loyalty cards on a mobile device.
• Unilever Smartswap Intelligent recommendations of
healthier and better products based on shopping
• TwoForOne
Previously a paper based coupon book company, that has
now gone mobile.
• Ovivo
Free mobile MVNO in the UK
• Yellow Pages
Powering the Yellow Pages in 8 countries
• O2 Healthy
Encouraging walking, biking and more through social
6
15. Toolbox
For build and project management.
For continuous integration.
For storing and distributing built SW.
For monitoring of 24/7 operations.
15
16. Heathrow Airport
§ Business critical
§ Peak traffic with
weather, strikes, etc
1
Pre-trip
4
At the destination
2
At the airport
On-board
5
Post-trip
3
16
17. ESB Integration - Overview"
! BAA will update status file for each airport once every
1
Apps
5 minutes using FTP
! The Ingestion Daemon get all the flights and the
2
Controllers
related information
! Updated flights information is send to the Status
3
Service
FlightInfo Service
Persistence
Manager
the flight already exists it will merge the existing status
with the new status, if it is a new status it will added
! The status service request all arrival and departure
5
7
4
Status Service
6
5
3
Ingestion
Daemon
2
1 per
airport
! For each flight received from the ingestion Daemon, If
4
1
BAA
CSV File
flights for a specific airport from FlightStats during the
next 14 hours (one single request that can be slow and
contain a lot of data)
! For each of the received statues (from BAA) the
6
service try to find the same flight in the response from
FlightStats. If it is found the service will, first update
the status with the information from FlightStats and
then If the status from FlightStats indicate that the
flight have coflights this information will be added to
the status.
! Updated status are stored to be used
7
for the next 5 min
17
18. Track180
§ The “Flipboard” of getting different perspectives
§ Using GAE as CMS and content delivery platform
18
19. One of UK’s most recognizable brands who’s retail team
is responsible for visiting 20.000 stores across the UK.
§ Business critical
Enterprise solution
19
22. Budweiser – Man of The Match
§
§
Scale to handle between 10-100M active users during World Cup
Peak bursts of 5-30 min during football game
22
23. How to calculate GAE cost?
1.
2.
3.
4.
Type of service
System Design
Supporting Services
Usage
23
24. Summary 1
GAE is a fantastic service for complex,
high availability and scalable service for
demanding customers
! Super fast bootstrapping and template
projects - developer can get up and running
in a few hours.
! Run-time will support and lead developers
into good habits, especially dealing with
resources (files, requests etc).
! Small operations team can mange a large
number of services - everything in one
place.
! Auto-scaling is nice and important BUT less
then the items above.
24
25. Summary 2
Good understanding and strategy for
using the datastore is fundamental for
achieving a good service
! Hire or grow an internal datastore champion
that can police/help projects.
! Invest in sharing best practices, internal
tech talks/workshops to spread the
knowledge.
! Denormalise, duplicate properties between
entities to avoid an extra read, always use
queries that run a list of results, never
request single result on a loop. Rule of
thumb is to do max 1 read per request.
! Memcache is your best friend, use it well.
25
26. Contributors
Mattias Levin, Head of Production
Ola Sandstrom, CTO
Mardao - database mapper and domain generator that hides many of the
complexities of the datastore and provide automatic caching
https://github.com/sosandstrom/mardao
Open services - A set of base services for rapid development of web services on
GAE and Spring. Take a look at the CRUD controller, combine it with Mardao and
and it will reduce your boilerplate coding with 80-90%, its awesome
https://github.com/sosandstrom/open-server
Gaelic - a light weight web service framework tailored for GAE, supporting
dynamic scaling by offering support fast startup times (in the range of seconds).
Will replace Spring in future projects https://github.com/sosandstrom/gaelic
Ricotta - A neat service for managing a projects translations, no more Excel files.
Let you customer translate token online and use Maven to pull down your
localised resource at build time. https://github.com/sosandstrom/ricotta
And many more
https://github.com/sosandstrom
https://github.com/mattiaslevin
Contact me on mj@goldengekko.com if you have more questions.
26