What does it take to connect a Google Home to a .NET container running in the cloud? Surprisingly, not much! In this talk, we will use Dialogflow to setup a Google Home device to talk to a .NET container managed by Kubernetes Engine.
We will take a look at some of the Google Cloud services such as Machine Learning APIs, BigQuery, Stackdriver diagnostics and see how they can elevate our Google Home to the next level. If you’re curious about what Google has to offer for your .NET apps, this talk is for you!
ITCamp 2018 - Mete Atamel Ian Talarico - Google Home meets .NET containers on Google Cloud
1. Confidential & Proprietary
Google Home meets .NET containers
Powered by Google Cloud Platform
Mete Atamel
Developer Advocate at Google
@meteatamel
https://github.com/GoogleCloudPlatform/dotnet-docs-samples/tree/master/applications/
googlehome-meets-dotnetcontainers
Ian Talarico
Software Engineer at Google
talarico@google.com
4. 4
Google Home + ASP.NET Core on Google Cloud
Google
Home
Mini
Google
Assistant
Dialogflow
ASP.NET Core App
App
Engine/GKE
Vision API BigQuery
Stackdriver
Search
HTTPS
8. Confidential & Proprietary
is also a channel for Google Assistant
Build Actions on Google (AoG)
● Create AoG developer project
and Dialogflow agent
● The agent contains all the
intents that define your app
● Ideal for customer support
10. 10
Google Home + ASP.NET Core on Google Cloud
Google
Home
Mini
Google
Assistant
Dialogflow
ASP.NET Core App
App
Engine/GKE
Vision API BigQuery
Stackdriver
Search
HTTPS
15. .NET Containers on Google Cloud
App Engine Flex and Google Kubernetes Engine (GKE)
16. Confidential & Proprietary
What is a container?
Lightweight
Hermetically sealed
Isolated
Easily deployable
Introspectable
Composable
Linux (or Windows) processes
A lightweight way to virtualize applications
17. Confidential & Proprietary
.NET Deployment Options
Compute Engine App Engine
flex
Kubernetes
Engine
ASP.NET on Windows Containerised ASP.NET Core on Linux
18. Confidential & Proprietary
SQL Server, Libraries and Tools
.NET libraries for Google Cloud on NuGet
Compute Engine
Visual Studio plugin for Google Cloud on Visual
Studio Gallery
PowerShell cmdlets for Google Cloud as part of
Google Cloud SDK
Microsoft SQL Server
19. Confidential & Proprietary
App Engine (flex)
Deploy your container and let App Engine figure out how to scale it
Dashboards
Versioning
Traffic splitting
Autoscaling
20. Confidential & Proprietary
Kubernetes
Κυβερνήτης means “governor”
• Manages container clusters
• Inspired and informed by Google’s internal
container system called Borg
• Supports multiple cloud and bare-metal
environments
• 100% Open source, written in Go
Manage applications, not machines
21. Confidential & Proprietary
Compute Engine
Full control: VMs for Linux and Windows Server
App Engine
Deploy your code and we scale it for you
Cloud Functions
A serverless platform for event-based microservices
Google Kubernetes Engine (GKE)
Kubernetes-as-a-service
22. 22
$ gcloud container clusters create cluster-1
Creating cluster cluster-1...done.
Created [https://container.googleapis.com/v1/projects/sandbox/zones/europe-west1-c/clusters/cluster-1].
kubeconfig entry generated for cluster-1.
NAME ZONE MASTER_VERSION MASTER_IP MACHINE_TYPE NODE_VERSION NUM_NODES STATUS
cluster-1 europe-west1-c 1.4.6 104.199.87.107 n1-standard-1 1.4.6 3 RUNNING
$ gcloud container clusters get-credentials cluster-1
Fetching cluster endpoint and auth data.
kubeconfig entry generated for cluster-1.
$ kubectl get nodes
NAME STATUS AGE
gke-cluster-1-default-pool-6c50430d-chjm Ready 2m
gke-cluster-1-default-pool-6c50430d-esqq Ready 2m
gke-cluster-1-default-pool-6c50430d-zfm9 Ready 2m
$ kubectl get pods
$
$ gcloud container clusters resize cluster-1 --size 5
Pool [default-pool] for [cluster-1] will be resized to 5.
Resizing cluster-1...done.
Updated [https://container.googleapis.com/v1/projects/sandbox/zones/europe-west1-c/clusters/cluster-1].
25. Using Models: Machine Learning APIs
Cloud Speech API Cloud Vision API
Cloud Translate API
Cloud Natural Language API Cloud Video Intelligence
Cloud Jobs API
26. 26
Google Home + ASP.NET Core on Google Cloud
Google
Home
Mini
Google
Assistant
Dialogflow
ASP.NET Core App
App
Engine/GKE
Vision API BigQuery
Stackdriver
Search
HTTPS
27. Confidential & Proprietary
BigQuery = Massively Parallel Processing query
with the petabit network and thousands of servers
SQL QueryPetabit Network
BigQuery
Storage Compute
Streaming Ingest
Fast Batch Load
28. 28
Google Home + ASP.NET Core on Google Cloud
Google
Home
Mini
Google
Assistant
Dialogflow
ASP.NET Core App
App
Engine/GKE
Vision API BigQuery
Stackdriver
Search
HTTPS
30. Confidential & Proprietary
Monitoring Logging
Error Reporting Trace
Debug
SaaS package for monitoring,
logging, and diagnostics that
helps you gain insight into
applications that run on Google
Cloud Platform and Amazon
Web Services™. .
31. 31
Google Home + ASP.NET Core + Kubernetes/GKE
Google
Home
Mini
Google
Assistant
Dialogflow
ASP.NET Core App
Kubernetes
Engine
Vision API BigQuery
Stackdriver
Search
HTTPS
32. Confidential & Proprietary
Thank you!
Mete Atamel
@meteatamel
https://github.com/GoogleCloudPlatform/dotnet-docs-samples/tree/master/applications/
googlehome-meets-dotnetcontainers
Ian Talarico
talarico@google.com
http://bit.ly/gcp-itcamp
33. Confidential & Proprietary
Thank you!
Mete Atamel
@meteatamel
https://github.com/GoogleCloudPlatform/dotnet-docs-samples/tree/master/applications/
googlehome-meets-dotnetcontainers
Ian Talarico
talarico@google.com
http://bit.ly/gcp-ndcoslo