GCP Fund Module 6 Applications in The Cloud
GCP Fund Module 6 Applications in The Cloud
© 2017 Google Inc. All rights reserved. Google and the Google logo are trademarks of Google Inc. All other
company and product names may be trademarks of the respective companies with which they are associated.
App Engine is a PaaS for building scalable applications
© 2017 Google Inc. All rights reserved. Google and the Google logo are trademarks of Google Inc. All other
company and product names may be trademarks of the respective companies with which they are associated.
App Engine is a platform for building scalable web applications and mobile
backends. It allows you to concentrate on innovating your applications by
managing the application infrastructure for you. For example, App Engine
manages the hardware and networking infrastructure required to run your
code.
App Engine provides you with built-in services and APIs such as NoSQL
datastores, memcache, load balancing, health checks, application logging, and
a user authentication API, common to most applications.
App Engine will scale your application automatically in response to the amount
of traffic it receives so you only pay for the resources you use. Just upload
your code and Google will manage your app's availability. There are no servers
for you to provision or maintain.
App Engine works with popular development tools such as Eclipse, IntelliJ,
Maven, Git, Jenkins, and PyCharm. You can build your apps with the tools you
love without changing your workflow.
Agenda Google App Engine
© 2017 Google Inc. All rights reserved. Google and the Google logo are trademarks of Google Inc. All other
company and product names may be trademarks of the respective companies with which they are associated.
App Engine standard environment
© 2017 Google Inc. All rights reserved. Google and the Google logo are trademarks of Google Inc. All other
company and product names may be trademarks of the respective companies with which they are associated.
The App Engine standard environment makes it easy to build and deploy an
application that runs reliably even under heavy load and with large amounts of
data. It includes the following features:
● Persistent storage with queries, sorting, and transactions
● Automatic scaling and load balancing
● Asynchronous task queues for performing work outside the scope of a
request
● Scheduled tasks for triggering events at specified times or regular
intervals
● Integration with other Google cloud services and APIs
App Engine standard environment: Requirements
© 2017 Google Inc. All rights reserved. Google and the Google logo are trademarks of Google Inc. All other
company and product names may be trademarks of the respective companies with which they are associated.
Software Development Kits (SDKs) for App Engine are available in all
supported languages. Each SDK includes:
● All of the APIs and libraries available to App Engine
● A simulated, secure sandbox environment that emulates all of the App
Engine services on your local computer
● Deployment tools that allow you to upload your application to the cloud
and manage different versions of your application
The SDK manages your application locally, and the Google Cloud Platform
Console manages your application in production. The Google Cloud Platform
Console uses a web-based interface to create new applications, configure
domain names, change which version of your application is live, examine
access and error logs, and much more.
© 2017 Google Inc. All rights reserved. Google and the Google logo are trademarks of Google Inc. All other
company and product names may be trademarks of the respective companies with which they are associated.
In this diagram we see App Engine Standard Environment in practice. You’ll develop
your application and run a test version of it locally using the App Engine SDK. Then,
when you’re ready, you’ll use the SDK to deploy it.
Each App Engine application runs in a GCP project. App Engine automatically
provisions server instances and scales and load-balances them. Meanwhile, your
application can make calls to a variety of services using dedicated APIs. For example,
a NoSQL datastore to make data persistent; caching of that data using memcache;
searching; logging; user login; and the ability to launch actions not triggered by direct
user requests, like task queues and a task scheduler.
Agenda Google App Engine
© 2017 Google Inc. All rights reserved. Google and the Google logo are trademarks of Google Inc. All other
company and product names may be trademarks of the respective companies with which they are associated.
App Engine flexible environment
© 2017 Google Inc. All rights reserved. Google and the Google logo are trademarks of Google Inc. All other
company and product names may be trademarks of the respective companies with which they are associated.
App Engine flexible environment apps that use standard runtimes can access
App Engine services: Datastore, Memcache, task queues, logging, users, and
so on.
Comparing the App Engine environments
Pricing model After free daily use, pay per instance Pay for resource allocation per hour; no
class, with automatic shutdown automatic shutdown
© 2017 Google Inc. All rights reserved. Google and the Google logo are trademarks of Google Inc. All other
company and product names may be trademarks of the respective companies with which they are associated.
© 2017 Google Inc. All rights reserved. Google and the Google logo are trademarks of Google Inc. All other
company and product names may be trademarks of the respective companies with which they are associated.
Also, App Engine Environment treats containers as a means to an end. But for
Kubernetes Engine, containers are a fundamental organizing principle.
Agenda Google App Engine
© 2017 Google Inc. All rights reserved. Google and the Google logo are trademarks of Google Inc. All other
company and product names may be trademarks of the respective companies with which they are associated.
Application Programming Interfaces hide detail, enforce contracts
Consumers
Let’s be precise about what an API is. A software service’s implementation can be
complex and changeable. If other software services had to be explicitly coded all that
detail in order to use that service, the result would be brittle and error-prone. So
instead, application developers structure the software they write so that it presents a
clean, well-defined interface that abstracts away needless detail, and then they
document that interface. That’s an Application Programming Interface. The underlying
implementation can change, as long as the interface doesn’t, and other pieces of
software that use the API don’t have to know or care.
Supporting an API is a very important task, and Google Cloud Platform provides two
API management tools. They approach related problems in a different way, and each
has a particular forte.
Cloud Endpoints helps you create and maintain APIs
© 2017 Google Inc. All rights reserved. Google and the Google logo are trademarks of Google Inc. All other
company and product names may be trademarks of the respective companies with which they are associated.
Cloud Endpoints uses the distributed Extensible Service Proxy to provide low
latency and high performance for serving even the most demanding APIs.
Extensible Service Proxy is a service proxy based on NGINX. It runs in its own
Docker container for better isolation and scalability. The proxy is containerized
and distributed in the Container Registry and Docker registry, and can be used
with App Engine, Kubernetes Engine, Compute Engine or Kubernetes.
© 2017 Google Inc. All rights reserved. Google and the Google logo are trademarks of Google Inc. All other
company and product names may be trademarks of the respective companies with which they are associated.
© 2017 Google Inc. All rights reserved. Google and the Google logo are trademarks of Google Inc. All other
company and product names may be trademarks of the respective companies with which they are associated.
Apigee Edge is also a platform for developing and managing API proxies. It
has a different orientation, though: it has a focus on business problems like
rate limiting, quotas, and analytics. Many users of Apigee Edge are providing a
software service to other companies, and those features come in handy.
Because the backend services for Apigee Edge need not be in GCP,
engineers also often use it when they are working to take a legacy application
apart. Instead of replacing a monolithic application in one risky move, they can
instead use Apigee Edge to peel off its services one by one, standing up
microservices to implement each in turn, until the legacy application can finally
be retired.
Agenda Google App Engine
© 2017 Google Inc. All rights reserved. Google and the Google logo are trademarks of Google Inc. All other
company and product names may be trademarks of the respective companies with which they are associated.
Quiz
© 2017 Google Inc. All rights reserved. Google and the Google logo are trademarks of Google Inc. All other
company and product names may be trademarks of the respective companies with which they are associated.
Quiz Answers
Name 3 advantages of using the The flexible environment allows SSH access,
App Engine flexible environment allows disk writes, and supports third-party
over App Engine standard. binaries (also allows stack customization and
background processes).
© 2017 Google Inc. All rights reserved. Google and the Google logo are trademarks of Google Inc. All other
company and product names may be trademarks of the respective companies with which they are associated.
Quiz Answers
Name 3 advantages of using the The flexible environment allows SSH access,
App Engine flexible environment allows disk writes, and supports third-party
over App Engine standard. binaries (also allows stack customization and
background processes).
What is the difference between Cloud Endpoints helps you create and maintain
Cloud Endpoints and Apigee APIs; Apigee Edge helps you secure and
Edge? monetize APIs.
© 2017 Google Inc. All rights reserved. Google and the Google logo are trademarks of Google Inc. All other
company and product names may be trademarks of the respective companies with which they are associated.
Lab instructions
In this lab you will create a simple App Engine application using the Cloud
Shell local development environment and then deploy it to App Engine.
© 2017 Google Inc. All rights reserved. Google and the Google logo are trademarks of Google Inc. All other
company and product names may be trademarks of the respective companies with which they are associated.
More resources
Apigee Edge
http://docs.apigee.com/api-services/content/what-ap
igee-edge
© 2017 Google Inc. All rights reserved. Google and the Google logo are trademarks of Google Inc. All other
company and product names may be trademarks of the respective companies with which they are associated.
© 2017 Google Inc. All rights reserved. Google and the Google logo are trademarks of Google Inc. All other
company and product names may be trademarks of the respective companies with which they are associated.
© 2017 Google Inc. All rights reserved. Google and the Google logo are trademarks of Google Inc. All other
company and product names may be trademarks of the respective companies with which they are associated.