(Go: >> BACK << -|- >> HOME <<)

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

Microsoft Azure Cloud Services
Microsoft Azure Cloud ServicesMicrosoft Azure Cloud Services
Microsoft Azure Cloud Services
David J Rosenthal
 
Aws ppt
Aws pptAws ppt
Aws ppt
RamyaG50
 
Introduction to AWS Cloud Computing
Introduction to AWS Cloud ComputingIntroduction to AWS Cloud Computing
Introduction to AWS Cloud Computing
Amazon Web Services
 
Introduction to Amazon Web Services
Introduction to Amazon Web ServicesIntroduction to Amazon Web Services
Introduction to Amazon Web Services
Amazon Web Services
 
Introduction to Amazon EC2
Introduction to Amazon EC2Introduction to Amazon EC2
Introduction to Amazon EC2
Amazon Web Services
 
Cloud Computing and Amazon Web Services
Cloud Computing and Amazon Web ServicesCloud Computing and Amazon Web Services
Cloud Computing and Amazon Web Services
Aditya Jha
 
Google cloud platform
Google cloud platformGoogle cloud platform
Google cloud platform
Piyumi Niwanthika Herath
 
Introduction to Google Cloud Platform
Introduction to Google Cloud PlatformIntroduction to Google Cloud Platform
Introduction to Google Cloud Platform
Sujai Prakasam
 
Google App Engine ppt
Google App Engine  pptGoogle App Engine  ppt
Introduction to Google Compute Engine
Introduction to Google Compute EngineIntroduction to Google Compute Engine
Introduction to Google Compute Engine
Colin Su
 
Cloud computing
Cloud computingCloud computing
Cloud computing
Aditya Dwivedi
 
Google Cloud Platform (GCP)
Google Cloud Platform (GCP)Google Cloud Platform (GCP)
Google Cloud Platform (GCP)
Chetan Sharma
 
Google Cloud Platform
Google Cloud PlatformGoogle Cloud Platform
Google Cloud Platform
VMware Tanzu
 
Windows Azure Virtual Machines
Windows Azure Virtual MachinesWindows Azure Virtual Machines
Windows Azure Virtual Machines
Clint Edmonson
 
Google Cloud Networking Deep Dive
Google Cloud Networking Deep DiveGoogle Cloud Networking Deep Dive
Google Cloud Networking Deep Dive
Michelle Holley
 
Introduction of Cloud computing
Introduction of Cloud computingIntroduction of Cloud computing
Introduction of Cloud computing
Rkrishna Mishra
 
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
 
Microsoft Azure Platform-as-a-Service (PaaS)
Microsoft Azure Platform-as-a-Service (PaaS)Microsoft Azure Platform-as-a-Service (PaaS)
Microsoft Azure Platform-as-a-Service (PaaS)
Chris Dufour
 
Application of Cloud Computing
Application of Cloud ComputingApplication of Cloud Computing
Application of Cloud Computing
Boonlert Aroonpiboon
 
Cloud Computing Using OpenStack
Cloud Computing Using OpenStack Cloud Computing Using OpenStack
Cloud Computing Using OpenStack
Bangladesh Network Operators Group
 

What's hot (20)

Microsoft Azure Cloud Services
Microsoft Azure Cloud ServicesMicrosoft Azure Cloud Services
Microsoft Azure Cloud Services
 
Aws ppt
Aws pptAws ppt
Aws ppt
 
Introduction to AWS Cloud Computing
Introduction to AWS Cloud ComputingIntroduction to AWS Cloud Computing
Introduction to AWS Cloud Computing
 
Introduction to Amazon Web Services
Introduction to Amazon Web ServicesIntroduction to Amazon Web Services
Introduction to Amazon Web Services
 
Introduction to Amazon EC2
Introduction to Amazon EC2Introduction to Amazon EC2
Introduction to Amazon EC2
 
Cloud Computing and Amazon Web Services
Cloud Computing and Amazon Web ServicesCloud Computing and Amazon Web Services
Cloud Computing and Amazon Web Services
 
Google cloud platform
Google cloud platformGoogle cloud platform
Google cloud platform
 
Introduction to Google Cloud Platform
Introduction to Google Cloud PlatformIntroduction to Google Cloud Platform
Introduction to Google Cloud Platform
 
Google App Engine ppt
Google App Engine  pptGoogle App Engine  ppt
Google App Engine ppt
 
Introduction to Google Compute Engine
Introduction to Google Compute EngineIntroduction to Google Compute Engine
Introduction to Google Compute Engine
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Google Cloud Platform (GCP)
Google Cloud Platform (GCP)Google Cloud Platform (GCP)
Google Cloud Platform (GCP)
 
Google Cloud Platform
Google Cloud PlatformGoogle Cloud Platform
Google Cloud Platform
 
Windows Azure Virtual Machines
Windows Azure Virtual MachinesWindows Azure Virtual Machines
Windows Azure Virtual Machines
 
Google Cloud Networking Deep Dive
Google Cloud Networking Deep DiveGoogle Cloud Networking Deep Dive
Google Cloud Networking Deep Dive
 
Introduction of Cloud computing
Introduction of Cloud computingIntroduction of Cloud computing
Introduction of Cloud computing
 
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?
 
Microsoft Azure Platform-as-a-Service (PaaS)
Microsoft Azure Platform-as-a-Service (PaaS)Microsoft Azure Platform-as-a-Service (PaaS)
Microsoft Azure Platform-as-a-Service (PaaS)
 
Application of Cloud Computing
Application of Cloud ComputingApplication of Cloud Computing
Application of Cloud Computing
 
Cloud Computing Using OpenStack
Cloud Computing Using OpenStack Cloud Computing Using OpenStack
Cloud Computing Using OpenStack
 

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
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
Michael Angelo Rivera
 
Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Engine
catherinewall
 
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

HTTP Adaptive Streaming – Quo Vadis (2024)
HTTP Adaptive Streaming – Quo Vadis (2024)HTTP Adaptive Streaming – Quo Vadis (2024)
HTTP Adaptive Streaming – Quo Vadis (2024)
Alpen-Adria-Universität
 
Why do You Have to Redesign?_Redesign Challenge Day 1
Why do You Have to Redesign?_Redesign Challenge Day 1Why do You Have to Redesign?_Redesign Challenge Day 1
Why do You Have to Redesign?_Redesign Challenge Day 1
FellyciaHikmahwarani
 
What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024
Stephanie Beckett
 
DealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 editionDealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 edition
Yevgen Sysoyev
 
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Erasmo Purificato
 
Running a Go App in Kubernetes: CPU Impacts
Running a Go App in Kubernetes: CPU ImpactsRunning a Go App in Kubernetes: CPU Impacts
Running a Go App in Kubernetes: CPU Impacts
ScyllaDB
 
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdfPigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions
 
Navigating Post-Quantum Blockchain: Resilient Cryptography in Quantum Threats
Navigating Post-Quantum Blockchain: Resilient Cryptography in Quantum ThreatsNavigating Post-Quantum Blockchain: Resilient Cryptography in Quantum Threats
Navigating Post-Quantum Blockchain: Resilient Cryptography in Quantum Threats
anupriti
 
How Netflix Builds High Performance Applications at Global Scale
How Netflix Builds High Performance Applications at Global ScaleHow Netflix Builds High Performance Applications at Global Scale
How Netflix Builds High Performance Applications at Global Scale
ScyllaDB
 
Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...
BookNet Canada
 
Research Directions for Cross Reality Interfaces
Research Directions for Cross Reality InterfacesResearch Directions for Cross Reality Interfaces
Research Directions for Cross Reality Interfaces
Mark Billinghurst
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
ishalveerrandhawa1
 
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfINDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
jackson110191
 
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsScaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Mydbops
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetry
Eric D. Schabell
 
How to Avoid Learning the Linux-Kernel Memory Model
How to Avoid Learning the Linux-Kernel Memory ModelHow to Avoid Learning the Linux-Kernel Memory Model
How to Avoid Learning the Linux-Kernel Memory Model
ScyllaDB
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
ArgaBisma
 
AC Atlassian Coimbatore Session Slides( 22/06/2024)
AC Atlassian Coimbatore Session Slides( 22/06/2024)AC Atlassian Coimbatore Session Slides( 22/06/2024)
AC Atlassian Coimbatore Session Slides( 22/06/2024)
apoorva2579
 
this resume for sadika shaikh bca student
this resume for sadika shaikh bca studentthis resume for sadika shaikh bca student
this resume for sadika shaikh bca student
SadikaShaikh7
 
How RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptxHow RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptx
SynapseIndia
 

Recently uploaded (20)

HTTP Adaptive Streaming – Quo Vadis (2024)
HTTP Adaptive Streaming – Quo Vadis (2024)HTTP Adaptive Streaming – Quo Vadis (2024)
HTTP Adaptive Streaming – Quo Vadis (2024)
 
Why do You Have to Redesign?_Redesign Challenge Day 1
Why do You Have to Redesign?_Redesign Challenge Day 1Why do You Have to Redesign?_Redesign Challenge Day 1
Why do You Have to Redesign?_Redesign Challenge Day 1
 
What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024
 
DealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 editionDealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 edition
 
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
 
Running a Go App in Kubernetes: CPU Impacts
Running a Go App in Kubernetes: CPU ImpactsRunning a Go App in Kubernetes: CPU Impacts
Running a Go App in Kubernetes: CPU Impacts
 
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdfPigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdf
 
Navigating Post-Quantum Blockchain: Resilient Cryptography in Quantum Threats
Navigating Post-Quantum Blockchain: Resilient Cryptography in Quantum ThreatsNavigating Post-Quantum Blockchain: Resilient Cryptography in Quantum Threats
Navigating Post-Quantum Blockchain: Resilient Cryptography in Quantum Threats
 
How Netflix Builds High Performance Applications at Global Scale
How Netflix Builds High Performance Applications at Global ScaleHow Netflix Builds High Performance Applications at Global Scale
How Netflix Builds High Performance Applications at Global Scale
 
Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...
 
Research Directions for Cross Reality Interfaces
Research Directions for Cross Reality InterfacesResearch Directions for Cross Reality Interfaces
Research Directions for Cross Reality Interfaces
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
 
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfINDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
 
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsScaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetry
 
How to Avoid Learning the Linux-Kernel Memory Model
How to Avoid Learning the Linux-Kernel Memory ModelHow to Avoid Learning the Linux-Kernel Memory Model
How to Avoid Learning the Linux-Kernel Memory Model
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
 
AC Atlassian Coimbatore Session Slides( 22/06/2024)
AC Atlassian Coimbatore Session Slides( 22/06/2024)AC Atlassian Coimbatore Session Slides( 22/06/2024)
AC Atlassian Coimbatore Session Slides( 22/06/2024)
 
this resume for sadika shaikh bca student
this resume for sadika shaikh bca studentthis resume for sadika shaikh bca student
this resume for sadika shaikh bca student
 
How RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptxHow RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptx
 

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