SlideShare uma empresa Scribd logo
1 de 37
10 Reasons Why You Should
Consider Google App Engine
for Your Next Project
Google Cloud Relay
Dec 2018
Presented by Abeer Rahman
Quick Poll:
What are some of your common
challenges you regularly face
when deploying software?
Hi, I’m Abeer
Abeer Rahman
Tech Lead
Agile / DevOps / Site Reliability Engineering
A flexible, zero
ops platform for
building highly
available apps
An app-centric view of the world
● Focus on writing code and never touch a
server, cluster, or infrastructure
● Building quickly and time to market are
highly valued
● Have high availability without a complex
architecture
A quick intro to
Google App Engine
Google Infrastructure
event driven functions
web apps & APIs
orchestrate containers
infrastructure
Reason #10
You want to be serverless,
but Cloud Functions might be too limiting
Cloud Functions
Mobile backend
Lightweight APIs
Webhooks
IoT
Triggering Data processing /
ETL jobs
App Engine
Mobile backend(s)
SaaS applications
REST-based API Server
IoT frontend and/or backend
workloads
Full websites using popular
frameworks
Arbitrary VM
images or Docker
containers
Financial data
analytics
Media rendering
Stateful storage Genomics
Not-so-ideal workloads
Reason #9
You get multiple languages supported
out-of-the-box
Reason #8
You get even more runtime options
using App Engine Flexible environment
if the Standard environment is too
constrained
And you still get the most of the benefits!
App Engine
Standard
Application instances
run in a sandbox, using
the runtime environment
of a pre-selected
supported language
App Engine
Flexible
Application instances
run within Docker
containers on Google
Compute Engine VMs
Standard Environment Flexible Environment
Specific versions of:
Python 2.7, Python 3.7 (beta)
Java 8, Java 7
Node.js 8 (beta)
PHP 5.5, PHP 7.2 (beta)
Go 1.6, 1.8, 1.9, and Go 1.11 (beta)
Any versions of:
Python, Java, Node.js, Go, Ruby, PHP, or .NET
And…
runs in a Docker container that includes a custom
runtime or source code written in other programming
languages.
Does not allow background process Allows background process
Can scale down to 0 instances Needs at least 1 instance
Startup time in seconds Startup time in minutes
Can’t SSH Can SSH
Can’t write to disk Can write to disk
Reason #7
You get infrastructure-related security
features enabled out of the box
Security features for Google App Engine:
App Engine Firewall rules + DDoS
Protection
App Security Scanner
Reason #6
You can design your applications like
microservices: modular & self-contained
Using
App Engine
for
Microservices
(in the same project)
Code Isolation
for each service
Multiple versions
of each service
Log isolation
per service
Reduced
performance
overhead for
service-to-service
call
Simplified request
tracing
Structure within a project
Reason #5
You can run experiments or validate ideas using
out-of-the-box A/B testing capabilities with very
minimal effort
Existing App
Experimental
Version
Version
1
Version
2
1
2
90% of traffic
10% of traffic
App Engine allows different
versions with traffic splitting:
IP address splitting
Cookie splitting
Migrate traffic to new version
gradually after validation
(or rollback)
Reason #4
You can simplify your deployment process.
No more heroics required to get your code into
production!
Do the DevOps thing
without a “DevOps team”
Deploy immediately and receive 100% of traffic:
gcloud app deploy
Deploy immediately without automatically routing all traffic to a
new version:
gcloud app deploy --version NEW_VERSION --no-promote
But wait, there’s more!
Deploying multiple services simultaneously:
gcloud app deploy service1/app.yaml service2/app.yaml …
Useful in a microservices landscape
Reason #3
You get logging, debugging capabilities
built within the integrated environments
of Google Cloud
Coupled with StackDriver
Logging, you can get insights
into:
• Request logs
• App logs
• 3rd Party Package logs
App Engine with StackDriver
Trace provides insights into:
• End-to-end latency data for
requests URIs
• Round-trip RPC calls to services like
Datastore, URL Fetch, Memcache
Reason #2
Pay for what your app uses.
And don’t pay for anything when you
have no traffic
Flexible billing
Per second billing
(1 minute minimum)
App Engine applications
operate on the notion of
quotas & limits:
• Free (!) quotas
• Spending limits
• Safety limits
Reason #1
You don’t need to manage infrastructure
(servers, network, etc)
#LessOps
For deploying even the most
simplest app, traditional
infrastructure would require you to:
● Provision server and
infrastructure
● Install web and database
servers
● Stitch it all together
● Duplicate for dev, test,
and prod
And then, you have to
manage & maintain it...
● Deploy it
● Scale it
● Monitor it
That 5-minute
“Hello World” app is now…
Hello Pain
A flexible, zero ops
platform for building
highly available apps
App Engine
Powerful built-in services
Designed for scale
Focus on your code
Popular languages & frameworks
Familiar development tools
Multiple storage options
Focus on code, not
managing infrastructure.
Automation
Availability
Scale
Security
(10) Not as constrained as pure serverless products
(9) Support for multiple languages
(8) More flexibility with App Engine Flexible environment
(7) Security features enabled out of the box
(6) Microservices-oriented capabilities
(5) Traffic splitting that allows for A/B testing
(4) Simplified your deployment process
(3) Integrated environment with logging, debugging capabilities
(2) Pay for what you use
(1) LessOps: focus on code, not the infrastructure!
10 Reasons Why You Should Consider
Google App Engine for Your Next Project
Thank you!
Abeer Rahman
Tech Lead
Agile / DevOps / Site Reliability Engineering
@abeer486

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Site (Service) Reliability Engineering
Site (Service) Reliability EngineeringSite (Service) Reliability Engineering
Site (Service) Reliability Engineering
 
SRE-iously: Defining the Principles, Habits, and Practices of Site Reliabilit...
SRE-iously: Defining the Principles, Habits, and Practices of Site Reliabilit...SRE-iously: Defining the Principles, Habits, and Practices of Site Reliabilit...
SRE-iously: Defining the Principles, Habits, and Practices of Site Reliabilit...
 
SRE in Enterprise - Local Journey DevopsDays Galway
SRE in Enterprise - Local Journey  DevopsDays GalwaySRE in Enterprise - Local Journey  DevopsDays Galway
SRE in Enterprise - Local Journey DevopsDays Galway
 
Site Reliability Engineering: An Enterprise Adoption Story (an ITSM Academy W...
Site Reliability Engineering: An Enterprise Adoption Story (an ITSM Academy W...Site Reliability Engineering: An Enterprise Adoption Story (an ITSM Academy W...
Site Reliability Engineering: An Enterprise Adoption Story (an ITSM Academy W...
 
Using Error Budgets to Prioritize Work
Using Error Budgets to Prioritize WorkUsing Error Budgets to Prioritize Work
Using Error Budgets to Prioritize Work
 
SRE 101 (Site Reliability Engineering)
SRE 101 (Site Reliability Engineering)SRE 101 (Site Reliability Engineering)
SRE 101 (Site Reliability Engineering)
 
Security within Scaled Agile
Security within Scaled AgileSecurity within Scaled Agile
Security within Scaled Agile
 
Diving Deeper into DevOps Deployments
Diving Deeper into DevOps DeploymentsDiving Deeper into DevOps Deployments
Diving Deeper into DevOps Deployments
 
You got a couple Microservices, now what? - Adding SRE to DevOps
You got a couple Microservices, now what?  - Adding SRE to DevOpsYou got a couple Microservices, now what?  - Adding SRE to DevOps
You got a couple Microservices, now what? - Adding SRE to DevOps
 
DevOps Explained
DevOps ExplainedDevOps Explained
DevOps Explained
 
Monitoring at the Speed of DevOps
Monitoring at the Speed of DevOpsMonitoring at the Speed of DevOps
Monitoring at the Speed of DevOps
 
SRE in Apiary
SRE in ApiarySRE in Apiary
SRE in Apiary
 
Scaling Enterprise DevOps with CloudBees
Scaling Enterprise DevOps with CloudBeesScaling Enterprise DevOps with CloudBees
Scaling Enterprise DevOps with CloudBees
 
Building Production-Ready Microservices: DevopsExchangeSF
Building Production-Ready Microservices: DevopsExchangeSFBuilding Production-Ready Microservices: DevopsExchangeSF
Building Production-Ready Microservices: DevopsExchangeSF
 
Webinar: A Roadmap for DevOps Success
Webinar: A Roadmap for DevOps SuccessWebinar: A Roadmap for DevOps Success
Webinar: A Roadmap for DevOps Success
 
How to Build the Right Automation
How to Build the Right AutomationHow to Build the Right Automation
How to Build the Right Automation
 
Starting and Scaling DevOps
Starting and Scaling DevOpsStarting and Scaling DevOps
Starting and Scaling DevOps
 
Drive Continuous Delivery With Continuous Testing
Drive Continuous Delivery With Continuous TestingDrive Continuous Delivery With Continuous Testing
Drive Continuous Delivery With Continuous Testing
 
"My App has Fallen and Can't Get Up," GE Digital at FutureStack17 NYC
"My App has Fallen and Can't Get Up," GE Digital at FutureStack17 NYC"My App has Fallen and Can't Get Up," GE Digital at FutureStack17 NYC
"My App has Fallen and Can't Get Up," GE Digital at FutureStack17 NYC
 
Building DevOps Toolchain
Building DevOps ToolchainBuilding DevOps Toolchain
Building DevOps Toolchain
 

Semelhante a 10 Reasons Why You Should Consider Google App Engine (GAE) for Your Next Project

App_Engine_PPT..........................
App_Engine_PPT..........................App_Engine_PPT..........................
App_Engine_PPT..........................
HassamShahid2
 
Asp.net Web Development | SEO Expert Bangladesh LTD
Asp.net Web Development | SEO Expert Bangladesh LTDAsp.net Web Development | SEO Expert Bangladesh LTD
Asp.net Web Development | SEO Expert Bangladesh LTD
Tasnim Jahan
 

Semelhante a 10 Reasons Why You Should Consider Google App Engine (GAE) for Your Next Project (20)

IBM BlueMix Presentation - Paris Meetup 17th Sept. 2014
IBM BlueMix Presentation - Paris Meetup 17th Sept. 2014IBM BlueMix Presentation - Paris Meetup 17th Sept. 2014
IBM BlueMix Presentation - Paris Meetup 17th Sept. 2014
 
Google Cloud Next '22 Recap: Serverless & Data edition
Google Cloud Next '22 Recap: Serverless & Data editionGoogle Cloud Next '22 Recap: Serverless & Data edition
Google Cloud Next '22 Recap: Serverless & Data edition
 
.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp
 
MWLUG Bluemix
MWLUG BluemixMWLUG Bluemix
MWLUG Bluemix
 
.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles
 
Paris Meetup Bluemix du 15/10/2104
Paris Meetup Bluemix du 15/10/2104Paris Meetup Bluemix du 15/10/2104
Paris Meetup Bluemix du 15/10/2104
 
Google Cloud Platform
Google Cloud PlatformGoogle Cloud Platform
Google Cloud Platform
 
App_Engine_PPT..........................
App_Engine_PPT..........................App_Engine_PPT..........................
App_Engine_PPT..........................
 
App_Engine_PPT.ppt
App_Engine_PPT.pptApp_Engine_PPT.ppt
App_Engine_PPT.ppt
 
Google App Engine - Overview #1
Google App Engine - Overview #1Google App Engine - Overview #1
Google App Engine - Overview #1
 
Building Cloud Native Applications with Oracle Autonomous Database.
Building Cloud Native Applications with Oracle Autonomous Database.Building Cloud Native Applications with Oracle Autonomous Database.
Building Cloud Native Applications with Oracle Autonomous Database.
 
Asp.net Web Development | SEO Expert Bangladesh LTD
Asp.net Web Development | SEO Expert Bangladesh LTDAsp.net Web Development | SEO Expert Bangladesh LTD
Asp.net Web Development | SEO Expert Bangladesh LTD
 
135 . Haga el deploy de su aplicación en minutos y en cualquier lenguaje con ...
135 . Haga el deploy de su aplicación en minutos y en cualquier lenguaje con ...135 . Haga el deploy de su aplicación en minutos y en cualquier lenguaje con ...
135 . Haga el deploy de su aplicación en minutos y en cualquier lenguaje con ...
 
KCD Munich - Cloud Native Platform Dilemma - Turning it into an Opportunity
KCD Munich - Cloud Native Platform Dilemma - Turning it into an OpportunityKCD Munich - Cloud Native Platform Dilemma - Turning it into an Opportunity
KCD Munich - Cloud Native Platform Dilemma - Turning it into an Opportunity
 
MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...
MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...
MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...
 
How to deploy your Apps in serverless-way using App Engine.pptx
How to deploy your Apps in serverless-way using App Engine.pptxHow to deploy your Apps in serverless-way using App Engine.pptx
How to deploy your Apps in serverless-way using App Engine.pptx
 
When to use serverless computing.pdf
When to use serverless computing.pdfWhen to use serverless computing.pdf
When to use serverless computing.pdf
 
When to use serverless computing.pdf
When to use serverless computing.pdfWhen to use serverless computing.pdf
When to use serverless computing.pdf
 
Resume ram-krishna
Resume ram-krishnaResume ram-krishna
Resume ram-krishna
 
InterCon 2016 - SLA vs Agilidade: uso de microserviços e monitoramento de cloud
InterCon 2016 - SLA vs Agilidade: uso de microserviços e monitoramento de cloudInterCon 2016 - SLA vs Agilidade: uso de microserviços e monitoramento de cloud
InterCon 2016 - SLA vs Agilidade: uso de microserviços e monitoramento de cloud
 

Último

Último (20)

S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptxS1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
 
Hostel management system project report..pdf
Hostel management system project report..pdfHostel management system project report..pdf
Hostel management system project report..pdf
 
A Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna MunicipalityA Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna Municipality
 
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
 
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best ServiceTamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
 
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
 
Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - V
 
Learn the concepts of Thermodynamics on Magic Marks
Learn the concepts of Thermodynamics on Magic MarksLearn the concepts of Thermodynamics on Magic Marks
Learn the concepts of Thermodynamics on Magic Marks
 
Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the start
 
Introduction to Data Visualization,Matplotlib.pdf
Introduction to Data Visualization,Matplotlib.pdfIntroduction to Data Visualization,Matplotlib.pdf
Introduction to Data Visualization,Matplotlib.pdf
 
Orlando’s Arnold Palmer Hospital Layout Strategy-1.pptx
Orlando’s Arnold Palmer Hospital Layout Strategy-1.pptxOrlando’s Arnold Palmer Hospital Layout Strategy-1.pptx
Orlando’s Arnold Palmer Hospital Layout Strategy-1.pptx
 
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptxHOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leap
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
Jaipur ❤CALL GIRL 0000000000❤CALL GIRLS IN Jaipur ESCORT SERVICE❤CALL GIRL IN...
Jaipur ❤CALL GIRL 0000000000❤CALL GIRLS IN Jaipur ESCORT SERVICE❤CALL GIRL IN...Jaipur ❤CALL GIRL 0000000000❤CALL GIRLS IN Jaipur ESCORT SERVICE❤CALL GIRL IN...
Jaipur ❤CALL GIRL 0000000000❤CALL GIRLS IN Jaipur ESCORT SERVICE❤CALL GIRL IN...
 
AIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsAIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech students
 
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKARHAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
 
Generative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTGenerative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPT
 
Employee leave management system project.
Employee leave management system project.Employee leave management system project.
Employee leave management system project.
 
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptxA CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
 

10 Reasons Why You Should Consider Google App Engine (GAE) for Your Next Project

  • 1. 10 Reasons Why You Should Consider Google App Engine for Your Next Project Google Cloud Relay Dec 2018 Presented by Abeer Rahman
  • 2. Quick Poll: What are some of your common challenges you regularly face when deploying software?
  • 3. Hi, I’m Abeer Abeer Rahman Tech Lead Agile / DevOps / Site Reliability Engineering
  • 4. A flexible, zero ops platform for building highly available apps An app-centric view of the world ● Focus on writing code and never touch a server, cluster, or infrastructure ● Building quickly and time to market are highly valued ● Have high availability without a complex architecture A quick intro to Google App Engine
  • 5. Google Infrastructure event driven functions web apps & APIs orchestrate containers infrastructure
  • 6.
  • 7. Reason #10 You want to be serverless, but Cloud Functions might be too limiting
  • 8. Cloud Functions Mobile backend Lightweight APIs Webhooks IoT Triggering Data processing / ETL jobs App Engine Mobile backend(s) SaaS applications REST-based API Server IoT frontend and/or backend workloads Full websites using popular frameworks
  • 9. Arbitrary VM images or Docker containers Financial data analytics Media rendering Stateful storage Genomics Not-so-ideal workloads
  • 10. Reason #9 You get multiple languages supported out-of-the-box
  • 11.
  • 12. Reason #8 You get even more runtime options using App Engine Flexible environment if the Standard environment is too constrained And you still get the most of the benefits!
  • 13. App Engine Standard Application instances run in a sandbox, using the runtime environment of a pre-selected supported language App Engine Flexible Application instances run within Docker containers on Google Compute Engine VMs
  • 14. Standard Environment Flexible Environment Specific versions of: Python 2.7, Python 3.7 (beta) Java 8, Java 7 Node.js 8 (beta) PHP 5.5, PHP 7.2 (beta) Go 1.6, 1.8, 1.9, and Go 1.11 (beta) Any versions of: Python, Java, Node.js, Go, Ruby, PHP, or .NET And… runs in a Docker container that includes a custom runtime or source code written in other programming languages. Does not allow background process Allows background process Can scale down to 0 instances Needs at least 1 instance Startup time in seconds Startup time in minutes Can’t SSH Can SSH Can’t write to disk Can write to disk
  • 15. Reason #7 You get infrastructure-related security features enabled out of the box
  • 16. Security features for Google App Engine: App Engine Firewall rules + DDoS Protection App Security Scanner
  • 17. Reason #6 You can design your applications like microservices: modular & self-contained
  • 18. Using App Engine for Microservices (in the same project) Code Isolation for each service Multiple versions of each service Log isolation per service Reduced performance overhead for service-to-service call Simplified request tracing
  • 20. Reason #5 You can run experiments or validate ideas using out-of-the-box A/B testing capabilities with very minimal effort
  • 22. App Engine allows different versions with traffic splitting: IP address splitting Cookie splitting
  • 23. Migrate traffic to new version gradually after validation (or rollback)
  • 24. Reason #4 You can simplify your deployment process. No more heroics required to get your code into production!
  • 25. Do the DevOps thing without a “DevOps team” Deploy immediately and receive 100% of traffic: gcloud app deploy Deploy immediately without automatically routing all traffic to a new version: gcloud app deploy --version NEW_VERSION --no-promote
  • 26. But wait, there’s more! Deploying multiple services simultaneously: gcloud app deploy service1/app.yaml service2/app.yaml … Useful in a microservices landscape
  • 27. Reason #3 You get logging, debugging capabilities built within the integrated environments of Google Cloud
  • 28. Coupled with StackDriver Logging, you can get insights into: • Request logs • App logs • 3rd Party Package logs
  • 29. App Engine with StackDriver Trace provides insights into: • End-to-end latency data for requests URIs • Round-trip RPC calls to services like Datastore, URL Fetch, Memcache
  • 30. Reason #2 Pay for what your app uses. And don’t pay for anything when you have no traffic
  • 31. Flexible billing Per second billing (1 minute minimum) App Engine applications operate on the notion of quotas & limits: • Free (!) quotas • Spending limits • Safety limits
  • 32. Reason #1 You don’t need to manage infrastructure (servers, network, etc) #LessOps
  • 33. For deploying even the most simplest app, traditional infrastructure would require you to: ● Provision server and infrastructure ● Install web and database servers ● Stitch it all together ● Duplicate for dev, test, and prod And then, you have to manage & maintain it... ● Deploy it ● Scale it ● Monitor it
  • 34. That 5-minute “Hello World” app is now… Hello Pain
  • 35. A flexible, zero ops platform for building highly available apps App Engine Powerful built-in services Designed for scale Focus on your code Popular languages & frameworks Familiar development tools Multiple storage options
  • 36. Focus on code, not managing infrastructure. Automation Availability Scale Security
  • 37. (10) Not as constrained as pure serverless products (9) Support for multiple languages (8) More flexibility with App Engine Flexible environment (7) Security features enabled out of the box (6) Microservices-oriented capabilities (5) Traffic splitting that allows for A/B testing (4) Simplified your deployment process (3) Integrated environment with logging, debugging capabilities (2) Pay for what you use (1) LessOps: focus on code, not the infrastructure! 10 Reasons Why You Should Consider Google App Engine for Your Next Project Thank you! Abeer Rahman Tech Lead Agile / DevOps / Site Reliability Engineering @abeer486

Notas do Editor

  1. Google App Engine’s ready-to-scale capabilities has helped lots of customers deploy & scale their product in little time - allowing them to focus solely on writing software & providing value to customers while leaving scaling and operations work Google. Why isn’t my cloud more flexible? We should pay only for what we need with no over-provisioning We want predictable savings we can budget, but with no penalty for optimizing This talk has just one caveat – we’re focusing more on App Engine Standard, but most of them can be applied to app engine Flexible
  2. Let’s quickly go-over Google’s Compute infrastructure products
  3. In true David Letterman style
  4. Transition question: how many of you have thought of using functions? How many use functions in production How many of you thought of using functions, and they you went, yikes – I can’t use functions for most of my current workloads? Yeaah, good for some stuff, but very limited But I’ll tell you, there’s another server less product out there
  5. Start note: - But instead of focuing on limitations, I’m going to focus on use cases, starting with a product like Google’s Cloud Functions (similar context can be applied to AWS Lamba) Cloud Functions: Lightweight APIs - Compose applications from lightweight, loosely coupled bits of logic that are quick to build and that scale instantly. Your functions can be event-driven or invoked directly over HTTP/S. Webhooks - Via a simple HTTP trigger, respond to events originating from 3rd party systems like GitHub, Slack, Stripe, or from anywhere that can send HTTP requests. Mobile backend - Use Google’s mobile platform for app developers, Firebase, and write your mobile backend in Cloud Functions. Listen and respond to events from Firebase Analytics, Realtime Database, Authentication, and Storage. IoT - Imagine tens or hundreds of thousands of devices streaming data into Cloud Pub/Sub, thereby launching Cloud Functions to process, transform and store data. Cloud Functions lets you do it in a way that’s completely serverless. Data processing / ETL - Listen and respond to Cloud Storage events such as when a file is created, changed, or removed. Process images, perform video transcoding, validate and transform data, and invoke any service on the internet from your Cloud Functions. In either case: removes the work of managing servers, configuring software, updating frameworks, and patching operating systems.
  6. Key note: In these cases, lower-level infrastructure is a better bet here (like Kubernetes, Compute Engine, or even other Google Cloud Products) And remember – it’s not just about the product, it’s also about the pros & cons of the architecture you want to drive
  7. Key notes: Out of the box, you get a runtime that allows you write applications in these languages There are specific version for each of the language: Node.js, Ruby, Go, .NET, Java, Python, PHP, All you do is write the code, and the infrastructure is taken care of
  8. Transition question: So what exact is App Engine Standard an App Engine Flexible?
  9. A quick definition of each
  10. Transition note: You can migrate from Standard Environment to Flexible Environment References: https://cloud.google.com/appengine/docs/the-appengine-environments List of differences: https://cloud.google.com/appengine/docs/flexible/python/migrating https://cloud.google.com/appengine/docs/flexible/python/migrating
  11. Notes: App Engine Firewall rules: enables you to control access to your App Engine app through a set of rules that can either allow or deny requests from the specified ranges of IP addresses DDoS Protection: it’s the same one used by Google Security Scanner: discovers vulnerabilities by crawling your App Engine app, following all that links within the scope of your starting URLs, and attempting to exercise as many user inputs and event handlers as possible
  12. Starting note: Google App Engine has a number of features that are well-suited for a microservices-based application. Here are some of the concepts that can be used design when deploying your application as a microservices-based application on Google App Engine. Code Isolation for each Service Deployed code is completely independent between services and versions. Isolated modules/services interaction through HTTP Can deploy multiple microservices as separate services, previously known as modules in App Engine. These services have full isolation of code; the only way to execute code in these services is through an HTTP invocation, such as a user request or a RESTful API call. Code in one service can't directly call code in another service. Code can be deployed to services independently, and different services can be written in different languages, such as Python, Java, Go, and PHP. Autoscaling, load balancing, and machine instance types are all managed independently for services. Multiple versions of each service Along with rollbacks Furthermore, each service can have multiple versions deployed simultaneously. For each service, one of these versions is the default serving version, though it is possible to directly access any deployed version of a service as each version of each service has its own address. This structure opens up myriad possibilities, including smoke testing a new version, A/B testing between different versions, and simplified roll-forward and rollback operations. The App Engine framework provides mechanisms to assist with most of these items. We'll cover these mechanisms in more detail in upcoming sections. Log Isolation Each service (and version) has independent logs, though they can be viewed together. Reduced performance overhead Services of the same project are deployed in the same datacenter, so the latency in calling one service from another by using HTTP is very low. Simplified request tracing Using Google Cloud Trace, you can view a request and the resulting microservice requests for services in the same project as a single composed trace. This feature can help make performance tuning easier. References: https://cloud.google.com/appengine/docs/standard/python/microservices-on-app-engine
  13. References: https://cloud.google.com/appengine/docs/standard/python/an-overview-of-app-engine Key notes: Each service is isolated and can have multiple version, and each version can have multiple instance Optionally, you can deploy update or newer versions services simultaneous
  14. Key notes: IP Splitting It hashes the IP address to a value between 0–999, and uses that number to route the request. So, not necessarily geo-specific Reasonably sticky, not permanent (e.g., user on a cell phone) Cookie Splitting The app looks for a HTTP request header for a cookie named GOOGAPPUID and assigns a value, Which contains a value between 0–999: If the cookie exists, the value is used to route the request. If there is no such cookie, the request is routed randomly. Easier to accurately assign users to versions. The precision for traffic routing can reach as close as 0.1% to the target split. Preferred way is: It's easier to set up an IP address split, but a cookie split is more precise References: https://cloud.google.com/appengine/docs/standard/java/splitting-traffic
  15. Key notes: Traffic migration switches the request routing between the versions within a service of your application, moving traffic from one or more versions to a single new version. Once you’re happy, you can gradually migrate traffic
  16. Key notes: With just a set of simple statements we can promote our code to live If we want to immediately deploy and receive all traffic, we use the gcloud app deploy statement If we want to immediately but without automatically routing all the traffic to the new version This allows us to do dark launches References: https://cloud.google.com/appengine/docs/standard/java/tools/uploadinganapp
  17. Key notes: In a microservices world, we can use same deployment commands for deploying and updating the multiple services of our applications And if we mix & match the commands we can get a lot of flexibility
  18. Integration with StackDirver's Logging & Trace APIs provide tools to search wide or deep across the stack
  19. Poll: Raise of hands: How many of you manage microservices? Or even some distributed applications in production? You now know the pain of tracing through the services to see if the Key notes: App Engine has built in StackDirver monitoring covering both instance-level & request level metrics All within the Google Cloud platform - you don’t have to jump around References: https://cloud.google.com/appengine/articles/logging#stackdriver_name_logging_name_short_and_the_standard_environment
  20. Key notes: Sackdriver Trace collects end-to-end latency data for requests URIs round-trip RPC calls to services like Datastore, URL Fetch, Memcache. As micro-services become more popular, the cross-application tracing provided by Stackdriver Trace becomes essential in pinpointing the root cause of latency issues.
  21. Key notes: Instances within the standard environment have access to a daily limit of resource usage that is provided at no charge defined by a set of quotas. Free quotas: Every application gets an amount of each resource for free. Free quotas can only be exceeded by paid applications, up to the application's spending limit or the safety limit, whichever applies first. When free applications reach their quota for a resource, they cannot use that resource until the quota is replenished. Paid apps can exceed the free quota until their spending limit is exhausted. Spending limits: you can set the spending limit to manage application costs in the Google Cloud Platform Console in the App Engine Settings. Spending limits might be exceeded slightly as the application is disabled. Safety limits: Safety limits are set by Google to protect the integrity of the App Engine system. These quotas ensure that no single app can over-consume resources to the detriment of other apps. If you go above these limits you'll get an error whether you are paid or free. References: https://cloud.google.com/appengine/quotas https://cloud.google.com/appengine/pricing Free quotas: Every application gets an amount of each resource for free. Free quotas can only be exceeded by paid applications, up to the application's spending limit or the safety limit, whichever applies first. Spending limits: If you are the project owner and the billing administrator, you can set the spending limit to manage application costs in the Google Cloud Platform Console in the App Engine Settings. Spending limits might be exceeded slightly as the application is disabled. Safety limits: Safety limits are set by Google to protect the integrity of the App Engine system. These quotas ensure that no single app can over-consume resources to the detriment of other apps. If you go above these limits you'll get an error whether you are paid or free.
  22. You don’t pay for server for the app at 2am when no one is using it
  23. Provision server and infrastructure environments Install web and database servers Stitch it all together (db connection strings) Duplicate for dev, test, and prod Key notes: So your “hello world” app becomes “Hello Pain”
  24. Read per transition: Focus on your code - Let Google worry about database administration, server configuration, sharding & load balancing. Designed for scale - A scalable system which will automatically add more capacity as workloads increase. Powerful built-in services - Managed services, such as Task Queues, Memcache and the Users API, let you build any application. Familiar development tools - Use the tools you know, including Eclipse, IntellIJ, Maven, Git, Jenkins, PyCharm & more. Popular languages & frameworks - Write applications in some of the most popular programming languages, use existing frameworks and integrate with other familiar technologies. Multiple storage options - Choose the storage option you need: a traditional MySQL database using Cloud SQL, a schemaless NoSQL datastore, or object storage using Cloud Storage.
  25. Automation Infrastructure allocation, provisioning, and configuration Availability Automatic x-zone deployments and failovers + built-in monitoring Scale Focus on building your business, we’ll handle your load Security Apps take advantage of secure defaults Google auto-patches runtimes Scan for security vulnerabilities Focus on writing code and never touch a server, cluster, or infrastructure Build apps & services quickly and reduce time to market Achieve high availability without a complex architecture Sleep at night in peace and not worry about a pager going off, or 5xx errors :)