Slide 1

Slide 1 text

‹#› @tpryan Terrence Ryan Developer Advocate Introduction to Google Cloud Platform

Slide 2

Slide 2 text

‹#› @tpryan Who are you?

Slide 3

Slide 3 text

‹#› @tpryan 01 Introduction What is Google Cloud Platform

Slide 4

Slide 4 text

‹#›

Slide 5

Slide 5 text

‹#›

Slide 6

Slide 6 text

‹#›

Slide 7

Slide 7 text

‹#›

Slide 8

Slide 8 text

@tpryan ‹#› Google Cloud Platform

Slide 9

Slide 9 text

@tpryan ‹#› Google Cloud Platform Compute

Slide 10

Slide 10 text

@tpryan ‹#› Google Cloud Platform Compute Storage

Slide 11

Slide 11 text

@tpryan ‹#› Google Cloud Platform Compute Connectivity Storage

Slide 12

Slide 12 text

@tpryan ‹#› Google Cloud Platform Compute Connectivity Storage Management

Slide 13

Slide 13 text

@tpryan ‹#› Google Cloud Platform Compute Connectivity Storage Developer Tools Management

Slide 14

Slide 14 text

@tpryan ‹#› Google Cloud Platform Compute Connectivity Big Data Storage Developer Tools Management

Slide 15

Slide 15 text

@tpryan ‹#› Google Cloud Platform Compute Connectivity Big Data Storage Developer Tools Management Machine Learning

Slide 16

Slide 16 text

‹#› ‹#› @tpryan Cloud Bingo B I N G O Virtual Machine PAAS Storage No Ops Dev Ops IAAS Container Logging SQL NoSQL Big Data Load Balancer CDN Scale Latency VPN SSD Terabyte CLOUD Microservices Mobile Data Center Client Data HTTPS

Slide 17

Slide 17 text

‹#› ‹#› @tpryan • Did we hit all of the buzzwords? Cloud Bingo B I N G O Virtual Machine PAAS Storage No Ops Dev Ops IAAS Container Logging SQL NoSQL Big Data Load Balancer CDN Scale Latency VPN SSD Terabyte CLOUD Microservices Mobile Data Center Client Data HTTPS

Slide 18

Slide 18 text

‹#› ‹#› @tpryan • Did we hit all of the buzzwords? • Did we say “Cloud” Enough? Cloud Bingo B I N G O Virtual Machine PAAS Storage No Ops Dev Ops IAAS Container Logging SQL NoSQL Big Data Load Balancer CDN Scale Latency VPN SSD Terabyte CLOUD Microservices Mobile Data Center Client Data HTTPS

Slide 19

Slide 19 text

‹#› @tpryan What’s the difference?

Slide 20

Slide 20 text

‹#› @tpryan Difference Scale Pricing Services

Slide 21

Slide 21 text

‹#› @tpryan CDN IAAS Security VPN Storage Cloud NoOps Data Center PAAS Load Balancing Logging DevOps Microservices NoSQL SQL Virtual Machine Mobile Latency Difference Scale Pricing Services

Slide 22

Slide 22 text

‹#› @tpryan Security Storage Data Center PAAS Load Balancing Logging DevOps Microservices NoSQL Virtual Machine Mobile Latency CDN IAAS Security VPN Storage Cloud NoOps Data Center PAAS Load Balancing Logging DevOps Microservices NoSQL SQL Virtual Machine Mobile Latency Difference CDN IAAS VPN Cloud NoOps SQL Scale Pricing Services

Slide 23

Slide 23 text

‹#› @tpryan Security Storage Data Center PAAS Load Balancing Logging DevOps Microservices NoSQL Virtual Machine Mobile Latency CDN IAAS Security VPN Storage Cloud NoOps Data Center PAAS Load Balancing Logging DevOps Microservices NoSQL SQL Virtual Machine Mobile Latency Difference CDN IAAS VPN Cloud NoOps SQL Scale Pricing Services CDN IAAS Security VPN Storage Cloud NoOps Scale Data Center PAAS Load Balancing Logging DevOps Microservices NoSQL SQL Virtual Machine Mobile Latency Cloud IAAS VPN

Slide 24

Slide 24 text

‹#› @tpryan Security Storage Data Center PAAS Load Balancing Logging DevOps Microservices NoSQL Virtual Machine Mobile Latency CDN IAAS Security VPN Storage Cloud NoOps Data Center PAAS Load Balancing Logging DevOps Microservices NoSQL SQL Virtual Machine Mobile Latency Difference CDN IAAS VPN Cloud NoOps SQL Scale Pricing Services CDN IAAS Security VPN Storage Cloud NoOps Scale Data Center PAAS Load Balancing Logging DevOps Microservices NoSQL SQL Virtual Machine Mobile Latency Cloud IAAS VPN

Slide 25

Slide 25 text

@tpryan ‹#› Google Cloud Platform Compute Connectivity Big Data Storage Developer Tools Management Machine Learning

Slide 26

Slide 26 text

‹#› @tpryan Highlight Compute Engine

Slide 27

Slide 27 text

‹#› @tpryan Highlight App Engine Compute Engine

Slide 28

Slide 28 text

‹#› @tpryan Highlight App Engine BigQuery Compute Engine

Slide 29

Slide 29 text

‹#› @tpryan 02 App Engine Platform as a Service

Slide 30

Slide 30 text

‹#› @tpryan • Platform as a Service • Built in services • Auto Scaling • Supports: App Engine Python Java PHP Go

Slide 31

Slide 31 text

‹#› @tpryan • Platform as a Service • Built in services • Auto Scaling • Supports: App Engine Python Java PHP Go Ruby Node Containers

Slide 32

Slide 32 text

‹#› @tpryan App Engine

Slide 33

Slide 33 text

‹#› @tpryan App Engine User Sessions

Slide 34

Slide 34 text

‹#› @tpryan App Engine Avg Server 86 M User Sessions

Slide 35

Slide 35 text

‹#› @tpryan App Engine Avg Server 86 M Popular Site 500 M User Sessions

Slide 36

Slide 36 text

‹#› @tpryan App Engine Avg Server 86 M Popular Site 500 M Wikipedia 15 B User Sessions

Slide 37

Slide 37 text

‹#› @tpryan App Engine Avg Server 86 M Popular Site 500 M Wikipedia 15 B App Engine User Sessions

Slide 38

Slide 38 text

‹#› @tpryan App Engine App Engine 100 B Avg 
 Server 86 M Popular Site 500 M Wikipedia 15 B User Sessions

Slide 39

Slide 39 text

‹#› @tpryan SongPop • Casual Game • 6 Engineers

Slide 40

Slide 40 text

‹#› @tpryan SongPop 100 400,075 800,050 1,200,025 1,600,000 May 2012 July 2012 Sept 2012 December 2012 500,000 1,500,000 100,000 500,000 100,000

Slide 41

Slide 41 text

‹#› @tpryan SongPop 100 400,075 800,050 1,200,025 1,600,000 May 2012 July 2012 Sept 2012 December 2012 500,000 1,500,000 100,000 500,000 100,000 100,000 
 Daily Active Users Opened a premier account

Slide 42

Slide 42 text

‹#› @tpryan SongPop 100 400,075 800,050 1,200,025 1,600,000 May 2012 July 2012 Sept 2012 December 2012 500,000 1,500,000 100,000 500,000 100,000 100,000 
 Daily Active Users Opened a premier account 500,000 Daily Active Users Tweaked caching and datamodel

Slide 43

Slide 43 text

‹#› @tpryan SongPop 100 400,075 800,050 1,200,025 1,600,000 May 2012 July 2012 Sept 2012 December 2012 500,000 1,500,000 100,000 500,000 100,000 100,000 
 Daily Active Users Opened a premier account 500,000 Daily Active Users Tweaked caching and datamodel 1,500,000 Daily Active Users Adjusted Indices

Slide 44

Slide 44 text

‹#› @tpryan More Customers

Slide 45

Slide 45 text

‹#› @tpryan Demo: App Engine Scaling

Slide 46

Slide 46 text

‹#› @tpryan 03 Compute Engine Infrastructure as a Service

Slide 47

Slide 47 text

‹#› @tpryan What is a computer?

Slide 48

Slide 48 text

‹#› @tpryan What is a computer?

Slide 49

Slide 49 text

‹#› @tpryan What is a Virtual Machine?

Slide 50

Slide 50 text

‹#› @tpryan What is a Virtual Machine?

Slide 51

Slide 51 text

@briandorsey GCE instances are better VMs

Slide 52

Slide 52 text

‹#› @tpryan GCE Instance are better • Google Network • Fast Spin up • High Bandwidth • Consistent • Storage Options • Standard • SSD • Attached SSD

Slide 53

Slide 53 text

‹#› @tpryan Billing • Per minute billing • Sustained use discounts • Preemptible VMs

Slide 54

Slide 54 text

@briandorsey ML based usage alerts

Slide 55

Slide 55 text

‹#› @tpryan Demo: Compute Engine Ease

Slide 56

Slide 56 text

‹#› @tpryan 04 BigQuery BigData as a Service

Slide 57

Slide 57 text

‹#› @tpryan Big Query

Slide 58

Slide 58 text

‹#› @tpryan Big Query • Scan Terabytes in seconds

Slide 59

Slide 59 text

‹#› @tpryan Big Query • Scan Terabytes in seconds • Use SQLish Queries

Slide 60

Slide 60 text

‹#› @tpryan Big Query • Scan Terabytes in seconds • Use SQLish Queries • REST, Web UI, ODBC

Slide 61

Slide 61 text

‹#› @tpryan Demo: BigQuery

Slide 62

Slide 62 text

@tpryan Count Shakespeare SELECT count(word) FROM publicdata:samples.shakespeare

Slide 63

Slide 63 text

@tpryan Count to a Million SELECT sum(requests) as total FROM [fh-bigquery:wikipedia.pagecounts_20151109_18]

Slide 64

Slide 64 text

@tpryan Count to a Billion SELECT sum(requests) as total FROM [fh-bigquery:wikipedia.pagecounts_201505]

Slide 65

Slide 65 text

@tpryan Count to a Trillion SELECT SUM(requests) AS total FROM TABLE_QUERY( [fh-bigquery:wikipedia], 'REGEXP_MATCH( table_id, r"pagecounts_201[3-4][0-9]{2}$")')

Slide 66

Slide 66 text

@tpryan Run a RegEx on a Hundreds of Billions SELECT SUM(requests) AS total FROM TABLE_QUERY( [fh-bigquery:wikipedia], 'REGEXP_MATCH( table_id, r"pagecounts_201[3-4][0-9]{2}$")') WHERE (REGEXP_MATCH(title, '.*[dD]inosaur.*'))

Slide 67

Slide 67 text

‹#› @tpryan 05 Conclusions Bring it home

Slide 68

Slide 68 text

@tpryan ‹#› Google Cloud Platform Compute Connectivity Big Data Storage Developer Tools Management Machine Learning

Slide 69

Slide 69 text

‹#› @tpryan Story Compute Engine

Slide 70

Slide 70 text

‹#› @tpryan Story App Engine Compute Engine

Slide 71

Slide 71 text

‹#› @tpryan Story App Engine BigQuery Compute Engine

Slide 72

Slide 72 text

‹#› @tpryan Cloud Vision

Slide 73

Slide 73 text

‹#› @tpryan Cloud Storage Nearline

Slide 74

Slide 74 text

‹#› @tpryan Container Engine

Slide 75

Slide 75 text

‹#› @tpryan Container Engine

Slide 76

Slide 76 text

‹#› @tpryan Container Engine

Slide 77

Slide 77 text

‹#› @tpryan Container Engine

Slide 78

Slide 78 text

‹#› @tpryan Cloud PUB/SUB

Slide 79

Slide 79 text

‹#› @tpryan Stackdriver

Slide 80

Slide 80 text

‹#› @tpryan Security Storage Data Center PAAS Load Balancing Logging DevOps Microservices NoSQL Virtual Machine Mobile Latency CDN IAAS Security VPN Storage Cloud NoOps Data Center PAAS Load Balancing Logging DevOps Microservices NoSQL SQL Virtual Machine Mobile Latency Difference CDN IAAS VPN Cloud NoOps SQL Scale Pricing Services CDN IAAS Security VPN Storage Cloud NoOps Scale Data Center PAAS Load Balancing Logging DevOps Microservices NoSQL SQL Virtual Machine Mobile Latency Cloud IAAS VPN

Slide 81

Slide 81 text

‹#›

Slide 82

Slide 82 text

‹#›

Slide 83

Slide 83 text

‹#› Your App Here

Slide 84

Slide 84 text

‹#› @tpryan Thank You terrenceryan.com @tpryan This preso: http://bit.ly/tpryan-gcp

Slide 85

Slide 85 text

‹#› @tpryan Kubernetes

Slide 86

Slide 86 text

‹#› @tpryan Kubernetes • Container Orchestration System

Slide 87

Slide 87 text

‹#› @tpryan Kubernetes • Container Orchestration System • Open Source

Slide 88

Slide 88 text

‹#› @tpryan Kubernetes • Container Orchestration System • Open Source • Started by Google

Slide 89

Slide 89 text

‹#› @tpryan Kubernetes • Container Orchestration System • Open Source • Started by Google • Contributed to by others

Slide 90

Slide 90 text

‹#› @tpryan What problem are 
 we trying to solve?

Slide 91

Slide 91 text

‹#› @tpryan # FRONTEND AND SERVICES FROM nginx-php-fpm COPY nginx.conf /etc/nginx/nginx.conf ADD www /var/www/

Slide 92

Slide 92 text

‹#› @tpryan # BACKEND FROM ubuntu:12.04 ADD ./mysql-setup.sh /tmp/mysql-setup.sh RUN /bin/sh /tmp/mysql-setup.sh EXPOSE 3306 CMD ["/usr/sbin/mysqld"]

Slide 93

Slide 93 text

‹#› @tpryan

Slide 94

Slide 94 text

‹#› @tpryan

Slide 95

Slide 95 text

‹#› @tpryan

Slide 96

Slide 96 text

‹#› @tpryan # FRONTEND AND SERVICES FROM nginx-php-fpm COPY nginx.conf /etc/nginx/nginx.conf ADD www /var/www/

Slide 97

Slide 97 text

‹#› @tpryan # FRONTEND AND SERVICES FROM nginx-php-fpm COPY nginx.conf /etc/nginx/nginx.conf ADD www /var/www/ # JUST SERVICES FROM nginx-php-fpm COPY nginx.conf /etc/nginx/nginx.conf ADD www /var/www/

Slide 98

Slide 98 text

‹#› @tpryan # FRONTEND AND SERVICES FROM nginx-php-fpm COPY nginx.conf /etc/nginx/nginx.conf ADD www /var/www/

Slide 99

Slide 99 text

‹#› @tpryan # FRONTEND AND SERVICES FROM nginx-php-fpm COPY nginx.conf /etc/nginx/nginx.conf ADD www /var/www/ # FRONTEND FROM nginx COPY nginx.conf /etc/nginx/nginx.conf ADD www /var/www/

Slide 100

Slide 100 text

‹#› @tpryan

Slide 101

Slide 101 text

‹#› @tpryan

Slide 102

Slide 102 text

‹#› @tpryan # BACKEND FROM ubuntu:12.04 ADD ./mysql-setup.sh /tmp/mysql-setup.sh RUN /bin/sh /tmp/mysql-setup.sh EXPOSE 3306 CMD ["/usr/sbin/mysqld"]

Slide 103

Slide 103 text

‹#› @tpryan # BACKEND FROM ubuntu:12.04 ADD ./mysql-setup.sh /tmp/mysql-setup.sh RUN /bin/sh /tmp/mysql-setup.sh EXPOSE 3306 CMD ["/usr/sbin/mysqld"] # BACKEND FROM ubuntu:12.04 ADD ./mysql-setup.sh /tmp/mysql-setup.sh RUN /bin/sh /tmp/mysql-setup.sh EXPOSE 3306 VOLUME ["/etc/mysql", "/var/lib/mysql"] CMD ["/usr/sbin/mysqld"]

Slide 104

Slide 104 text

‹#› @tpryan

Slide 105

Slide 105 text

‹#› @tpryan

Slide 106

Slide 106 text

‹#› @tpryan

Slide 107

Slide 107 text

‹#› @tpryan

Slide 108

Slide 108 text

‹#› @tpryan

Slide 109

Slide 109 text

‹#› @tpryan

Slide 110

Slide 110 text

‹#› @tpryan

Slide 111

Slide 111 text

‹#› @tpryan

Slide 112

Slide 112 text

‹#› @tpryan

Slide 113

Slide 113 text

‹#› @tpryan

Slide 114

Slide 114 text

‹#› @tpryan

Slide 115

Slide 115 text

‹#› @tpryan That’s a lot to manage.

Slide 116

Slide 116 text

‹#› @tpryan

Slide 117

Slide 117 text

‹#› @tpryan 4 3 2

Slide 118

Slide 118 text

‹#› @tpryan Demo: Kubernetes in Action

Slide 119

Slide 119 text

‹#› @tpryan Before the demo

Slide 120

Slide 120 text

‹#› @tpryan Before the demo

Slide 121

Slide 121 text

‹#› @tpryan Before the demo

Slide 122

Slide 122 text

‹#› @tpryan Before the demo

Slide 123

Slide 123 text

‹#› @tpryan Before the demo

Slide 124

Slide 124 text

‹#› @tpryan Before the demo

Slide 125

Slide 125 text

‹#› @tpryan PHP & NGINX Frontend & API Mysql Backend

Slide 126

Slide 126 text

‹#› @tpryan

Slide 127

Slide 127 text

‹#› @tpryan Demo: Kubernetes in Action

Slide 128

Slide 128 text

‹#› @tpryan Setting up a cluster

Slide 129

Slide 129 text

‹#› @tpryan Setting up a cluster • Choose an infrastructure: • Google Cloud Platform, AWS, Azure, Rackspace, on-premises, …

Slide 130

Slide 130 text

‹#› @tpryan Setting up a cluster • Choose an infrastructure: • Google Cloud Platform, AWS, Azure, Rackspace, on-premises, …

Slide 131

Slide 131 text

‹#› @tpryan Setting up a cluster • Choose an infrastructure: • Google Cloud Platform, AWS, Azure, Rackspace, on-premises, … • Choose a node OS: • CoreOS, Atomic, RHEL, Debian, CentOS, Ubuntu, ...

Slide 132

Slide 132 text

‹#› @tpryan Setting up a cluster • Choose an infrastructure: • Google Cloud Platform, AWS, Azure, Rackspace, on-premises, … • Choose a node OS: • CoreOS, Atomic, RHEL, Debian, CentOS, Ubuntu, ... • Provision machines: • Boot VMs, install and run kube components, ...

Slide 133

Slide 133 text

‹#› @tpryan Setting up a cluster • Choose an infrastructure: • Google Cloud Platform, AWS, Azure, Rackspace, on-premises, … • Choose a node OS: • CoreOS, Atomic, RHEL, Debian, CentOS, Ubuntu, ... • Provision machines: • Boot VMs, install and run kube components, ...

Slide 134

Slide 134 text

‹#› @tpryan Setting up a cluster • Choose an infrastructure: • Google Cloud Platform, AWS, Azure, Rackspace, on-premises, … • Choose a node OS: • CoreOS, Atomic, RHEL, Debian, CentOS, Ubuntu, ... • Provision machines: • Boot VMs, install and run kube components, ... • Configure networking: • IP ranges for Pods, Services, SDN, ...

Slide 135

Slide 135 text

‹#› @tpryan Setting up a cluster • Choose an infrastructure: • Google Cloud Platform, AWS, Azure, Rackspace, on-premises, … • Choose a node OS: • CoreOS, Atomic, RHEL, Debian, CentOS, Ubuntu, ... • Provision machines: • Boot VMs, install and run kube components, ... • Configure networking: • IP ranges for Pods, Services, SDN, ...

Slide 136

Slide 136 text

‹#› @tpryan Setting up a cluster • Choose an infrastructure: • Google Cloud Platform, AWS, Azure, Rackspace, on-premises, … • Choose a node OS: • CoreOS, Atomic, RHEL, Debian, CentOS, Ubuntu, ... • Provision machines: • Boot VMs, install and run kube components, ... • Configure networking: • IP ranges for Pods, Services, SDN, ... • Start cluster services: • DNS, logging, monitoring, ...

Slide 137

Slide 137 text

‹#› @tpryan Setting up a cluster • Choose an infrastructure: • Google Cloud Platform, AWS, Azure, Rackspace, on-premises, … • Choose a node OS: • CoreOS, Atomic, RHEL, Debian, CentOS, Ubuntu, ... • Provision machines: • Boot VMs, install and run kube components, ... • Configure networking: • IP ranges for Pods, Services, SDN, ... • Start cluster services: • DNS, logging, monitoring, ... • Manage nodes: • kernel upgrades, OS updates, hardware failures...

Slide 138

Slide 138 text

‹#› @tpryan Or…

Slide 139

Slide 139 text

‹#› @tpryan

Slide 140

Slide 140 text

‹#› @tpryan `