SlideShare a Scribd company logo
+FrancescoMarchitelli85
Google Developer Group Bari
Francesco Marchitelli
 Generally, we talk about cloud computing when
taking applications and running them on other
infrastructure than your own.
 As a developer, think of cloud computing as a service
that provides a resource that your application needs
to work (this resource may be a platform, an
infrastructure (i.e. servers), a framework).
What is Cloud?
Cloud Industry Service Levels
 Google Cloud Platform enables developers to build, test
and deploy applications on Google’s highly-scalable and
reliable infrastructure. Choose from computing, storage
and application services for your web, mobile and backend
solutions.
 Google Cloud Platform is a set of modular cloud-based
services that allow you to create anything from simple
websites to complex applications.
Introduction
Google Cloud Platform Services
Why Google Cloud Platform ?
Build on the same infrastructure that allows Google to
return billions of search results in milliseconds, serve 6
billion hours of YouTube video per month and provide
storage for 425 million Gmail users.
➔ Global Network
➔ Redundancy
➔ Innovative Infrastructure
#1 Run on Google’s Infrastructure
Rapidly develop, deploy and iterate your applications
without worrying about system administration. Google
manages your application, database and storage servers so
you don’t have to.
➔ Managed services
➔ Developer Tools and SDKs
➔ Console and Administration
#2 Focus on your product
 Virtual machines. Managed platform. Blob storage. Block
storage. NoSQL datastore. MySQL database. Big Data
analytics.
 Google Cloud Platform has all the services your application
architecture needs.
➔ Compute
➔ Storage
➔ Services
#3 Mix and Match Services
Applications hosted on Cloud Platform can automatically scale up
to handle the most demanding workloads and scale down when
traffic subsides. You pay only for what you use.
Scale-up: Cloud Platform is designed to scale like Google’s
own products, even when you experience a huge traffic
spike. Managed services such as App Engine or Cloud
Datastore give you auto-scaling that enables your application
to grow with your users.
Scale-down: Just as Cloud Platform allows you to scale-up,
managed services also scale down. You don’t pay for
computing resources that you don’t need.
#4 Scale to millions of users
Google’s compute infrastructure gives you consistent CPU,
memory and disk performance. The network and edge cache
serve responses rapidly to your users across the world.
➔ CPU, Memory and Disk
➔ Global Network
➔ Transparent maintenance
#5 Performance you can count on
With a worldwide community of users, partner ecosystem
and premium support packages, Google provides a full
range of resources to help you get started and grow.
#6 Get the support you need
Hosting + Compute
 Run your applications on a fully-managed Platform-as-a-
Service (PaaS) using built-in services that make you more
productive.
 Use App Engine, when you just want to focus on your
code and not worry about patching or maintenance.
App Engine
 Popular languages and frameworks
 Focus on your code
 Multiple storage options
 Powerful built-in services
 Familiar development tools
 Deploy at Google scale
App Engine Features
Run large-scale workloads on virtual machines hosted on
Google's infrastructure. Choose a VM that fits your needs and
gain the performance of Google’s worldwide fiber network.
Compute Engine
 High-performance virtual machines
 Powered by Google’s global network
 (Really) Pay for what you use
 Global load balancing
 Fast and easy provisioning
 Compliance and security
Compute Engine Features
 The App Engine offers frequently standard Java API's and
App Engine specific API's for the same task. If you want to
be able to port your application from the AppEngine to
other webcontainers, e.g. Tomcat or Jetty, you should
only use Java standard API.
Google App Engine for Java
 App Engine uses the Jetty servlet container to host
applications and supports the Java Servlet API. It provides
access to databases via Java Data Objects (JDO) and
the Java Persistence API (JPA). In the background App
Engine uses Google Bigtable as the distributed storage
system for persisting application data.
Google App Engine for Java
 Google provides Memcache as a caching mechanism.
Developers who want to code against the standard Java
API can use the JCache implementation (based on JSR
107).
Google App Engine for Java
 Google App Engine supports the creation of several
version of your application. In the Admin Console you can
select which version should be active. Your active
application "your-name" will be accessible via the URL
"http://your-name.appspot.com". Each version can also
be accessed for example to test a new version. The
version are accessable via
"http://versionnumber.latest.your-name.appspot.com"
where version is for example "2" and "latest" is a fixed
string.
Google App Engine for Java
 You cannot use Threads or frameworks which uses Threads.
You can also not write to the filesystem and only read files
which are part of your application. Certain "java.lang.System"
actions, e.g. gc() or exit() will do nothing. You can not call JNI
code. Reflection is possible for your own classes and standard
Java classes but your cannot use reflection to access other
classes outside your application.
 A servlet needs also to reply within 30 seconds otherwise a
"com.google.apphosting.api.DeadlineExceededException" is
thrown.
Google App Engine for Java
 Google offers an Eclipse plug-in that provides support for the
development with the Google App Engine as well as GWT
development
 Google lists the currently supported version in its Google Plug-
in for Eclipse page.
 Use Eclipse update manager to install the tools in the version
for your Eclipse IDE.
 The installation will also setup the GWT and App Engine SDK
into your Eclipse preferences.
 To check this use Window →Preferences → Google
→ App Engine / Web Toolkit.
Installation of the Google Tools
for Eclipse
Calendar App Engine Sample Java
package com.google.api.services.samples.calendar.appengine.server;
import com.google.api.client.auth.oauth2.AuthorizationCodeFlow;
import com.google.api.client.extensions.appengine.auth.oauth2.AbstractAppEngineAuthorizationCodeServlet;
import com.google.appengine.api.users.UserService;
import com.google.appengine.api.users.UserServiceFactory;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
Calendar App Engine Sample Java
public class CalendarAppEngineSample extends AbstractAppEngineAuthorizationCodeServlet {
static final String APP_NAME = "Google Calendar Data API Sample Web Client";
static final String GWT_MODULE_NAME = "calendar";
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException {
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
Calendar App Engine Sample Java
PrintWriter writer = response.getWriter();
writer.println("<!doctype html><html><head>");
writer.println("<meta http-equiv="content-type" content="text/html; charset=UTF-8">");
writer.println("<title>" + APP_NAME + "</title>");
writer.println(
"<link type="text/css" rel="stylesheet" href="" + GWT_MODULE_NAME + ".css">");
writer.println("<script type="text/javascript" language="javascript" " + "src=""
+ GWT_MODULE_NAME + "/" + GWT_MODULE_NAME + ".nocache.js"></script>");
writer.println("</head><body>");
Calendar App Engine Sample Java
UserService userService = UserServiceFactory.getUserService();
writer.println("<div class="header"><b>" + request.getUserPrincipal().getName() + "</b> | "
+ "<a href="" + userService.createLogoutURL(request.getRequestURL().toString())
+ "">Log out</a> | "
+ "<a href="http://code.google.com/p/google-api-java-client/source/browse"
+ "/calendar-appengine-sample?repo=samples">See source code for "
+ "this sample</a></div>");
writer.println("<div id="main"/>");
writer.println("</body></html>");
Calendar App Engine Sample Java
@Override
protected String getRedirectUri(HttpServletRequest req) throws ServletException, IOException {
return Utils.getRedirectUri(req);
}
@Override
protected AuthorizationCodeFlow initializeFlow() throws IOException {
return Utils.newFlow();
}
 Visit the Google Cloud console.
 If necessary, sign in to your Google Account, select or create
a project, and agree to the terms of service. Click Continue.
 Select the "Web Application" platform, and click Register.
 Within "OAuth 2.0 Client ID", click on "Download JSON".
Register Your Application
 Later on, after you check out the sample project, you will
copy this downloaded file
(e.g. ~/Downloads/client_secrets.json) to
src/main/resources/client_secrets.json. If you skip this step,
when trying to run the sample you will get a 400
INVALID_CLIENT error in the browser.
 Within "OAuth 2.0 Client ID", in the "Redirect URI" field
enter some redirect URIs, for example
"https://yourappname.appspot.com/oauth2callback" and
"http://localhost:8888/oauth2callback".
Register Your Application
cd [someDirectory]
hg clone https://code.google.com/p/google-api-java-client.samples/
google-api-java-client-samples
cd google-api-java-client-samples/calendar-appengine-sample
cp ~/Downloads/client_secrets.json
src/main/resources/client_secrets.json
mvn clean package
Checkout Instructions
 To run your application locally on a development server:
mvn appengine:devserver
 To deploy your application to appspot.com:
If this is the first time you are deploying your application to
appspot.com, you will to perform the following steps first.
 Go to https://appengine.google.com and create an application.
 Edit src/main/webapp/WEB-INF/appengine-web.xml, and enter the
unique application identifier (you chose it in the prior step)
between the <application> tags.
Running and Deploying Your
Application
 If you've done the above, you can deploy at any time:
mvn appengine:update
 If this is the first time you have run "update" on the project, a
browser window will open prompting you to log in. Log in with
the same Google account the app is registered with.
Running and Deploying Your
Application
 Setup Eclipse Preferences
 Window > Preferences... (or on Mac, Eclipse > Preferences...)
 Select Maven
 check on "Download Artifact Sources"
 check on "Download Artifact JavaDoc"
Setup Project in Eclipse
 Import calendar-appengine-sample project
 File > Import...
 Select "General > Existing Project into Workspace" and click "Next"
 Click "Browse" next to "Select root directory",
find [someDirectory]/google-api-java-client-samples/calendar-
appengine-sample and click "Next"
 Click "Finish"
 NOTE: please ignore the "The App Engine SDK JAR * is missing in
the WEB-INF/lib directory" error messages.
Setup Project in Eclipse
 Run
 Right-click on project calendar-appengine-sample
 Run As > Web Application
Setup Project in Eclipse
Storage
 Use a durable and highly available object storage service.
With global edge-caching, your users have fast access to
your app’s data from any location.
Cloud Storage
 Secure and safe
 Competitive and flexible pricing
 Object storage with a fully-featured API
 Flexible access
Cloud Storage Features
 Use a managed, NoSQL, schemaless database for storing
non-relational data. Cloud Datastore automatically scales
as you need it and supports transactions as well as robust,
SQL-like queries.
Cloud Datastore
 Schemaless access, with SQL-like querying
 Managed database
 Autoscale with your users
 ACID transactions
 Built-in redundancy
 Local development tools
 Access your data from anywhere
Cloud Datastore Features
Store and manage data using a fully-managed, relational
MySQL database. Google handles replication, patch
management and database management to ensure
availability and performance.
Cloud SQL
 Familiar Infrastructure
 Flexible Charging
 Security, Availability, Durability
 Easier Migration; No Lock-in
 Control
 Fully managed
Cloud SQL Features
Big Data
 Analyze Big Data in the cloud with BigQuery.
 Run fast, SQL-like queries against multi-terabyte datasets
in seconds.
 Scalable and easy to use, BigQuery gives you real-time
insights about your data.
 Flexible Access (ReST APIs, JSON-RPC, Google Apps Script).
Big Query
Why Big Query?
 All behind the scenes
 Import data with ease
 Affordable big data
 The right interface
Big Query Features
Many Use Cases
Using Big Query
Compact subset of SQL
SELECT ... FROM ...
WHERE ...
GROUP BY ... ORDER BY ...
LIMIT ...;
Writing Queries
 Common functions
Math, String, Time, ...
 Statistical approximations
TOP
COUNT DISTINCT
GET /bigquery/v1/tables/{table name}
GET /bigquery/v1/query?q={query}
Sample JSON Reply:
{
"results": {
"fields": { [
{"id":"COUNT(*)","type":"uint64"}, ... ]
},
"rows": [
{"f":[{"v":"2949"}, ...]},
{"f":[{"v":"5387"}, ...]}, ... ]
}
}
Also supports JSON-RPC
Big Query via ReST
 Standard Google Authentication
● Client Login
● OAuth
● AuthSub
 HTTPS support
● protects your credentials
● protects your data
 Relies on Google Storage to manage access
Big Query Security and Privacy
Services
Create ReSTful services and make them accessible to iOS,
Android and Javascript clients. Automatically generate
client libraries to make wiring up the frontend easy. Built-in
features include denial-of-service protection, OAuth 2.0
support and client key management.
Cloud Endpoints
 One tool, multiple clients
 Extending App Engine infrastructure
 Low maintenance client-server
 Flexible client-side integration
Cloud Endpoints Features
Quickly and dynamically translate between thousands of
available language pairs within your app, integrating with
Google Translate.
Translate API
 Dynamically access languages
 Accessible with Google API
 Affordable, easy pricing
Translate API Features
Use Google’s machine learning algorithms to analyze data
and predict future outcomes using a familiar ReSTful
interface.
Prediction API
 Put your data to use
 Fast and reliable
 Cloud integration
 Powerful development tools
 Examples and support
 Flexible pricing
Prediction API Features
Prediction API: a simple example
How does it work?
Using the Prediction API
 Upload your training data to Google Storage
● Training data: outputs and input features
● Data format: comma separated value format (CSV)
"english","To err is human, but to really ..."
"spanish","No hay mal que por bien no venga."
...
 Upload to Google Storage
gsutil cp ${data} gs://yourbucket/${data}
Step 1: Upload
 Create a new model by training on data
 To train a model:
POST prediction/v1.3/training
{"id":"mybucket/mydata"}
Training runs asynchronously.
To see if it has finished:
GETprediction/v1.3/training/mybucket%2Fmydata
{"kind": "prediction#training", ... ,"training
status": "DONE"}
Step 2: Train
 Apply the trained model to make predictions on new data
POST
prediction/v1.3/training/mybucket%2Fmydata/predict
{ "data":{
"input": { "text" : [
"J'aime X! C'est le meilleur" ]}}}
Step 3: Predict
 Apply the trained model to make predictions on new data
{ data : {
"kind" : "prediction#output",
"outputLabel":"French",
"outputMulti" :[
{"label":"French", "score": x.xx}
{"label":"English", "score": x.xx}
{"label":"Spanish", "score": x.xx}]}}
Step 3: Predict
import httplib
// put new data in JSON format in params variable
header = {"Content-Type" : "application/json"}#...
conn =
httplib.HTTPConnection("www.googleapis.com")conn.request
("POST", "/prediction/v1.3/query/bucket%2Fdata/predict",
params, header) print conn.getresponse()
Step 3: Predict
 Google Cloud Platform offer $300 in credit to spend on all
Cloud Platform products for your first 60 days. Your trial is
absolutely free and you will not be billed unless you decide to
upgrade to a paid account.
 During free trial, there are some product limitations. Compute
Engine is limited to eight concurrent cores at a time.
 Free trial is for anyone new to Cloud Platform. Existing
customers that have paid for Cloud Platform in the past are
not eligible.
Pricing: free trial
Pricing: App Engine
• Google Cloud Platform Developers Portal:
https://cloud.google.com/developers
• Google Developers Global Portal:
https://developers.google.com
• Google Cloud Platform Products list:
https://cloud.google.com/products/
• Google App Engine
http://code.google.com/apis/storage
• Google Storage for Developers
http://code.google.com/apis/storage
• Google Prediction API
http://code.google.com/apis/predict
• Google BigQuery
http://code.google.com/apis/bigquery
Useful links
Thank You!
please leave a feedback
Francesco Marchitelli
marchitelli.francesco@gmail.com
@marcyborg

More Related Content

What's hot

Tom Grey - Google Cloud Platform
Tom Grey - Google Cloud PlatformTom Grey - Google Cloud Platform
Tom Grey - Google Cloud Platform
Fondazione CUOA
 
Google Cloud Platform
Google Cloud PlatformGoogle Cloud Platform
Google Cloud Platform
VMware Tanzu
 
Introduction to Amazon EC2
Introduction to Amazon EC2Introduction to Amazon EC2
Introduction to Amazon EC2
Amazon Web Services
 
Azure fundamentals
Azure   fundamentalsAzure   fundamentals
Azure fundamentals
Raju Kumar
 
Cloud computing by Google Cloud Platform - Presentation
Cloud computing by Google Cloud Platform - PresentationCloud computing by Google Cloud Platform - Presentation
Cloud computing by Google Cloud Platform - Presentation
TinarivosoaAbaniaina
 
Introduction to AWS Cloud Computing
Introduction to AWS Cloud ComputingIntroduction to AWS Cloud Computing
Introduction to AWS Cloud Computing
Amazon Web Services
 
Introduction to Google Cloud Services / Platforms
Introduction to Google Cloud Services / PlatformsIntroduction to Google Cloud Services / Platforms
Introduction to Google Cloud Services / Platforms
Nilanchal
 
Microsoft azure
Microsoft azureMicrosoft azure
Microsoft azure
Mohammad Ilyas Malik
 
A Tour of Google Cloud Platform
A Tour of Google Cloud PlatformA Tour of Google Cloud Platform
A Tour of Google Cloud Platform
Colin Su
 
Introduction to Google App Engine
Introduction to Google App EngineIntroduction to Google App Engine
Introduction to Google App Engine
rajdeep
 
AWS PPT.pptx
AWS PPT.pptxAWS PPT.pptx
AWS PPT.pptx
GauravSharma164138
 
Microsoft Azure Cloud Services
Microsoft Azure Cloud ServicesMicrosoft Azure Cloud Services
Microsoft Azure Cloud Services
David J Rosenthal
 
Introduction to Amazon Web Services
Introduction to Amazon Web ServicesIntroduction to Amazon Web Services
Introduction to Amazon Web Services
Robert Greiner
 
Introduction to Amazon Web Services
Introduction to Amazon Web ServicesIntroduction to Amazon Web Services
Introduction to Amazon Web Services
Amazon Web Services
 
What is Cloud Computing with Amazon Web Services?
What is Cloud Computing with Amazon Web Services?What is Cloud Computing with Amazon Web Services?
What is Cloud Computing with Amazon Web Services?
Amazon Web Services
 
Amazon API Gateway
Amazon API GatewayAmazon API Gateway
Amazon API Gateway
Amazon Web Services
 
Google cloud platform introduction
Google cloud platform introductionGoogle cloud platform introduction
Google cloud platform introduction
Simon Su
 
Exploiting IAM in the google cloud platform - dani_goland_mohsan_farid
Exploiting IAM in the google cloud platform - dani_goland_mohsan_faridExploiting IAM in the google cloud platform - dani_goland_mohsan_farid
Exploiting IAM in the google cloud platform - dani_goland_mohsan_farid
CloudVillage
 
Amazon Virtual Private Cloud (VPC): Networking Fundamentals and Connectivity ...
Amazon Virtual Private Cloud (VPC): Networking Fundamentals and Connectivity ...Amazon Virtual Private Cloud (VPC): Networking Fundamentals and Connectivity ...
Amazon Virtual Private Cloud (VPC): Networking Fundamentals and Connectivity ...
Amazon Web Services
 
Introduction to AWS Lambda and Serverless Applications
Introduction to AWS Lambda and Serverless ApplicationsIntroduction to AWS Lambda and Serverless Applications
Introduction to AWS Lambda and Serverless Applications
Amazon Web Services
 

What's hot (20)

Tom Grey - Google Cloud Platform
Tom Grey - Google Cloud PlatformTom Grey - Google Cloud Platform
Tom Grey - Google Cloud Platform
 
Google Cloud Platform
Google Cloud PlatformGoogle Cloud Platform
Google Cloud Platform
 
Introduction to Amazon EC2
Introduction to Amazon EC2Introduction to Amazon EC2
Introduction to Amazon EC2
 
Azure fundamentals
Azure   fundamentalsAzure   fundamentals
Azure fundamentals
 
Cloud computing by Google Cloud Platform - Presentation
Cloud computing by Google Cloud Platform - PresentationCloud computing by Google Cloud Platform - Presentation
Cloud computing by Google Cloud Platform - Presentation
 
Introduction to AWS Cloud Computing
Introduction to AWS Cloud ComputingIntroduction to AWS Cloud Computing
Introduction to AWS Cloud Computing
 
Introduction to Google Cloud Services / Platforms
Introduction to Google Cloud Services / PlatformsIntroduction to Google Cloud Services / Platforms
Introduction to Google Cloud Services / Platforms
 
Microsoft azure
Microsoft azureMicrosoft azure
Microsoft azure
 
A Tour of Google Cloud Platform
A Tour of Google Cloud PlatformA Tour of Google Cloud Platform
A Tour of Google Cloud Platform
 
Introduction to Google App Engine
Introduction to Google App EngineIntroduction to Google App Engine
Introduction to Google App Engine
 
AWS PPT.pptx
AWS PPT.pptxAWS PPT.pptx
AWS PPT.pptx
 
Microsoft Azure Cloud Services
Microsoft Azure Cloud ServicesMicrosoft Azure Cloud Services
Microsoft Azure Cloud Services
 
Introduction to Amazon Web Services
Introduction to Amazon Web ServicesIntroduction to Amazon Web Services
Introduction to Amazon Web Services
 
Introduction to Amazon Web Services
Introduction to Amazon Web ServicesIntroduction to Amazon Web Services
Introduction to Amazon Web Services
 
What is Cloud Computing with Amazon Web Services?
What is Cloud Computing with Amazon Web Services?What is Cloud Computing with Amazon Web Services?
What is Cloud Computing with Amazon Web Services?
 
Amazon API Gateway
Amazon API GatewayAmazon API Gateway
Amazon API Gateway
 
Google cloud platform introduction
Google cloud platform introductionGoogle cloud platform introduction
Google cloud platform introduction
 
Exploiting IAM in the google cloud platform - dani_goland_mohsan_farid
Exploiting IAM in the google cloud platform - dani_goland_mohsan_faridExploiting IAM in the google cloud platform - dani_goland_mohsan_farid
Exploiting IAM in the google cloud platform - dani_goland_mohsan_farid
 
Amazon Virtual Private Cloud (VPC): Networking Fundamentals and Connectivity ...
Amazon Virtual Private Cloud (VPC): Networking Fundamentals and Connectivity ...Amazon Virtual Private Cloud (VPC): Networking Fundamentals and Connectivity ...
Amazon Virtual Private Cloud (VPC): Networking Fundamentals and Connectivity ...
 
Introduction to AWS Lambda and Serverless Applications
Introduction to AWS Lambda and Serverless ApplicationsIntroduction to AWS Lambda and Serverless Applications
Introduction to AWS Lambda and Serverless Applications
 

Similar to Google Cloud Platform

File Repository on GAE
File Repository on GAEFile Repository on GAE
File Repository on GAE
lynneblue
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for Java
Lars Vogel
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
Software Park Thailand
 
Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : Google App EngineJava Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
IMC Institute
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for Java
Lars Vogel
 
Google Cloud Platform (GCP) At a Glance
Google Cloud Platform (GCP)  At a GlanceGoogle Cloud Platform (GCP)  At a Glance
Google Cloud Platform (GCP) At a Glance
Cloud Analogy
 
Simple stock market analysis
Simple stock market analysisSimple stock market analysis
Simple stock market analysis
lynneblue
 
GWT training session 1
GWT training session 1GWT training session 1
GWT training session 1
SNEHAL MASNE
 
Java Web Programming Using Cloud Platform: Module 10
Java Web Programming Using Cloud Platform: Module 10Java Web Programming Using Cloud Platform: Module 10
Java Web Programming Using Cloud Platform: Module 10
IMC Institute
 
Scale with a smile with Google Cloud Platform At DevConTLV (June 2014)
Scale with a smile with Google Cloud Platform At DevConTLV (June 2014)Scale with a smile with Google Cloud Platform At DevConTLV (June 2014)
Scale with a smile with Google Cloud Platform At DevConTLV (June 2014)
Ido Green
 
TIAD : Automate everything with Google Cloud
TIAD : Automate everything with Google CloudTIAD : Automate everything with Google Cloud
TIAD : Automate everything with Google Cloud
The Incredible Automation Day
 
Google Cloud Platform
Google Cloud PlatformGoogle Cloud Platform
Google Cloud Platform
Francesco Marchitelli
 
Hands on App Engine
Hands on App EngineHands on App Engine
Hands on App Engine
Simon Su
 
Developing Java Web Applications In Google App Engine
Developing Java Web Applications In Google App EngineDeveloping Java Web Applications In Google App Engine
Developing Java Web Applications In Google App Engine
Tahir Akram
 
Google App Engine for PHP
Google App Engine for PHP Google App Engine for PHP
Google App Engine for PHP
Eric Johnson
 
Azure Functions.pptx
Azure Functions.pptxAzure Functions.pptx
Azure Functions.pptx
YachikaKamra
 
GWT Training - Session 1/3
GWT Training - Session 1/3GWT Training - Session 1/3
GWT Training - Session 1/3
Faiz Bashir
 
Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Enginecatherinewall
 
Gdsc muk - innocent
Gdsc   muk - innocentGdsc   muk - innocent
Gdsc muk - innocent
junaidhasan17
 

Similar to Google Cloud Platform (20)

File Repository on GAE
File Repository on GAEFile Repository on GAE
File Repository on GAE
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for Java
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
 
Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : Google App EngineJava Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for Java
 
Google Cloud Platform (GCP) At a Glance
Google Cloud Platform (GCP)  At a GlanceGoogle Cloud Platform (GCP)  At a Glance
Google Cloud Platform (GCP) At a Glance
 
Simple stock market analysis
Simple stock market analysisSimple stock market analysis
Simple stock market analysis
 
GWT training session 1
GWT training session 1GWT training session 1
GWT training session 1
 
Java Web Programming Using Cloud Platform: Module 10
Java Web Programming Using Cloud Platform: Module 10Java Web Programming Using Cloud Platform: Module 10
Java Web Programming Using Cloud Platform: Module 10
 
Scale with a smile with Google Cloud Platform At DevConTLV (June 2014)
Scale with a smile with Google Cloud Platform At DevConTLV (June 2014)Scale with a smile with Google Cloud Platform At DevConTLV (June 2014)
Scale with a smile with Google Cloud Platform At DevConTLV (June 2014)
 
TIAD : Automate everything with Google Cloud
TIAD : Automate everything with Google CloudTIAD : Automate everything with Google Cloud
TIAD : Automate everything with Google Cloud
 
Google Cloud Platform
Google Cloud PlatformGoogle Cloud Platform
Google Cloud Platform
 
Hands on App Engine
Hands on App EngineHands on App Engine
Hands on App Engine
 
Developing Java Web Applications In Google App Engine
Developing Java Web Applications In Google App EngineDeveloping Java Web Applications In Google App Engine
Developing Java Web Applications In Google App Engine
 
Google App Engine for PHP
Google App Engine for PHP Google App Engine for PHP
Google App Engine for PHP
 
Azure Functions.pptx
Azure Functions.pptxAzure Functions.pptx
Azure Functions.pptx
 
GWT Training - Session 1/3
GWT Training - Session 1/3GWT Training - Session 1/3
GWT Training - Session 1/3
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Engine
 
Gdsc muk - innocent
Gdsc   muk - innocentGdsc   muk - innocent
Gdsc muk - innocent
 

Recently uploaded

Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 

Recently uploaded (20)

Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 

Google Cloud Platform

  • 2.  Generally, we talk about cloud computing when taking applications and running them on other infrastructure than your own.  As a developer, think of cloud computing as a service that provides a resource that your application needs to work (this resource may be a platform, an infrastructure (i.e. servers), a framework). What is Cloud?
  • 4.  Google Cloud Platform enables developers to build, test and deploy applications on Google’s highly-scalable and reliable infrastructure. Choose from computing, storage and application services for your web, mobile and backend solutions.  Google Cloud Platform is a set of modular cloud-based services that allow you to create anything from simple websites to complex applications. Introduction
  • 6. Why Google Cloud Platform ?
  • 7. Build on the same infrastructure that allows Google to return billions of search results in milliseconds, serve 6 billion hours of YouTube video per month and provide storage for 425 million Gmail users. ➔ Global Network ➔ Redundancy ➔ Innovative Infrastructure #1 Run on Google’s Infrastructure
  • 8. Rapidly develop, deploy and iterate your applications without worrying about system administration. Google manages your application, database and storage servers so you don’t have to. ➔ Managed services ➔ Developer Tools and SDKs ➔ Console and Administration #2 Focus on your product
  • 9.  Virtual machines. Managed platform. Blob storage. Block storage. NoSQL datastore. MySQL database. Big Data analytics.  Google Cloud Platform has all the services your application architecture needs. ➔ Compute ➔ Storage ➔ Services #3 Mix and Match Services
  • 10. Applications hosted on Cloud Platform can automatically scale up to handle the most demanding workloads and scale down when traffic subsides. You pay only for what you use. Scale-up: Cloud Platform is designed to scale like Google’s own products, even when you experience a huge traffic spike. Managed services such as App Engine or Cloud Datastore give you auto-scaling that enables your application to grow with your users. Scale-down: Just as Cloud Platform allows you to scale-up, managed services also scale down. You don’t pay for computing resources that you don’t need. #4 Scale to millions of users
  • 11. Google’s compute infrastructure gives you consistent CPU, memory and disk performance. The network and edge cache serve responses rapidly to your users across the world. ➔ CPU, Memory and Disk ➔ Global Network ➔ Transparent maintenance #5 Performance you can count on
  • 12. With a worldwide community of users, partner ecosystem and premium support packages, Google provides a full range of resources to help you get started and grow. #6 Get the support you need
  • 14.  Run your applications on a fully-managed Platform-as-a- Service (PaaS) using built-in services that make you more productive.  Use App Engine, when you just want to focus on your code and not worry about patching or maintenance. App Engine
  • 15.  Popular languages and frameworks  Focus on your code  Multiple storage options  Powerful built-in services  Familiar development tools  Deploy at Google scale App Engine Features
  • 16. Run large-scale workloads on virtual machines hosted on Google's infrastructure. Choose a VM that fits your needs and gain the performance of Google’s worldwide fiber network. Compute Engine
  • 17.  High-performance virtual machines  Powered by Google’s global network  (Really) Pay for what you use  Global load balancing  Fast and easy provisioning  Compliance and security Compute Engine Features
  • 18.  The App Engine offers frequently standard Java API's and App Engine specific API's for the same task. If you want to be able to port your application from the AppEngine to other webcontainers, e.g. Tomcat or Jetty, you should only use Java standard API. Google App Engine for Java
  • 19.  App Engine uses the Jetty servlet container to host applications and supports the Java Servlet API. It provides access to databases via Java Data Objects (JDO) and the Java Persistence API (JPA). In the background App Engine uses Google Bigtable as the distributed storage system for persisting application data. Google App Engine for Java
  • 20.  Google provides Memcache as a caching mechanism. Developers who want to code against the standard Java API can use the JCache implementation (based on JSR 107). Google App Engine for Java
  • 21.  Google App Engine supports the creation of several version of your application. In the Admin Console you can select which version should be active. Your active application "your-name" will be accessible via the URL "http://your-name.appspot.com". Each version can also be accessed for example to test a new version. The version are accessable via "http://versionnumber.latest.your-name.appspot.com" where version is for example "2" and "latest" is a fixed string. Google App Engine for Java
  • 22.  You cannot use Threads or frameworks which uses Threads. You can also not write to the filesystem and only read files which are part of your application. Certain "java.lang.System" actions, e.g. gc() or exit() will do nothing. You can not call JNI code. Reflection is possible for your own classes and standard Java classes but your cannot use reflection to access other classes outside your application.  A servlet needs also to reply within 30 seconds otherwise a "com.google.apphosting.api.DeadlineExceededException" is thrown. Google App Engine for Java
  • 23.  Google offers an Eclipse plug-in that provides support for the development with the Google App Engine as well as GWT development  Google lists the currently supported version in its Google Plug- in for Eclipse page.  Use Eclipse update manager to install the tools in the version for your Eclipse IDE.  The installation will also setup the GWT and App Engine SDK into your Eclipse preferences.  To check this use Window →Preferences → Google → App Engine / Web Toolkit. Installation of the Google Tools for Eclipse
  • 24. Calendar App Engine Sample Java package com.google.api.services.samples.calendar.appengine.server; import com.google.api.client.auth.oauth2.AuthorizationCodeFlow; import com.google.api.client.extensions.appengine.auth.oauth2.AbstractAppEngineAuthorizationCodeServlet; import com.google.appengine.api.users.UserService; import com.google.appengine.api.users.UserServiceFactory; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;
  • 25. Calendar App Engine Sample Java public class CalendarAppEngineSample extends AbstractAppEngineAuthorizationCodeServlet { static final String APP_NAME = "Google Calendar Data API Sample Web Client"; static final String GWT_MODULE_NAME = "calendar"; private static final long serialVersionUID = 1L; @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { response.setContentType("text/html"); response.setCharacterEncoding("UTF-8");
  • 26. Calendar App Engine Sample Java PrintWriter writer = response.getWriter(); writer.println("<!doctype html><html><head>"); writer.println("<meta http-equiv="content-type" content="text/html; charset=UTF-8">"); writer.println("<title>" + APP_NAME + "</title>"); writer.println( "<link type="text/css" rel="stylesheet" href="" + GWT_MODULE_NAME + ".css">"); writer.println("<script type="text/javascript" language="javascript" " + "src="" + GWT_MODULE_NAME + "/" + GWT_MODULE_NAME + ".nocache.js"></script>"); writer.println("</head><body>");
  • 27. Calendar App Engine Sample Java UserService userService = UserServiceFactory.getUserService(); writer.println("<div class="header"><b>" + request.getUserPrincipal().getName() + "</b> | " + "<a href="" + userService.createLogoutURL(request.getRequestURL().toString()) + "">Log out</a> | " + "<a href="http://code.google.com/p/google-api-java-client/source/browse" + "/calendar-appengine-sample?repo=samples">See source code for " + "this sample</a></div>"); writer.println("<div id="main"/>"); writer.println("</body></html>");
  • 28. Calendar App Engine Sample Java @Override protected String getRedirectUri(HttpServletRequest req) throws ServletException, IOException { return Utils.getRedirectUri(req); } @Override protected AuthorizationCodeFlow initializeFlow() throws IOException { return Utils.newFlow(); }
  • 29.  Visit the Google Cloud console.  If necessary, sign in to your Google Account, select or create a project, and agree to the terms of service. Click Continue.  Select the "Web Application" platform, and click Register.  Within "OAuth 2.0 Client ID", click on "Download JSON". Register Your Application
  • 30.  Later on, after you check out the sample project, you will copy this downloaded file (e.g. ~/Downloads/client_secrets.json) to src/main/resources/client_secrets.json. If you skip this step, when trying to run the sample you will get a 400 INVALID_CLIENT error in the browser.  Within "OAuth 2.0 Client ID", in the "Redirect URI" field enter some redirect URIs, for example "https://yourappname.appspot.com/oauth2callback" and "http://localhost:8888/oauth2callback". Register Your Application
  • 31. cd [someDirectory] hg clone https://code.google.com/p/google-api-java-client.samples/ google-api-java-client-samples cd google-api-java-client-samples/calendar-appengine-sample cp ~/Downloads/client_secrets.json src/main/resources/client_secrets.json mvn clean package Checkout Instructions
  • 32.  To run your application locally on a development server: mvn appengine:devserver  To deploy your application to appspot.com: If this is the first time you are deploying your application to appspot.com, you will to perform the following steps first.  Go to https://appengine.google.com and create an application.  Edit src/main/webapp/WEB-INF/appengine-web.xml, and enter the unique application identifier (you chose it in the prior step) between the <application> tags. Running and Deploying Your Application
  • 33.  If you've done the above, you can deploy at any time: mvn appengine:update  If this is the first time you have run "update" on the project, a browser window will open prompting you to log in. Log in with the same Google account the app is registered with. Running and Deploying Your Application
  • 34.  Setup Eclipse Preferences  Window > Preferences... (or on Mac, Eclipse > Preferences...)  Select Maven  check on "Download Artifact Sources"  check on "Download Artifact JavaDoc" Setup Project in Eclipse
  • 35.  Import calendar-appengine-sample project  File > Import...  Select "General > Existing Project into Workspace" and click "Next"  Click "Browse" next to "Select root directory", find [someDirectory]/google-api-java-client-samples/calendar- appengine-sample and click "Next"  Click "Finish"  NOTE: please ignore the "The App Engine SDK JAR * is missing in the WEB-INF/lib directory" error messages. Setup Project in Eclipse
  • 36.  Run  Right-click on project calendar-appengine-sample  Run As > Web Application Setup Project in Eclipse
  • 38.  Use a durable and highly available object storage service. With global edge-caching, your users have fast access to your app’s data from any location. Cloud Storage
  • 39.  Secure and safe  Competitive and flexible pricing  Object storage with a fully-featured API  Flexible access Cloud Storage Features
  • 40.  Use a managed, NoSQL, schemaless database for storing non-relational data. Cloud Datastore automatically scales as you need it and supports transactions as well as robust, SQL-like queries. Cloud Datastore
  • 41.  Schemaless access, with SQL-like querying  Managed database  Autoscale with your users  ACID transactions  Built-in redundancy  Local development tools  Access your data from anywhere Cloud Datastore Features
  • 42. Store and manage data using a fully-managed, relational MySQL database. Google handles replication, patch management and database management to ensure availability and performance. Cloud SQL
  • 43.  Familiar Infrastructure  Flexible Charging  Security, Availability, Durability  Easier Migration; No Lock-in  Control  Fully managed Cloud SQL Features
  • 45.  Analyze Big Data in the cloud with BigQuery.  Run fast, SQL-like queries against multi-terabyte datasets in seconds.  Scalable and easy to use, BigQuery gives you real-time insights about your data.  Flexible Access (ReST APIs, JSON-RPC, Google Apps Script). Big Query
  • 47.  All behind the scenes  Import data with ease  Affordable big data  The right interface Big Query Features
  • 50. Compact subset of SQL SELECT ... FROM ... WHERE ... GROUP BY ... ORDER BY ... LIMIT ...; Writing Queries  Common functions Math, String, Time, ...  Statistical approximations TOP COUNT DISTINCT
  • 51. GET /bigquery/v1/tables/{table name} GET /bigquery/v1/query?q={query} Sample JSON Reply: { "results": { "fields": { [ {"id":"COUNT(*)","type":"uint64"}, ... ] }, "rows": [ {"f":[{"v":"2949"}, ...]}, {"f":[{"v":"5387"}, ...]}, ... ] } } Also supports JSON-RPC Big Query via ReST
  • 52.  Standard Google Authentication ● Client Login ● OAuth ● AuthSub  HTTPS support ● protects your credentials ● protects your data  Relies on Google Storage to manage access Big Query Security and Privacy
  • 54. Create ReSTful services and make them accessible to iOS, Android and Javascript clients. Automatically generate client libraries to make wiring up the frontend easy. Built-in features include denial-of-service protection, OAuth 2.0 support and client key management. Cloud Endpoints
  • 55.  One tool, multiple clients  Extending App Engine infrastructure  Low maintenance client-server  Flexible client-side integration Cloud Endpoints Features
  • 56. Quickly and dynamically translate between thousands of available language pairs within your app, integrating with Google Translate. Translate API
  • 57.  Dynamically access languages  Accessible with Google API  Affordable, easy pricing Translate API Features
  • 58. Use Google’s machine learning algorithms to analyze data and predict future outcomes using a familiar ReSTful interface. Prediction API
  • 59.  Put your data to use  Fast and reliable  Cloud integration  Powerful development tools  Examples and support  Flexible pricing Prediction API Features
  • 60. Prediction API: a simple example
  • 61. How does it work?
  • 63.  Upload your training data to Google Storage ● Training data: outputs and input features ● Data format: comma separated value format (CSV) "english","To err is human, but to really ..." "spanish","No hay mal que por bien no venga." ...  Upload to Google Storage gsutil cp ${data} gs://yourbucket/${data} Step 1: Upload
  • 64.  Create a new model by training on data  To train a model: POST prediction/v1.3/training {"id":"mybucket/mydata"} Training runs asynchronously. To see if it has finished: GETprediction/v1.3/training/mybucket%2Fmydata {"kind": "prediction#training", ... ,"training status": "DONE"} Step 2: Train
  • 65.  Apply the trained model to make predictions on new data POST prediction/v1.3/training/mybucket%2Fmydata/predict { "data":{ "input": { "text" : [ "J'aime X! C'est le meilleur" ]}}} Step 3: Predict
  • 66.  Apply the trained model to make predictions on new data { data : { "kind" : "prediction#output", "outputLabel":"French", "outputMulti" :[ {"label":"French", "score": x.xx} {"label":"English", "score": x.xx} {"label":"Spanish", "score": x.xx}]}} Step 3: Predict
  • 67. import httplib // put new data in JSON format in params variable header = {"Content-Type" : "application/json"}#... conn = httplib.HTTPConnection("www.googleapis.com")conn.request ("POST", "/prediction/v1.3/query/bucket%2Fdata/predict", params, header) print conn.getresponse() Step 3: Predict
  • 68.  Google Cloud Platform offer $300 in credit to spend on all Cloud Platform products for your first 60 days. Your trial is absolutely free and you will not be billed unless you decide to upgrade to a paid account.  During free trial, there are some product limitations. Compute Engine is limited to eight concurrent cores at a time.  Free trial is for anyone new to Cloud Platform. Existing customers that have paid for Cloud Platform in the past are not eligible. Pricing: free trial
  • 70. • Google Cloud Platform Developers Portal: https://cloud.google.com/developers • Google Developers Global Portal: https://developers.google.com • Google Cloud Platform Products list: https://cloud.google.com/products/ • Google App Engine http://code.google.com/apis/storage • Google Storage for Developers http://code.google.com/apis/storage • Google Prediction API http://code.google.com/apis/predict • Google BigQuery http://code.google.com/apis/bigquery Useful links
  • 71. Thank You! please leave a feedback Francesco Marchitelli marchitelli.francesco@gmail.com @marcyborg