Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introduction to Google Cloud Platform

Introduction to Google Cloud Platform

An introduction and discussion of a few points in Google Cloud Platform.

6c18ceafef161be26ae441469b29c475?s=128

Terrence Ryan

May 14, 2015
Tweet

Transcript

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

    Platform
  2. ‹#› @tpryan Who are you?

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

  4. ‹#›

  5. ‹#›

  6. ‹#›

  7. ‹#›

  8. @tpryan ‹#› Google Cloud Platform

  9. @tpryan ‹#› Google Cloud Platform Compute

  10. @tpryan ‹#› Google Cloud Platform Compute Storage

  11. @tpryan ‹#› Google Cloud Platform Compute Connectivity Storage

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

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

    Management
  14. @tpryan ‹#› Google Cloud Platform Compute Connectivity Big Data Storage

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

    Developer Tools Management Machine Learning
  16. ‹#› ‹#› @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
  17. ‹#› ‹#› @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
  18. ‹#› ‹#› @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
  19. ‹#› @tpryan What’s the difference?

  20. ‹#› @tpryan Difference Scale Pricing Services

  21. ‹#› @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
  22. ‹#› @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
  23. ‹#› @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
  24. ‹#› @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
  25. @tpryan ‹#› Google Cloud Platform Compute Connectivity Big Data Storage

    Developer Tools Management Machine Learning
  26. ‹#› @tpryan Highlight Compute Engine

  27. ‹#› @tpryan Highlight App Engine Compute Engine

  28. ‹#› @tpryan Highlight App Engine BigQuery Compute Engine

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

  30. ‹#› @tpryan • Platform as a Service • Built in

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

    services • Auto Scaling • Supports: App Engine Python Java PHP Go Ruby Node Containers
  32. ‹#› @tpryan App Engine

  33. ‹#› @tpryan App Engine User Sessions

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

  35. ‹#› @tpryan App Engine Avg Server 86 M Popular Site

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

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

    500 M Wikipedia 15 B App Engine User Sessions
  38. ‹#› @tpryan App Engine App Engine 100 B Avg 


    Server 86 M Popular Site 500 M Wikipedia 15 B User Sessions
  39. ‹#› @tpryan SongPop • Casual Game • 6 Engineers

  40. ‹#› @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
  41. ‹#› @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
  42. ‹#› @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
  43. ‹#› @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
  44. ‹#› @tpryan More Customers

  45. ‹#› @tpryan Demo: App Engine Scaling

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

  47. ‹#› @tpryan What is a computer?

  48. ‹#› @tpryan What is a computer?

  49. ‹#› @tpryan What is a Virtual Machine?

  50. ‹#› @tpryan What is a Virtual Machine?

  51. @briandorsey GCE instances are better VMs

  52. ‹#› @tpryan GCE Instance are better • Google Network •

    Fast Spin up • High Bandwidth • Consistent • Storage Options • Standard • SSD • Attached SSD
  53. ‹#› @tpryan Billing • Per minute billing • Sustained use

    discounts • Preemptible VMs
  54. @briandorsey ML based usage alerts

  55. ‹#› @tpryan Demo: Compute Engine Ease

  56. ‹#› @tpryan 04 BigQuery BigData as a Service

  57. ‹#› @tpryan Big Query

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

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

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

    Use SQLish Queries • REST, Web UI, ODBC
  61. ‹#› @tpryan Demo: BigQuery

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

  63. @tpryan Count to a Million SELECT sum(requests) as total FROM

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

    [fh-bigquery:wikipedia.pagecounts_201505]
  65. @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}$")')
  66. @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.*'))
  67. ‹#› @tpryan 05 Conclusions Bring it home

  68. @tpryan ‹#› Google Cloud Platform Compute Connectivity Big Data Storage

    Developer Tools Management Machine Learning
  69. ‹#› @tpryan Story Compute Engine

  70. ‹#› @tpryan Story App Engine Compute Engine

  71. ‹#› @tpryan Story App Engine BigQuery Compute Engine

  72. ‹#› @tpryan Cloud Vision

  73. ‹#› @tpryan Cloud Storage Nearline

  74. ‹#› @tpryan Container Engine

  75. ‹#› @tpryan Container Engine

  76. ‹#› @tpryan Container Engine

  77. ‹#› @tpryan Container Engine

  78. ‹#› @tpryan Cloud PUB/SUB

  79. ‹#› @tpryan Stackdriver

  80. ‹#› @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
  81. ‹#›

  82. ‹#›

  83. ‹#› Your App Here

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

  85. ‹#› @tpryan Kubernetes

  86. ‹#› @tpryan Kubernetes • Container Orchestration System

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

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

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

    • Started by Google • Contributed to by others
  90. ‹#› @tpryan What problem are 
 we trying to solve?

  91. ‹#› @tpryan # FRONTEND AND SERVICES FROM nginx-php-fpm COPY nginx.conf

    /etc/nginx/nginx.conf ADD www /var/www/
  92. ‹#› @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"]
  93. ‹#› @tpryan

  94. ‹#› @tpryan

  95. ‹#› @tpryan

  96. ‹#› @tpryan # FRONTEND AND SERVICES FROM nginx-php-fpm COPY nginx.conf

    /etc/nginx/nginx.conf ADD www /var/www/
  97. ‹#› @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/
  98. ‹#› @tpryan # FRONTEND AND SERVICES FROM nginx-php-fpm COPY nginx.conf

    /etc/nginx/nginx.conf ADD www /var/www/
  99. ‹#› @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/
  100. ‹#› @tpryan

  101. ‹#› @tpryan

  102. ‹#› @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"]
  103. ‹#› @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"]
  104. ‹#› @tpryan

  105. ‹#› @tpryan

  106. ‹#› @tpryan

  107. ‹#› @tpryan

  108. ‹#› @tpryan

  109. ‹#› @tpryan

  110. ‹#› @tpryan

  111. ‹#› @tpryan

  112. ‹#› @tpryan

  113. ‹#› @tpryan

  114. ‹#› @tpryan

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

  116. ‹#› @tpryan

  117. ‹#› @tpryan 4 3 2

  118. ‹#› @tpryan Demo: Kubernetes in Action

  119. ‹#› @tpryan Before the demo

  120. ‹#› @tpryan Before the demo

  121. ‹#› @tpryan Before the demo

  122. ‹#› @tpryan Before the demo

  123. ‹#› @tpryan Before the demo

  124. ‹#› @tpryan Before the demo

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

  126. ‹#› @tpryan

  127. ‹#› @tpryan Demo: Kubernetes in Action

  128. ‹#› @tpryan Setting up a cluster

  129. ‹#› @tpryan Setting up a cluster • Choose an infrastructure:

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

    • Google Cloud Platform, AWS, Azure, Rackspace, on-premises, …
  131. ‹#› @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, ...
  132. ‹#› @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, ...
  133. ‹#› @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, ...
  134. ‹#› @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, ...
  135. ‹#› @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, ...
  136. ‹#› @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, ...
  137. ‹#› @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...
  138. ‹#› @tpryan Or…

  139. ‹#› @tpryan

  140. ‹#› @tpryan `