Multi-tenancy in PaaS
 Server PaaS vs. Resource PaaS




        Dave Jilk
THE ESSENCE OF PAAS
Simplified PaaS Architecture
Developer




                    Application Code
Service




                        Platform
Why PaaS?
Application Developer Strengths   Not Application Developer Strengths
Writing application software      Real estate
Nerd humor                        Generators
                                  Bandwidth contracts
                                  Hardware and cabling
                                  Networks
                                  Operating systems
                                  Web servers
                                  Language runtimes
                                  Application servers
                                  Databases
                                  Security
Early PaaS




    Univac 1100, circa 1975
    Dial-up timesharing

    IDE: BASIC interpreter
    Code repository: Paper tape
MULTI-TENANCY
Gartner Multi-Tenancy Model



                  { Diagram from copyrighted Gartner materials }




Source: Y. Natis, Gartner Reference Model for Elasticity and Multitenancy, June 2012
My Multitenancy Model

           Name         Example
  Colocation       Equinix
  Virtualization   Rackspace Cloud
  Timesharing      GoDaddy
  Container        Heroku
  Tables           Force.com
Cloud Pyramid


           Shared Container+
SaaS

           Shared ?
PaaS



IaaS       Shared Hardware
A COMPARISON
Overall Comparison
                           Server PaaS             Resource PaaS
    Examples               EngineYard                  Heroku
  Multi-tenancy         Shared-hardware           Shared-container
Scaling granularity      Virtual machine            Resource unit
  Configurability       High to moderate          Moderate to low
    Portability       In: high Out: moderate    In: low Out: moderate
     Isolation              Hypervisor            Operating System
    Filesystem        Persistent or ephemeral    Ephemeral or none
      Pricing           per virtual machine       per resource unit
Heroku Architecture


                                     Dyno: Linux process

                                     Scaling: Parallel dynos
Diagram at:                          Isolation: Linux permissions
http://www.royans.net/arch/wp-
content/uploads/2010/01/image1.png
                                     Startup: ~2 seconds

                                     RAM Limit: 512 MB

                                     Response Timeout: 55 sec
Cloud Foundry Architecture

                                  Droplet: Linux user

                                  Scaling: Parallel droplets

Diagram at:                       Isolation: Linux Permissions
http://cloudstory.in/wp-
content/uploads/2012/01/cloudfo   Startup: variable
undry-architecture.png
                                  RAM Limit: as set

                                  Response Timeout: 30 sec
Engine Yard Architecture

                                    App Slave: Virtual machine

                                    Scaling: Parallel slaves

Diagram at:                         Isolation: Virtualization
https://support.cloud.engineyard.
com/attachments/token/mzorei9       Startup: provision + boot
u4eifiuu/?name=cluster_architect
ure.png                             RAM Limit: as available

                                    Response Timeout: n/a
Scalability
                         Server PaaS        Resource PaaS
  Scaling speed          Moderate                Fast
Resource increment       Moderate                Small
  Cost increment         Moderate                Small
    Scale limits         Restrictive           Moderate
Scaling algorithms   Application specific   General purpose



                                                Winner
Configurability
                           Server PaaS          Resource PaaS
     RAM limit        As available on server       Hard limit
Response time limit   Not explicitly limited       Hard limit
Technology stack      Supported options or     Supported options
                            custom
  Stack add-ons                Any             Supported options
Stack configuration          Flexible             Very limited
     Location           Potentially flexible         Fixed




                            Winner
Other issues to consider when selecting a
PaaS that have nothing to do with whether it is
      a Server PaaS or a Resource PaaS
• Language Support
  – Polyglot or single-language
• External tool support
  – Databases
  – IDE integration
• Application services support
  – Add-on marketplace
• Hybrid scaling support
THE FUTURE
Generic PaaS Architecture
    End Users                              Developer




Routing Service                          Controller




 Resource       Resource   Resource   Resource
   Unit           Unit       Unit       Unit

                           Resource   Resource
                             Unit       Unit
Compute Pool
Compute Unit Architectures

Server PaaS                Resource PaaS


 Virtual Machine            Process


    Virtual Machine            Process


       Virtual Machine             Process
Physical Machine           Virtual or Physical Machine


                   Timesharing!
Compute Unit Architecture
Application Server on Resource or Server PaaS


                   Thread


                       Thread
Example:
OpenShift                 Thread
+ JBoss
                  Application Server Process

                Virtual Machine

              Physical Machine
Synthesis
Server PaaS                     Resource PaaS
• “Inventory” of VMs            • Larger selection of
  running common                  technology stack
  base configurations             options and access to
  and resources                   configuration
• Emphasize                       parameters
  standardized                  • VM affinity in resource
  configurations for              units
  easier deployment             • Addition of
  and management                  application server
• Addition of                     functionality
  application server              (database
  functionality                   connection pooling,
                                  transactions,
                                  message queues)
Up 2012   dave jilk - multi-tenancy in paa s (distribution version)

Up 2012 dave jilk - multi-tenancy in paa s (distribution version)

  • 1.
    Multi-tenancy in PaaS Server PaaS vs. Resource PaaS Dave Jilk
  • 2.
  • 3.
    Simplified PaaS Architecture Developer Application Code Service Platform
  • 4.
    Why PaaS? Application DeveloperStrengths Not Application Developer Strengths Writing application software Real estate Nerd humor Generators Bandwidth contracts Hardware and cabling Networks Operating systems Web servers Language runtimes Application servers Databases Security
  • 5.
    Early PaaS Univac 1100, circa 1975 Dial-up timesharing IDE: BASIC interpreter Code repository: Paper tape
  • 6.
  • 7.
    Gartner Multi-Tenancy Model { Diagram from copyrighted Gartner materials } Source: Y. Natis, Gartner Reference Model for Elasticity and Multitenancy, June 2012
  • 8.
    My Multitenancy Model Name Example Colocation Equinix Virtualization Rackspace Cloud Timesharing GoDaddy Container Heroku Tables Force.com
  • 9.
    Cloud Pyramid Shared Container+ SaaS Shared ? PaaS IaaS Shared Hardware
  • 10.
  • 11.
    Overall Comparison Server PaaS Resource PaaS Examples EngineYard Heroku Multi-tenancy Shared-hardware Shared-container Scaling granularity Virtual machine Resource unit Configurability High to moderate Moderate to low Portability In: high Out: moderate In: low Out: moderate Isolation Hypervisor Operating System Filesystem Persistent or ephemeral Ephemeral or none Pricing per virtual machine per resource unit
  • 12.
    Heroku Architecture Dyno: Linux process Scaling: Parallel dynos Diagram at: Isolation: Linux permissions http://www.royans.net/arch/wp- content/uploads/2010/01/image1.png Startup: ~2 seconds RAM Limit: 512 MB Response Timeout: 55 sec
  • 13.
    Cloud Foundry Architecture Droplet: Linux user Scaling: Parallel droplets Diagram at: Isolation: Linux Permissions http://cloudstory.in/wp- content/uploads/2012/01/cloudfo Startup: variable undry-architecture.png RAM Limit: as set Response Timeout: 30 sec
  • 14.
    Engine Yard Architecture App Slave: Virtual machine Scaling: Parallel slaves Diagram at: Isolation: Virtualization https://support.cloud.engineyard. com/attachments/token/mzorei9 Startup: provision + boot u4eifiuu/?name=cluster_architect ure.png RAM Limit: as available Response Timeout: n/a
  • 15.
    Scalability Server PaaS Resource PaaS Scaling speed Moderate Fast Resource increment Moderate Small Cost increment Moderate Small Scale limits Restrictive Moderate Scaling algorithms Application specific General purpose Winner
  • 16.
    Configurability Server PaaS Resource PaaS RAM limit As available on server Hard limit Response time limit Not explicitly limited Hard limit Technology stack Supported options or Supported options custom Stack add-ons Any Supported options Stack configuration Flexible Very limited Location Potentially flexible Fixed Winner
  • 17.
    Other issues toconsider when selecting a PaaS that have nothing to do with whether it is a Server PaaS or a Resource PaaS • Language Support – Polyglot or single-language • External tool support – Databases – IDE integration • Application services support – Add-on marketplace • Hybrid scaling support
  • 18.
  • 19.
    Generic PaaS Architecture End Users Developer Routing Service Controller Resource Resource Resource Resource Unit Unit Unit Unit Resource Resource Unit Unit Compute Pool
  • 20.
    Compute Unit Architectures ServerPaaS Resource PaaS Virtual Machine Process Virtual Machine Process Virtual Machine Process Physical Machine Virtual or Physical Machine Timesharing!
  • 21.
    Compute Unit Architecture ApplicationServer on Resource or Server PaaS Thread Thread Example: OpenShift Thread + JBoss Application Server Process Virtual Machine Physical Machine
  • 22.
    Synthesis Server PaaS Resource PaaS • “Inventory” of VMs • Larger selection of running common technology stack base configurations options and access to and resources configuration • Emphasize parameters standardized • VM affinity in resource configurations for units easier deployment • Addition of and management application server • Addition of functionality application server (database functionality connection pooling, transactions, message queues)