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

Blurring the Paas/IaaS Divide (Cloud Developer Roadshow 2014)

Blurring the Paas/IaaS Divide (Cloud Developer Roadshow 2014)

Whether to use IaaS or Paas is often seen as a binary choice, but it doesn't have to be with Google Cloud Platform. Here we demonstrate a technology named Managed VMs through the use of a Sudoku Solver app. This deck was delivered during the Google Cloud Platform Developer Roadshow events in 2014.

GoogleCloudPlatform

August 20, 2014
Tweet

More Decks by GoogleCloudPlatform

Other Decks in Technology

Transcript

  1. Blurring the IaaS/PaaS Divide
    Google Cloud Platform Developer Roadshow - 2014

    View Slide

  2. PaaS
    IaaS
    Your code
    Today: Cloud as a binary choice
    Your code
    Flexibility Agility

    View Slide

  3. Next Gen Cloud
    Auto-Managed
    Open / Flexible
    Productive
    Flexibility Management
    and

    View Slide

  4. • Flexibility of Compute Engine
    • Access to native resources, machine types
    • Auto-management of App Engine
    • High Availability
    • Image updates, security patches
    • Access to all Managed Services
    • Collocation with other services
    • Developer productivity
    Managed VMs
    Virtualized hardware Abstracted computing
    power
    IaaS
    Infrastructure-as-a-Service
    PaaS
    Platform-as-a-Service
    Managed VMs

    View Slide

  5. Resource View
    create/
    destroy
    VM
    VM
    Replica Pools
    Replica Pool
    actuator
    VM
    Template
    image
    metadata
    bash cmds
    Load Balancer
    1 template ⇒ many machines

    View Slide

  6. Flexibility Agility
    Google Compute Engine
    Compute as a spectrum
    Your Code
    Manage your infrastructure

    View Slide

  7. Manage your infrastructure
    Flexibility Agility
    Google Compute Engine
    Your Code
    Compute as a spectrum
    Your Code
    Replica Pools Provisioning and health checking

    View Slide

  8. Manage your infrastructure
    Flexibility Agility
    Google Compute Engine
    Your Code
    Compute as a spectrum
    Replica Pools Provisioning and health checking
    Managed VMs OS management, deployments,
    logging and monitoring
    Your Code
    Your Code

    View Slide

  9. Manage your infrastructure
    Flexibility Agility
    Google Compute Engine
    Your Code
    Compute as a spectrum
    Replica Pools Provisioning and health checking
    Managed VMs OS management, deployments,
    logging and monitoring
    Your Code
    Your Code App Engine
    Managed
    Runtimes
    Manage your serving stack
    Your Code

    View Slide

  10. Managed VMs Demo

    View Slide

  11. Managed VMs Demo
    Sudoku Example
    5
    1
    7
    3
    9 3
    9
    8
    8
    2
    3
    6
    5
    7
    3
    4
    8
    7
    7
    5
    1 3
    9
    7
    2
    8
    8
    5
    1 8
    4
    9
    4
    6
    7 9
    3
    8
    4
    1

    View Slide

  12. OpenCV

    View Slide

  13. Peter Norvig’s Sudoku Solver

    View Slide

  14. ?

    View Slide

  15. Backend
    Managed VMs
    Frontend
    App Engine
    Sudoku architecture
    VM
    VM
    VM
    VM
    VM
    Task
    Queue

    View Slide

  16. application: compute-demo
    version: 1
    runtime: python27
    api_version: 1
    threadsafe: yes
    handlers:
    - url: /favicon\.ico
    static_files: favicon.ico
    upload: favicon\.ico
    - url: .*
    script: main.APP
    libraries:
    - name: webapp2
    version: "2.5.2"
    - name: jinja2
    version: latest
    app.yaml
    application: compute-demo
    version: 1
    module: solver
    runtime: python27
    vm: true
    api_version: 1
    threadsafe: yes
    handlers:
    - url: .*
    script: main_solver.APP
    libraries:
    - name: webapp2
    version: "2.5.2"
    vm_settings:
    machine_type: n1-standard-1
    apt_get_install: python-opencv
    backend.yaml

    View Slide

  17. application: compute-demo
    version: 1
    runtime: python27
    api_version: 1
    threadsafe: yes
    handlers:
    - url: /favicon\.ico
    static_files: favicon.ico
    upload: favicon\.ico
    - url: .*
    script: main.APP
    libraries:
    - name: webapp2
    version: "2.5.2"
    - name: jinja2
    version: latest
    app.yaml
    application: compute-demo
    version: 1
    module: solver
    runtime: python27
    vm: true
    api_version: 1
    threadsafe: yes
    handlers:
    - url: .*
    script: main_solver.APP
    libraries:
    - name: webapp2
    version: "2.5.2"
    vm_settings:
    machine_type: n1-standard-1
    apt_get_install: python-opencv
    backend.yaml

    View Slide

  18. $ gcloud preview app deploy .
    command line
    Deployment
    https://developers.google.com/cloud/sdk/gcloud-app

    View Slide

  19. Live Demo!

    View Slide

  20. Backend workers
    App Engine
    VM
    VM
    VM
    VM
    VM
    Task
    Queue
    Sudoku architecture

    View Slide

  21. from google.appengine.api import modules
    modules.set_num_instances(42)
    Python
    Application specific scaling
    https://developers.google.com/appengine/docs/python/modules/
    https://developers.google.com/appengine/docs/java/modules/

    View Slide

  22. $ git clone
    https://github.com/GoogleCloudPlatform/appengine-opencv-sudoku-python
    command line
    Clone from Github

    View Slide

  23. IaaS or PaaS is a false dichotomy
    Removing the split with great new technology
    This is only the beginning!
    1
    2
    3
    Summary
    https://developers.google.com/appengine/docs/managed-vms/
    http://goo.gl/ykbnsd

    View Slide

  24. cloud.google.com
    Images by Connie Zhou

    View Slide