SlideShare una empresa de Scribd logo
Cloud Spin
Bret McGowen
Google
@bretmcg
Learning about the cloud by dodging bullets, Matrix-style
Bret McGowen
Developer Advocate, Google
Google Cloud Platform
New York, NY
@bretmcg
Howdy DevFest MN!
I'm a fake startup CEO
Fake startup, real problems
3 weeks to minimum
viable product
@bretmcg @googlecloud @googlecloudspin
The user steps into the
center of the Cloud Spin
area
The user jumps, and we
take a photo from all the
phones
It's pretty tricky
● Taking a photo at the same EXACT SAME INSTANT
● Coordinating the phone cameras
● File storage
● Scaling
● Image processing
● Controlling cost
● Create multiple versions
● Debugging & Logging
Problems to solve
Taking the photos:
how would you do it?
@bretmcg @googlecloud @googlecloudspin
It isn’t that straightforward
● Need to coordinate 19 phones to take photos
of the same moment!
● Android - random delay when taking a photo!
Hence impossible to take photos of the same moment
@bretmcg @googlecloud @googlecloudspin
What we ended up with?
● Record a video
● 30 fps is like burst mode
@bretmcg @googlecloud @googlecloudspin
More problems
● How do we identify the frames?
● Mark the the frame some how...
● Many Experiments: flash, timestamp
Use an audio marker!
@bretmcg @googlecloud @googlecloudspin
Mic-In Into the Phone
MIC
OMTP
MIC
GND
AHJ / CTIA
@bretmcg @googlecloud @googlecloudspin
Audio can be tricky
@bretmcg @googlecloud @googlecloudspin
@bretmcg @googlecloud @googlecloudspin
Finally - Off the shelf components
@bretmcg @googlecloud @googlecloudspin
Record the audio cue in the video
How do we coordinate 19 phone
cameras?
No, seriously, how do we
coordinate 19 phone cameras?
@bretmcg @googlecloud @googlecloudspin
What do we need to coordinate?
● Camera app status & error message
● Exposure ISO & shutter speed
● Internal versus external microphone
● Timestamp to start the recording
● And more...
@bretmcg @googlecloud @googlecloudspin
Let's use Firebase!
● Can power our app's backend
● Stores our data and syncs it in real-time
● JSON NoSQL database with real-time sync
● Updates across devices within milliseconds
// Set this phone's status on Firebase at /cameras/{cameranumber}
Firebase firebaseRef = new Firebase(FIREBASE_BASE_URL);
Firebase cameraStatusRef = firebaseRef.child("cameras").child
(cameraNumber);
CameraStatus cameraStatus = new CameraStatus();
cameraStatus.appVersion = BuildConfig.VERSION_NAME;
cameraStatus.externalMic = mExternalMic;
...
cameraStatus.status = status;
cameraStatusRef.setValue(mCameraStatus);
Android: updating camera status with Firebase
@bretmcg @googlecloud @googlecloudspin
@bretmcg @googlecloud @googlecloudspin
Recording video with camera2 API
● camera2 API
● I learned a lot of this API from the android-
Camera2Video GitHub project
Scaling with Google Cloud Platform
Stitching Q
Extraction Q
Input
Bucket
Stitching Q
Devices
Extraction Q
Notification
Processor
Extractor
Stitcher
Video
Uploads
Object Change
Notifications
Output
Bucket
Coordinator
Input
Bucket
Notification
Processor
Extractor
Stitcher
Output
Bucket
@bretmcg @googlecloud @googlecloudspin
Video Uploads and notification processing
Input
Bucket
Stitching Q
Devices
Extraction Q
Notification
Processor
Extractor
Stitcher
Video
Uploads
Notification
Output
Bucket
Coordinator
Input
Bucket
Notification
Processor
Cloud Datastore Cloud SQL Cloud Storage
4.5 trillion! Managed MySQL Cat Videos?Cat Videos?
Jumping
People
// Credentials for Google Cloud Platform.
Credential credential = ...
Storage storage = new Storage.Builder(httpTransport, jacksonFactory, credential)
.setApplicationName("...@developer.gserviceaccount.com")
.build();
StorageObject storageObject = new StorageObject();
storageObject.setBucket(bucket);
InputStream fileUploadStream = new FileInputStream(videoFile);
try {
InputStreamContent content = new InputStreamContent("video/mp4", fileUploadStream);
Storage.Objects.Insert insert = storage.objects().insert(bucket, null, content);
insert.setName(cloudStoragePath);
insert.execute();
} finally {
fileUploadStream.close();
}
@bretmcg @googlecloud @googlecloudspin
Object Change Notifications
Cloud
Storage Bucket
[myapp-input-bucket]
App Engine
Object Change Notification
Client
Add/update/remove object
@bretmcg @googlecloud @googlecloudspin
Edge Caching
@bretmcg @googlecloud @googlecloudspin
Google App Engine
Choice of Runtimes
- Java, Python, Go
- PHP
- Custom, NodeJS!
Easy to develop
- Build and test locally
- Focus on App Code
- Versioning
- Traffic Splitting
Trivial to manage
- Fully managed
- No patches/updates
- 24x7 operation by
Google SREs
- Autoscale
@bretmcg @googlecloud @googlecloudspin
@bretmcg @googlecloud @googlecloudspin
Building Pipelines
Input
Bucket
Stitching Q
Devices
Extraction Q
Notification
Processor
Extractor
Stitcher
Video
Uploads
Object Change
Notifications
Output
Bucket
Coordinator
Subscriber Subscriber
Pub/Sub Pub/Sub
Push Subscription Pull Subscription
msg ack msg ack
RPC Send
RPC Return
@bretmcg @googlecloud @googlecloudspin
Cloud Pub/Sub (Beta)
Reliable and
real-time
messaging
Designed for
Fast Data
Provides reliable, real-time,
many-to-many, asynchronous
messaging between
applications
Send data into processing
pipelines and out to other
apps, devices and Google Cloud
Services
Global by design and highly
available. ‘fire-and-forget’
with minimal latency.
Redundant forwarding paths
Designed for
Google scale
@bretmcg @googlecloud @googlecloudspin
Pub/Sub
Stitcher
Frames
Topic
Extractor
Frame Ready Message
Publishers and Subscribers
Original Stitcher
Subscription
@bretmcg @googlecloud @googlecloudspin
Pub/Sub
Original
Stitcher
Frames
Topic
Extractor
Frame Ready Message
Publishers and Subscribers
Original Stitcher
Subscription
Variation A
Stitcher
Variation A
Subscription
Variation B
Stitcher
Variation B
Subscription
@bretmcg @googlecloud @googlecloudspin
Variations - How Pub/Sub Can Help
Meanwhile, in our secret startup lab
Our first prototype was cheap and
scrappy
Like, REALLY scrappy.
We used anything we
could find.
Like, REAL
scrappy(selfie sticks!)
Like, REAL
scrappy(selfie sticks!)
Like, REAL
scrappy(selfie sticks!)
Extracting and stitching
@bretmcg @googlecloud @googlecloudspin
Pipeline Processing
Input
Bucket
Stitching Q
Devices
Extraction Q
Notification
Processor
Extractor
Stitcher
Video
Uploads
Object Change
Notifications
Output
Bucket
Coordinator
Extractor
Stitcher
from moviepy.video.io.VideoFileClip import VideoFileClip
import numpy
STD_DEV_SCALAR = 4
def calc_peak_time(clip):
audio_arr = clip.audio.to_soundarray(buffersize=1000)
frames = clip.fps * len(audio_arr) / clip.audio.fps
buckets = numpy.array_split(audio_arr, frames)
mean_arr = [numpy.sqrt(numpy.mean(bucket**2)) for bucket in buckets]
peaks = numpy.where(mean_arr > MEAN_SCALAR * numpy.mean(mean_arr))
if len(peaks) > 0 and len(peaks[0]) > 0:
return peaks[0][0] / float(clip.fps)
else:
return 0.0
@bretmcg @googlecloud @googlecloudspin
Frames extracted
@bretmcg @googlecloud @googlecloudspin
Google Compute Engine
Compute Resources
- US, Europe and
Asia zones
- Fast SDN-Based
virtual networking
Consistently Fast
- Fast VM Provisioning
- Consistent Performance
Cost Effective
- Sub-Hour Billing
- No IOPS charges for
Block Storage
- VMs not required for
Load balancing
@bretmcg @googlecloud @googlecloudspin
Compute Engine Autoscaler
Managed
Instance
Group
create/
destroy VMs
Instance Group
Manager
actuator
monitor
Autoscaler
Cloud Monitoring
utilisation
VMVMVM
Pub/Sub Topic
@bretmcg @googlecloud @googlecloudspin
Next step: Containerization
Extractor
Workers
create/
destroy VMs
Instance Group
Manager
actuator
monitor
Autoscaler
Cloud Monitoring
utilisation
VMVM
Container
VM
Extract Topic
@bretmcg @googlecloud @googlecloudspin
Stitching the frames together
Extract Q
Temp
Store
Extractor
Stitch QExtractorExtractors
READY
Stitcher
Firebase
All READY?
Retrieve Images
Visualizer
● Taking a photo at the same EXACT SAME INSTANT - video with audio beep
● Coordinating the phone cameras - Firebase
● File storage - Google Cloud Storage
● Scaling - Cloud Pub/Sub, Compute Engine Instance Groups
● Image processing - Compute Engine & Containers
● Controlling cost - Scaling instance group sizes
● Create multiple versions - Cloud Pub/Sub topics
● Debugging & Logging - Google Cloud Logging
Problems to solve
DEMO VIDEO TIME
@bretmcg @googlecloud @googlecloudspin
Productivity!
We built a lot in just 3 weeks
Focus 100% of time coding
@bretmcg @googlecloud @googlecloudspin
• Talk with us!
• Firebase
• Containers
• Kubernetes
• Big data
• BigQuery
Want to know more?
Bret McGowen
@bretmcg
@googlecloudspinTHANK YOU

Más contenido relacionado

La actualidad más candente

Building Kick Ass Video Games for the Cloud
Building Kick Ass Video Games for the CloudBuilding Kick Ass Video Games for the Cloud
Building Kick Ass Video Games for the Cloud
Chris Schalk
 
Importance of GCP: 30 Days of GCP
Importance of GCP: 30 Days of GCPImportance of GCP: 30 Days of GCP
Importance of GCP: 30 Days of GCP
AnshTyagi27
 
Git
GitGit
Building a µservice with Kotlin, Micronaut & GCP
Building a µservice with Kotlin, Micronaut & GCPBuilding a µservice with Kotlin, Micronaut & GCP
Building a µservice with Kotlin, Micronaut & GCP
Robert MacLean
 
JCConf 2016 - Google Dataflow 小試
JCConf 2016 - Google Dataflow 小試JCConf 2016 - Google Dataflow 小試
JCConf 2016 - Google Dataflow 小試
Simon Su
 
Fluent 2018: Measuring What Matters
Fluent 2018: Measuring What MattersFluent 2018: Measuring What Matters
Fluent 2018: Measuring What Matters
Akamai Developers & Admins
 
PRPL Pattern with Webpack and React
PRPL Pattern with Webpack and ReactPRPL Pattern with Webpack and React
PRPL Pattern with Webpack and React
Grgur Grisogono
 
The PRPL Pattern
The PRPL PatternThe PRPL Pattern
The PRPL Pattern
Red Pill Now
 
LF_APIStrat17_Bringing GraphQL to the Enterprise: When REST Isn't Enough
LF_APIStrat17_Bringing GraphQL to the Enterprise: When REST Isn't Enough LF_APIStrat17_Bringing GraphQL to the Enterprise: When REST Isn't Enough
LF_APIStrat17_Bringing GraphQL to the Enterprise: When REST Isn't Enough
LF_APIStrat
 
Microservices in Golang
Microservices in GolangMicroservices in Golang
Microservices in Golang
Mo'ath Qasim
 
IThome DevOps Summit - IoT、docker與DevOps
IThome DevOps Summit - IoT、docker與DevOpsIThome DevOps Summit - IoT、docker與DevOps
IThome DevOps Summit - IoT、docker與DevOps
Simon Su
 
How to build Kick Ass Games in the Cloud
How to build Kick Ass Games in the CloudHow to build Kick Ass Games in the Cloud
How to build Kick Ass Games in the Cloud
Chris Schalk
 
Google Cloud Dataflow meets TensorFlow
Google Cloud Dataflow meets TensorFlowGoogle Cloud Dataflow meets TensorFlow
Google Cloud Dataflow meets TensorFlow
Hayato Yoshikawa
 
GCPUG.TW - GCP學習資源分享
GCPUG.TW - GCP學習資源分享GCPUG.TW - GCP學習資源分享
GCPUG.TW - GCP學習資源分享
Simon Su
 
Google App Engine Overview and Update
Google App Engine Overview and UpdateGoogle App Engine Overview and Update
Google App Engine Overview and Update
Chris Schalk
 
JCConf 2016 - Dataflow Workshop Labs
JCConf 2016 - Dataflow Workshop LabsJCConf 2016 - Dataflow Workshop Labs
JCConf 2016 - Dataflow Workshop Labs
Simon Su
 
Angry Developer: Creating a Game in QML and JavaScript for MeeGo N9 @iRajLal
Angry Developer: Creating a Game in QML and JavaScript for MeeGo N9 @iRajLalAngry Developer: Creating a Game in QML and JavaScript for MeeGo N9 @iRajLal
Angry Developer: Creating a Game in QML and JavaScript for MeeGo N9 @iRajLal
Raj Lal
 
Building Integrated Applications on Google's Cloud Technologies
Building Integrated Applications on Google's Cloud TechnologiesBuilding Integrated Applications on Google's Cloud Technologies
Building Integrated Applications on Google's Cloud Technologies
Chris Schalk
 
Gulp - the streaming build system
Gulp - the streaming build systemGulp - the streaming build system
Gulp - the streaming build system
Sergey Romaneko
 
M is for modernization
M is for modernizationM is for modernization
M is for modernization
Red Pill Now
 

La actualidad más candente (20)

Building Kick Ass Video Games for the Cloud
Building Kick Ass Video Games for the CloudBuilding Kick Ass Video Games for the Cloud
Building Kick Ass Video Games for the Cloud
 
Importance of GCP: 30 Days of GCP
Importance of GCP: 30 Days of GCPImportance of GCP: 30 Days of GCP
Importance of GCP: 30 Days of GCP
 
Git
GitGit
Git
 
Building a µservice with Kotlin, Micronaut & GCP
Building a µservice with Kotlin, Micronaut & GCPBuilding a µservice with Kotlin, Micronaut & GCP
Building a µservice with Kotlin, Micronaut & GCP
 
JCConf 2016 - Google Dataflow 小試
JCConf 2016 - Google Dataflow 小試JCConf 2016 - Google Dataflow 小試
JCConf 2016 - Google Dataflow 小試
 
Fluent 2018: Measuring What Matters
Fluent 2018: Measuring What MattersFluent 2018: Measuring What Matters
Fluent 2018: Measuring What Matters
 
PRPL Pattern with Webpack and React
PRPL Pattern with Webpack and ReactPRPL Pattern with Webpack and React
PRPL Pattern with Webpack and React
 
The PRPL Pattern
The PRPL PatternThe PRPL Pattern
The PRPL Pattern
 
LF_APIStrat17_Bringing GraphQL to the Enterprise: When REST Isn't Enough
LF_APIStrat17_Bringing GraphQL to the Enterprise: When REST Isn't Enough LF_APIStrat17_Bringing GraphQL to the Enterprise: When REST Isn't Enough
LF_APIStrat17_Bringing GraphQL to the Enterprise: When REST Isn't Enough
 
Microservices in Golang
Microservices in GolangMicroservices in Golang
Microservices in Golang
 
IThome DevOps Summit - IoT、docker與DevOps
IThome DevOps Summit - IoT、docker與DevOpsIThome DevOps Summit - IoT、docker與DevOps
IThome DevOps Summit - IoT、docker與DevOps
 
How to build Kick Ass Games in the Cloud
How to build Kick Ass Games in the CloudHow to build Kick Ass Games in the Cloud
How to build Kick Ass Games in the Cloud
 
Google Cloud Dataflow meets TensorFlow
Google Cloud Dataflow meets TensorFlowGoogle Cloud Dataflow meets TensorFlow
Google Cloud Dataflow meets TensorFlow
 
GCPUG.TW - GCP學習資源分享
GCPUG.TW - GCP學習資源分享GCPUG.TW - GCP學習資源分享
GCPUG.TW - GCP學習資源分享
 
Google App Engine Overview and Update
Google App Engine Overview and UpdateGoogle App Engine Overview and Update
Google App Engine Overview and Update
 
JCConf 2016 - Dataflow Workshop Labs
JCConf 2016 - Dataflow Workshop LabsJCConf 2016 - Dataflow Workshop Labs
JCConf 2016 - Dataflow Workshop Labs
 
Angry Developer: Creating a Game in QML and JavaScript for MeeGo N9 @iRajLal
Angry Developer: Creating a Game in QML and JavaScript for MeeGo N9 @iRajLalAngry Developer: Creating a Game in QML and JavaScript for MeeGo N9 @iRajLal
Angry Developer: Creating a Game in QML and JavaScript for MeeGo N9 @iRajLal
 
Building Integrated Applications on Google's Cloud Technologies
Building Integrated Applications on Google's Cloud TechnologiesBuilding Integrated Applications on Google's Cloud Technologies
Building Integrated Applications on Google's Cloud Technologies
 
Gulp - the streaming build system
Gulp - the streaming build systemGulp - the streaming build system
Gulp - the streaming build system
 
M is for modernization
M is for modernizationM is for modernization
M is for modernization
 

Destacado

Delegating Data Management to the Cloud: A Case Study in a Telecommunications...
Delegating Data Management to the Cloud: A Case Study in a Telecommunications...Delegating Data Management to the Cloud: A Case Study in a Telecommunications...
Delegating Data Management to the Cloud: A Case Study in a Telecommunications...
Giuseppe Procaccianti
 
Solving enterprise challenges through scale out storage & big compute final
Solving enterprise challenges through scale out storage & big compute finalSolving enterprise challenges through scale out storage & big compute final
Solving enterprise challenges through scale out storage & big compute final
Avere Systems
 
SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...
SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...
SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...
SaltStack
 
Log collect with google fluentd
Log collect with google fluentdLog collect with google fluentd
Log collect with google fluentd
Zaki_XL
 
How to Puppetize Google Cloud Platform - PuppetConf 2014
How to Puppetize Google Cloud Platform - PuppetConf 2014How to Puppetize Google Cloud Platform - PuppetConf 2014
How to Puppetize Google Cloud Platform - PuppetConf 2014
Puppet
 
Meet the experts: autoscaling in the cloud - case study Teleticket Service & ...
Meet the experts: autoscaling in the cloud - case study Teleticket Service & ...Meet the experts: autoscaling in the cloud - case study Teleticket Service & ...
Meet the experts: autoscaling in the cloud - case study Teleticket Service & ...
David Geens
 
Plan your Log Platform at Google Cloud Platform
Plan your Log Platform at Google Cloud PlatformPlan your Log Platform at Google Cloud Platform
Plan your Log Platform at Google Cloud Platform
Simon Su
 
Auto scaling websites in the cloud
Auto scaling websites in the cloudAuto scaling websites in the cloud
Auto scaling websites in the cloud
David Veksler
 
Introduction to Google Compute Engine
Introduction to Google Compute EngineIntroduction to Google Compute Engine
Introduction to Google Compute Engine
Colin Su
 
A Modern Finance Case Study – Cloud or On-Premise
A Modern Finance Case Study – Cloud or On-PremiseA Modern Finance Case Study – Cloud or On-Premise
A Modern Finance Case Study – Cloud or On-Premise
Prophix Software
 
A Complete Guide to the Google Cloud Platform
A Complete Guide to the Google Cloud PlatformA Complete Guide to the Google Cloud Platform
A Complete Guide to the Google Cloud Platform
BitMin Infosystems Pvt. Ltd
 
Deploying SaaS Application on the Cloud - Case Study
Deploying SaaS Application on the Cloud - Case StudyDeploying SaaS Application on the Cloud - Case Study
Deploying SaaS Application on the Cloud - Case Study
Nati Shalom
 
Deploying NGINX Plus & Kubernetes on Google Cloud Platform
Deploying NGINX Plus & Kubernetes on Google Cloud PlatformDeploying NGINX Plus & Kubernetes on Google Cloud Platform
Deploying NGINX Plus & Kubernetes on Google Cloud Platform
NGINX, Inc.
 
Outsourcing Services: What is right for your organisation
Outsourcing Services: What is right for your organisationOutsourcing Services: What is right for your organisation
Outsourcing Services: What is right for your organisation
Vincent Kwon
 
Continuous Integration & Continuous Delivery with GCP
Continuous Integration & Continuous Delivery with GCPContinuous Integration & Continuous Delivery with GCP
Continuous Integration & Continuous Delivery with GCP
KAI CHU CHUNG
 
Use Cases from Batch to Streaming, MapReduce to Spark, Mainframe to Cloud: To...
Use Cases from Batch to Streaming, MapReduce to Spark, Mainframe to Cloud: To...Use Cases from Batch to Streaming, MapReduce to Spark, Mainframe to Cloud: To...
Use Cases from Batch to Streaming, MapReduce to Spark, Mainframe to Cloud: To...
Precisely
 
Cloud Presentation and OpenStack case studies -- Harvard University
Cloud Presentation and OpenStack case studies -- Harvard UniversityCloud Presentation and OpenStack case studies -- Harvard University
Cloud Presentation and OpenStack case studies -- Harvard University
Barton George
 
Disaster Recovery in the Cloud: A Case Study - AWS Washington D.C. Symposium ...
Disaster Recovery in the Cloud: A Case Study - AWS Washington D.C. Symposium ...Disaster Recovery in the Cloud: A Case Study - AWS Washington D.C. Symposium ...
Disaster Recovery in the Cloud: A Case Study - AWS Washington D.C. Symposium ...
Amazon Web Services
 
Google Cloud Platform and Kubernetes
Google Cloud Platform and KubernetesGoogle Cloud Platform and Kubernetes
Google Cloud Platform and Kubernetes
Kasper Nissen
 
Shakr - Container CI/CD with Google Cloud Platform
Shakr - Container CI/CD with Google Cloud PlatformShakr - Container CI/CD with Google Cloud Platform
Shakr - Container CI/CD with Google Cloud Platform
Minku Lee
 

Destacado (20)

Delegating Data Management to the Cloud: A Case Study in a Telecommunications...
Delegating Data Management to the Cloud: A Case Study in a Telecommunications...Delegating Data Management to the Cloud: A Case Study in a Telecommunications...
Delegating Data Management to the Cloud: A Case Study in a Telecommunications...
 
Solving enterprise challenges through scale out storage & big compute final
Solving enterprise challenges through scale out storage & big compute finalSolving enterprise challenges through scale out storage & big compute final
Solving enterprise challenges through scale out storage & big compute final
 
SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...
SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...
SaltConf14 - Eric johnson, Google - Orchestrating Google Compute Engine with ...
 
Log collect with google fluentd
Log collect with google fluentdLog collect with google fluentd
Log collect with google fluentd
 
How to Puppetize Google Cloud Platform - PuppetConf 2014
How to Puppetize Google Cloud Platform - PuppetConf 2014How to Puppetize Google Cloud Platform - PuppetConf 2014
How to Puppetize Google Cloud Platform - PuppetConf 2014
 
Meet the experts: autoscaling in the cloud - case study Teleticket Service & ...
Meet the experts: autoscaling in the cloud - case study Teleticket Service & ...Meet the experts: autoscaling in the cloud - case study Teleticket Service & ...
Meet the experts: autoscaling in the cloud - case study Teleticket Service & ...
 
Plan your Log Platform at Google Cloud Platform
Plan your Log Platform at Google Cloud PlatformPlan your Log Platform at Google Cloud Platform
Plan your Log Platform at Google Cloud Platform
 
Auto scaling websites in the cloud
Auto scaling websites in the cloudAuto scaling websites in the cloud
Auto scaling websites in the cloud
 
Introduction to Google Compute Engine
Introduction to Google Compute EngineIntroduction to Google Compute Engine
Introduction to Google Compute Engine
 
A Modern Finance Case Study – Cloud or On-Premise
A Modern Finance Case Study – Cloud or On-PremiseA Modern Finance Case Study – Cloud or On-Premise
A Modern Finance Case Study – Cloud or On-Premise
 
A Complete Guide to the Google Cloud Platform
A Complete Guide to the Google Cloud PlatformA Complete Guide to the Google Cloud Platform
A Complete Guide to the Google Cloud Platform
 
Deploying SaaS Application on the Cloud - Case Study
Deploying SaaS Application on the Cloud - Case StudyDeploying SaaS Application on the Cloud - Case Study
Deploying SaaS Application on the Cloud - Case Study
 
Deploying NGINX Plus & Kubernetes on Google Cloud Platform
Deploying NGINX Plus & Kubernetes on Google Cloud PlatformDeploying NGINX Plus & Kubernetes on Google Cloud Platform
Deploying NGINX Plus & Kubernetes on Google Cloud Platform
 
Outsourcing Services: What is right for your organisation
Outsourcing Services: What is right for your organisationOutsourcing Services: What is right for your organisation
Outsourcing Services: What is right for your organisation
 
Continuous Integration & Continuous Delivery with GCP
Continuous Integration & Continuous Delivery with GCPContinuous Integration & Continuous Delivery with GCP
Continuous Integration & Continuous Delivery with GCP
 
Use Cases from Batch to Streaming, MapReduce to Spark, Mainframe to Cloud: To...
Use Cases from Batch to Streaming, MapReduce to Spark, Mainframe to Cloud: To...Use Cases from Batch to Streaming, MapReduce to Spark, Mainframe to Cloud: To...
Use Cases from Batch to Streaming, MapReduce to Spark, Mainframe to Cloud: To...
 
Cloud Presentation and OpenStack case studies -- Harvard University
Cloud Presentation and OpenStack case studies -- Harvard UniversityCloud Presentation and OpenStack case studies -- Harvard University
Cloud Presentation and OpenStack case studies -- Harvard University
 
Disaster Recovery in the Cloud: A Case Study - AWS Washington D.C. Symposium ...
Disaster Recovery in the Cloud: A Case Study - AWS Washington D.C. Symposium ...Disaster Recovery in the Cloud: A Case Study - AWS Washington D.C. Symposium ...
Disaster Recovery in the Cloud: A Case Study - AWS Washington D.C. Symposium ...
 
Google Cloud Platform and Kubernetes
Google Cloud Platform and KubernetesGoogle Cloud Platform and Kubernetes
Google Cloud Platform and Kubernetes
 
Shakr - Container CI/CD with Google Cloud Platform
Shakr - Container CI/CD with Google Cloud PlatformShakr - Container CI/CD with Google Cloud Platform
Shakr - Container CI/CD with Google Cloud Platform
 

Similar a Cloud Spin - building a photo booth with the Google Cloud Platform

Mopcon2017 - AppDevKit x CameraKit
Mopcon2017 - AppDevKit x CameraKitMopcon2017 - AppDevKit x CameraKit
Mopcon2017 - AppDevKit x CameraKit
anistar sung
 
COSCUP 2017 FACE OFF
COSCUP 2017 FACE OFFCOSCUP 2017 FACE OFF
COSCUP 2017 FACE OFF
PRADA Hsiung
 
Philipp Nagele (Wikitude): What's Next with Wikitude
Philipp Nagele (Wikitude): What's Next with WikitudePhilipp Nagele (Wikitude): What's Next with Wikitude
Philipp Nagele (Wikitude): What's Next with Wikitude
AugmentedWorldExpo
 
Rendering Techniques for Augmented Reality and a Look Ahead at AR Foundation
Rendering Techniques for Augmented Reality and a Look Ahead at AR FoundationRendering Techniques for Augmented Reality and a Look Ahead at AR Foundation
Rendering Techniques for Augmented Reality and a Look Ahead at AR Foundation
Unity Technologies
 
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016
Codemotion
 
Hacking for salone: drone races
Hacking for salone: drone racesHacking for salone: drone races
Hacking for salone: drone races
Emanuele Di Saverio
 
DIY- computer vision with GWT
DIY- computer vision with GWTDIY- computer vision with GWT
DIY- computer vision with GWT
Francesca Tosi
 
DIY: Computer Vision with GWT.
DIY: Computer Vision with GWT.DIY: Computer Vision with GWT.
DIY: Computer Vision with GWT.
JooinK
 
FLAR Workflow
FLAR WorkflowFLAR Workflow
FLAR Workflow
Jesse Freeman
 
Digital Fabrication Studio 0.3 3D Scanning
Digital Fabrication Studio 0.3 3D ScanningDigital Fabrication Studio 0.3 3D Scanning
Digital Fabrication Studio 0.3 3D Scanning
Massimo Menichinelli
 
Google Cloud: Next'19 Extended Hanoi
Google Cloud: Next'19 Extended HanoiGoogle Cloud: Next'19 Extended Hanoi
Google Cloud: Next'19 Extended Hanoi
GCPUserGroupVietnam
 
Unit testing on Android (Droidcon Dubai 2015)
Unit testing on Android (Droidcon Dubai 2015)Unit testing on Android (Droidcon Dubai 2015)
Unit testing on Android (Droidcon Dubai 2015)
Danny Preussler
 
Building a Native Camera Access Library - Part I - Transcript.pdf
Building a Native Camera Access Library - Part I - Transcript.pdfBuilding a Native Camera Access Library - Part I - Transcript.pdf
Building a Native Camera Access Library - Part I - Transcript.pdf
ShaiAlmog1
 
Naive application development
Naive application developmentNaive application development
Naive application development
Shaka Huang
 
06.Programming Media on Windows Phone
06.Programming Media on Windows Phone06.Programming Media on Windows Phone
06.Programming Media on Windows Phone
Nguyen Tuan
 
Ignacy Kowalczyk
Ignacy KowalczykIgnacy Kowalczyk
Ignacy Kowalczyk
CodeFest
 
20 easy Raspberry Pi projects
20 easy Raspberry Pi projects20 easy Raspberry Pi projects
20 easy Raspberry Pi projects
IT Books
 
A WebGL scene in 30 mins
A WebGL scene in 30 minsA WebGL scene in 30 mins
A WebGL scene in 30 mins
Jens Arps
 
SpotCam HD Wi-Fi Video Monitoring camera review
SpotCam HD Wi-Fi Video Monitoring camera reviewSpotCam HD Wi-Fi Video Monitoring camera review
SpotCam HD Wi-Fi Video Monitoring camera review
spotcam
 
3D Programming Basics: WebGL
3D Programming Basics: WebGL3D Programming Basics: WebGL
3D Programming Basics: WebGL
Globant
 

Similar a Cloud Spin - building a photo booth with the Google Cloud Platform (20)

Mopcon2017 - AppDevKit x CameraKit
Mopcon2017 - AppDevKit x CameraKitMopcon2017 - AppDevKit x CameraKit
Mopcon2017 - AppDevKit x CameraKit
 
COSCUP 2017 FACE OFF
COSCUP 2017 FACE OFFCOSCUP 2017 FACE OFF
COSCUP 2017 FACE OFF
 
Philipp Nagele (Wikitude): What's Next with Wikitude
Philipp Nagele (Wikitude): What's Next with WikitudePhilipp Nagele (Wikitude): What's Next with Wikitude
Philipp Nagele (Wikitude): What's Next with Wikitude
 
Rendering Techniques for Augmented Reality and a Look Ahead at AR Foundation
Rendering Techniques for Augmented Reality and a Look Ahead at AR FoundationRendering Techniques for Augmented Reality and a Look Ahead at AR Foundation
Rendering Techniques for Augmented Reality and a Look Ahead at AR Foundation
 
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016
 
Hacking for salone: drone races
Hacking for salone: drone racesHacking for salone: drone races
Hacking for salone: drone races
 
DIY- computer vision with GWT
DIY- computer vision with GWTDIY- computer vision with GWT
DIY- computer vision with GWT
 
DIY: Computer Vision with GWT.
DIY: Computer Vision with GWT.DIY: Computer Vision with GWT.
DIY: Computer Vision with GWT.
 
FLAR Workflow
FLAR WorkflowFLAR Workflow
FLAR Workflow
 
Digital Fabrication Studio 0.3 3D Scanning
Digital Fabrication Studio 0.3 3D ScanningDigital Fabrication Studio 0.3 3D Scanning
Digital Fabrication Studio 0.3 3D Scanning
 
Google Cloud: Next'19 Extended Hanoi
Google Cloud: Next'19 Extended HanoiGoogle Cloud: Next'19 Extended Hanoi
Google Cloud: Next'19 Extended Hanoi
 
Unit testing on Android (Droidcon Dubai 2015)
Unit testing on Android (Droidcon Dubai 2015)Unit testing on Android (Droidcon Dubai 2015)
Unit testing on Android (Droidcon Dubai 2015)
 
Building a Native Camera Access Library - Part I - Transcript.pdf
Building a Native Camera Access Library - Part I - Transcript.pdfBuilding a Native Camera Access Library - Part I - Transcript.pdf
Building a Native Camera Access Library - Part I - Transcript.pdf
 
Naive application development
Naive application developmentNaive application development
Naive application development
 
06.Programming Media on Windows Phone
06.Programming Media on Windows Phone06.Programming Media on Windows Phone
06.Programming Media on Windows Phone
 
Ignacy Kowalczyk
Ignacy KowalczykIgnacy Kowalczyk
Ignacy Kowalczyk
 
20 easy Raspberry Pi projects
20 easy Raspberry Pi projects20 easy Raspberry Pi projects
20 easy Raspberry Pi projects
 
A WebGL scene in 30 mins
A WebGL scene in 30 minsA WebGL scene in 30 mins
A WebGL scene in 30 mins
 
SpotCam HD Wi-Fi Video Monitoring camera review
SpotCam HD Wi-Fi Video Monitoring camera reviewSpotCam HD Wi-Fi Video Monitoring camera review
SpotCam HD Wi-Fi Video Monitoring camera review
 
3D Programming Basics: WebGL
3D Programming Basics: WebGL3D Programming Basics: WebGL
3D Programming Basics: WebGL
 

Último

Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Wask
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Alpen-Adria-Universität
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Project Management Semester Long Project - Acuity
Project Management Semester Long Project - AcuityProject Management Semester Long Project - Acuity
Project Management Semester Long Project - Acuity
jpupo2018
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
SitimaJohn
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 

Último (20)

Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Project Management Semester Long Project - Acuity
Project Management Semester Long Project - AcuityProject Management Semester Long Project - Acuity
Project Management Semester Long Project - Acuity
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 

Cloud Spin - building a photo booth with the Google Cloud Platform