Guy Korland
AGENDA


                 PaaS, Defined


            Different Paths to PaaS


                What’s Missing?


         A (Slightly) Different Approach
THE CLOUD STACK - RECAP




                              Manage
                          applications and
                              services



                           Provision
                          hosts/VMs
A PAAS TO SUCCESS?

“There is a difference between knowing the PaaS
and walking the PaaS…”
                     Morpheus (with slight adaptations…)




What do YOU expect
out of PaaS?
WHAT DO I EXPECT OUT OF PAAS?


             I want to deploy my app
         (regardless of the stack I’m using)
WHAT DOES PAAS REALLY MEAN?


     Without fiddling with tedious installations
                of OS & middleware
WHAT DOES PAAS REALLY MEAN?


           Or host setup & provisioning




                                          7
WHAT DOES PAAS REALLY MEAN?


But still maintain the same development practices, full
               visibility, control & security
WHAT DOES PAAS REALLY MEAN?


             I want to be productive!
MANY PATHS TO PAAS
MANY PATHS TO PAAS
GOOGLE APP ENGINE
CONTROL ASSUMPTIONS




   Servers                                    Application Code
   Operating system                             – Selecting the language and
                                                   stack of choice (Java/Python)
   Language (Java, Python, Go)
   Middleware stack (data store, app server, …)
   Architecture
   Scaling (Quotas: CPU, memory, network,..)
HEROKU
CONTROL ASSUMPTIONS




 Servers                                     Application Code
 Operating system                            Selecting the middleware
 Language                                     stack from a predefined list
        (Ruby/Java/Python/Scala/Clojure/NodeJS)
 Middleware stack (DB, app server, …)
    – Multiple choices, plugins
 Architecture
 Performance (Dyno)
AWS ELASTIC %
Control Assumptions


   Servers                              Application Code
   Operating system                     Selecting the middleware
   Language (Java, .NET, PHP)            stack (anything beyond Apache/IIS)
   Middleware stack (tomcat, RDS, …)    OS configuration (if you want)
    – Can be easily extended             Performance
 Architecture (Web)                     JVM tuning/configuration
 Storage
PRODUCTIVITY MYTHS

 You have to give up control for                   “…developing on GAE
  more simplicity                                   introduced such a
    Not always…
                                                    design complexity
                                                    that working around
                                                    it pushes us 5 months
 Less code = more productivity                     behind schedule.”
    Productivity is measured by units of
     features being delivered (not lines of code)

 Opinionated architectures
  (e.g. RoR/Grails) are extremely
  productive

                                                             Carlos Ble's post
                                                             Goodbye Google App Engine
Head to Head Comparison
GAE, Heroku                   Amazon
 Top-down sandbox             Bottom-up approach
  approach                     Designed for extreme
 Highly opinionated            simplicity with a
 Extreme simplicity at the     significantly higher degree
  expense of user control       of control




    Only “long tail”,               Fits a larger
  simple applications            spectrum of apps
BUT STILL…


 Current offerings are limited by
   The stacks they support
   The environment on which they run


 Is this enough?
So What Makes for
  the Ideal PaaS?
OPEN




       any Stack, any Cloud
         (& OpenSource)
NON-INTRUSIVE




        Your app stays as is, you shouldn’t
            change the way you code
EXTENSIBLE




   Role your own stacks & auto-scaling rules
MANY PATHS TO PAAS
MANY PATHS TO PAAS
CLOUDFOUNDRY




27
OPENSHIFT




28
THE CHALLENGE (REALITY CHECK)..


                                                 “Majority of businesses are
                                               planning to move their mission-
                                                critical apps to the cloud over
                                               the next two to five years” (HP
                                                      Survey amongst 940
                 Need                                     Responders)




           Only 5 percent have been able
           to migrate at least half of their
            applications to the cloud. By
                                                             Reality
          the end of 2012, that number is
              expected to rise to 20%
                (Cisco Survey , 1300
                    Responders)



29
CLOUDIFY




30
CLOUDIFY




31
GETTING STARTED…




32        ® Copyright 2012 GigaSpaces Ltd. All Rights Reserved
                                  32
Thank You!



33

The Open PaaS Stack

  • 1.
  • 2.
    AGENDA PaaS, Defined Different Paths to PaaS What’s Missing? A (Slightly) Different Approach
  • 3.
    THE CLOUD STACK- RECAP Manage applications and services Provision hosts/VMs
  • 4.
    A PAAS TOSUCCESS? “There is a difference between knowing the PaaS and walking the PaaS…” Morpheus (with slight adaptations…) What do YOU expect out of PaaS?
  • 5.
    WHAT DO IEXPECT OUT OF PAAS? I want to deploy my app (regardless of the stack I’m using)
  • 6.
    WHAT DOES PAASREALLY MEAN? Without fiddling with tedious installations of OS & middleware
  • 7.
    WHAT DOES PAASREALLY MEAN? Or host setup & provisioning 7
  • 8.
    WHAT DOES PAASREALLY MEAN? But still maintain the same development practices, full visibility, control & security
  • 9.
    WHAT DOES PAASREALLY MEAN? I want to be productive!
  • 10.
  • 11.
  • 12.
  • 13.
    CONTROL ASSUMPTIONS  Servers  Application Code  Operating system – Selecting the language and stack of choice (Java/Python)  Language (Java, Python, Go)  Middleware stack (data store, app server, …)  Architecture  Scaling (Quotas: CPU, memory, network,..)
  • 14.
  • 15.
    CONTROL ASSUMPTIONS  Servers  Application Code  Operating system  Selecting the middleware  Language stack from a predefined list (Ruby/Java/Python/Scala/Clojure/NodeJS)  Middleware stack (DB, app server, …) – Multiple choices, plugins  Architecture  Performance (Dyno)
  • 16.
  • 17.
    Control Assumptions  Servers  Application Code  Operating system  Selecting the middleware  Language (Java, .NET, PHP) stack (anything beyond Apache/IIS)  Middleware stack (tomcat, RDS, …)  OS configuration (if you want) – Can be easily extended  Performance  Architecture (Web)  JVM tuning/configuration  Storage
  • 18.
    PRODUCTIVITY MYTHS  Youhave to give up control for “…developing on GAE more simplicity introduced such a  Not always… design complexity that working around it pushes us 5 months  Less code = more productivity behind schedule.”  Productivity is measured by units of features being delivered (not lines of code)  Opinionated architectures (e.g. RoR/Grails) are extremely productive Carlos Ble's post Goodbye Google App Engine
  • 19.
    Head to HeadComparison GAE, Heroku Amazon  Top-down sandbox  Bottom-up approach approach  Designed for extreme  Highly opinionated simplicity with a  Extreme simplicity at the significantly higher degree expense of user control of control Only “long tail”, Fits a larger simple applications spectrum of apps
  • 20.
    BUT STILL…  Currentofferings are limited by  The stacks they support  The environment on which they run  Is this enough?
  • 21.
    So What Makesfor the Ideal PaaS?
  • 22.
    OPEN any Stack, any Cloud (& OpenSource)
  • 23.
    NON-INTRUSIVE Your app stays as is, you shouldn’t change the way you code
  • 24.
    EXTENSIBLE Role your own stacks & auto-scaling rules
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
    THE CHALLENGE (REALITYCHECK).. “Majority of businesses are planning to move their mission- critical apps to the cloud over the next two to five years” (HP Survey amongst 940 Need Responders) Only 5 percent have been able to migrate at least half of their applications to the cloud. By Reality the end of 2012, that number is expected to rise to 20% (Cisco Survey , 1300 Responders) 29
  • 30.
  • 31.
  • 32.
    GETTING STARTED… 32 ® Copyright 2012 GigaSpaces Ltd. All Rights Reserved 32
  • 33.

Editor's Notes

  • #15 HTTP Reverse ProxyNginx (open source, C)This is the entry point for all requests coming into the platform. We maintain many of these front-end servers, and manage DNS, load balancing, and fail-over across them.This layer is tuned for high performance, and only handles HTTP-level processing, such as SSL and gzip compression, before passing connections immediately into the stack.HTTP CacheVarnish (open source, C)All requests, big or small, flow through this ultra-high-performance cache.If the requested content is available in the cache (a "hit"), the cache responds immediately and the request never reaches the dynamic application.Modern web apps get a huge performance boost from proper caching, and most frameworks (including Rails) have cache support built in.Routing Mesh(custom written, Erlang)The routing mesh balances requests across your app's dynos, tracking load and intelligently routing traffic to available resources.This makes your app more scalable and fault tolerant, as it can route traffic around misbehaving or overloaded app servers, as well as issue requests for new ones.A distributed pool of dynamic HTTP routers, the mesh easily handles frequent and instantaneous registration and de-registration of dynos.Dyno GridThis is where the action happens. Your actual code runs inside a dyno process. You can run as many dynos as needed, and they're distributed across the grid.The number of dynos running for your app can be increased or decreased instantly – it takes less than 2 seconds to start a dyno for most apps. The routing mesh can even hold connections while waiting for a dyno to start.Memory CacheMemcached (open source, C)A high-performance in-memory cache is a standard part of the modern web app, and is built-in to every Heroku app – big or small.Memcached is perfect for storing page fragments, the results of expensive database queries, or anything else you want blazingly fast access to.
  • #19 How to measure productivityA generally accepted working definition of programmer productivity needs to be established and agreed upon. Appropriate metrics need to established. Productivity needs to be viewed over the lifetime of code. Example: Programmer A writes code in a shorter interval than programmer B but programmer A's code is of lower quality and months later requires additional effort to match the quality of programmer B's code; in such a case, it is fair to claim that programmer B was actually more productive.You have to give up control for better simplicityTrue in some cases – but there are many cases were better control gets you more productivity for example – choosing your own OS can get you better performance, save bugs through patches that was already addressed etc , choosing your own selection of middleware packages can save the need to develop things that was already addressed through the ecosystem,..Productivity is measured by the number of lines of codeProductivity is measured by units of features being delivered (not lines of code)Development languages is only a small measure – take scala or earlnag for example. You can code the same thing that you would do in Java in few lines of code but it doesn’t come with strong development tools support, adminstration tools, and its hard to find skilled programmer in Scala – so even in the case that you could write less code for the same feature it doesn’t means that you would be able to deliver more features faster.Opinionated architecture (Rails/Grails) gets your more productivityTrue only if you stick to the exact design concept – but in reality architecture change and doesn’t always fits to all cases – in those cases designing to an opinionated approach can be significantly more complex.. (See the Twitter example, they started with Rails and over time found out that they needed something different – at the time Rails became extremely un productive to address their new needs and coding around it was extremly difficult that twitter decided to move away from it to Java/Scala…)
  • #23 Any stack, any environment
  • #24 Any stack, any environment
  • #25 Any stack, any environment