Bild-Quelle: http://www.colorantshistory.org/NewarkColorantsIndustry.html
Cloud Platforms / PaaS




     Thomas Bachmann
        info@thobach.de
Gliederung
•   Motivation
•   Definition
•   Bedeutung
•   Plattformgedanke und -bestandteile
•   Marktüberblick
•   Fazit




•   Disclaimer: Die Aussagen in dieser Präsentation beziehen
    sich nur auf die Programmiersprache Java
                                                               1
Motivation




Bild-Quelle: http://dilbert.com/strips/comic/2010-01-18/




      •        Administrationsaufwand senken               •   Flexibilität erhöhen
      •        Skalierbarkeit verbessern                   •   Entwicklungsaufwand reduzieren
      •        Verfügbarkeit erhöhen                       •   schnellerer Markteintritt
      •        Gesamtkosten senken                         •   Fokus auf
      •        Fixkosten senken                                Geschäftsanwendungen
                                                                                                2
Definition

           HuaaS                  •   in der Mitte des Cloud
                                      Stacks
         SaaS                     •   Unterteilung in
    - Anwendungen                     Programmier- und
 - Anwendungsdienste                  Ausführungsumgebung
          PaaS                    •   Bereitstellung eines
- Programmierumgebung                 Anwendungscontainers für
- Ausführungsumgebung                 eine oder mehrere
                                      Programmiersprachen
            IaaS
                                  •   Unterscheidung von
  - Infrastrukturdienste
                                      Application PaaS und
(Netzwerk / Speicher / Rechnen)
                                      Integration and Governance
      - Ressourcen                    PaaS
    (virtuell / physikalisch)

        Hardware
                                                                   3
Abgrenzung zu SaaS und IaaS




Bild-Quelle: http://www.microsoft.com/austria/enterprise/article.aspx?Id=IaaS+PaaS+und+SaaS




      •          kein direkter Zugriff auf das Betriebs- und Dateisystem
      •          Application Server, Load Balancer und andere
                 Middleware ist schon installiert und über APIs nutzbar
                                                                                              4
Bedeutung

                                                                         •   genutzt von
                                                                             Leading Edge
                                                                             Users & ISVs
                                                                         •   in japanischen
                                                                             Unternehmen
                                                                             schon mehr
                                                                             Verbreitung
                                                                         •   momentan noch
                                                                             nicht für komplexe
                                                                             Anwendungen




            Bild-Quelle: http://www.gartner.com/it/page.jsp?id=1447613
                                                                                                  5
Plattformgedanke und -bestandteile

Programmiermodell
  •   vergleichbar mit Enterprise
      Anwendungen (Cluster aus
      Application Servern mit Load
      Balancer)
  •   Asynchronität
  •   Zustandslosigkeit
                                          Bild-Quelle: http://www.ibm.com/developerworks/websphere/library/techarticles/
                                          0606_petersonr/0606_petersonr.html




Entwicklungsprozess
  •   Anbieterauswahl (Vendor Lock-In)
  •   mehrere Versionen parallel
      benutzbar (Test, Stage, Live)
  •   SDKs und IDE Plugins der Anbieter
  •   Neuentwicklung oder Migration


                                                                                                                           6
                                                            Bild-Quelle: http://www.klinksoft.com/webdev.htm
Plattformgedanke und -bestandteile

Laufzeitumgebung
•   basierend auf existierenden
    Laufzeitumgebungen
•   kann jederzeit vom PaaS Anbieter
    heruntergefahren werden
•   teilweise eingeschränkt (Sandbox)
•   regelt Zugriff auf DB
•   z.B. Java Servlet Container




                                        Bild-Quelle: http://download.oracle.com/docs/cd/E19933-01/819-2641/6n4trr8j8/index.html


Persistenz
•    kein direkter Zugriff Festplatte
•    Datenhaltung in DB, Caches                                     RDS
     oder BLOB Stores
•    Zugriff via anbieterabhängiger
                                                                   NoSQL
     API oder Laufzeitumgebung                                     BLOB
                                                   Bild-Quelle: http://www.softicons.com/free-icons/system-icons/
                                                   colobrush-icons-by-eponas-deeway/database-icon                                 7
Plattformgedanke und -bestandteile

Nebenläufigkeit und Kommunikation
 •   Threads nicht überall erlaubt
 •   Asynchronität über
     anbieterabhängige APIs
 •   Nutzung von Messaging
     Infrastruktur

                                                                      Bild-Quelle: http://www.thefullwiki.org/Thread_pool_pattern




Zugriffsschicht
 •   Zugriff über das Internet via
     HTTP
 •   Nutzung der
     Protokolleigenschaften von
     HTTP (Cache, Zustandslosigkeit)
                                       Bild-Quelle: http://www.tcpipguide.com/free/t_HTTPOperationalModelandClientServerCommunication.htm




                                                                                                                                            8
Plattformgedanke und -bestandteile

Multi-Tenancy




                         Bild-Quelle: http://www.ibm.com/developerworks/webservices/library/ws-multitenantpart2/index.html

 •   Mandantenfähigkeit auf verschiedenen Ebenen
 •   PaaS Anbieter unterstützen Multi-Tenancy z.T. durch
     Namespaces für DB und Tasks
                                                                                                                             9
Marktüberblick




Bild-Quellen: AWS Logo: http://www.pironet-ndh.com/business-cloud/?attachment_id=5045, GAE Logo: http://www.behindmind.com/de/programs/4674_portable-google-
app-engine-sdk-for-python.html, Salesforce.com Logo: http://pro.clubic.com/entreprises/salesforce/actualite-423192-salesforce-bons-resultats-affiche-presque-100-000-
clients.html?TB_iframe=true&height=650&width=850, Windows Azure Logo: http://www.microsoft.com/germany/presseservice/news/pressemappe.mspx?id=532350                   10
Amazon Web Services: Elastic Beanstalk




                                                                                                   •   baut auf AWS IaaS
                                                                                                       Diensten auf
                                                                                                   •   direkter Zugriff auf EC2
                                                                                                       Instanzen möglich
                                                                                                   •   unterstützt nur JEE
                                                                                                       Anwendungen
Bild-Quelle: http://itsitspace.blogspot.com/2011/01/elastic-beanstalk-amazons-revolutionary.html




                                                                                                                                  11
Google: App Engine




 •   Laufzeitumgebung
     sandboxed
 •   unterstützt JEE und
     Python Anwendungen


                           Bild-Quelle: http://thegrovegroup.wordpress.com/2009/04/27/the-google-apps-engine/   12
Salesforce.com: VMforce




                                                                             •   VMware Stack
                                                                             •   läuft im salesforce
                                                                                 Rechenzentrum
                                                                             •   starke Anbindung an force.com
                                                                                 Dienste und Datenbank
                                                                             •   unterstützt Java Anwendungen
                                                                             •   schwer portierbar
Bild-Quelle: http://blog.springsource.com/2010/04/27/vmforce-spring-cloud/




                                                                                                           13
Microsoft: Windows Azure




                  Bild-Quelle: http://www.microsoft.com/china/ard/en/innoforum/innoforum_14.mspx




•   große Auswahl an Programmiersprachen
•   3 Rollen (Web Role, Worker Role, VM Role)
•   auch als Appliance nutzbar
                                                                                                   14
Fazit, Fragen & Diskussion




Bild-Quelle: http://dilbert.com/strips/comic/2010-01-18/




       •        Administrationsaufwand senken              •   Flexibilität erhöhen
       •        Skalierbarkeit verbessern                  •   Entwicklungsaufwand reduzieren
       •        Verfügbarkeit erhöhen                      •   schnellerer Markteintritt
       •        Gesamtkosten senken                        •   Fokus auf
       •        Fixkosten senken                               Geschäftsanwendungen
                                                                                                15

Cloud Computing - PaaS

  • 1.
  • 2.
    Cloud Platforms /PaaS Thomas Bachmann info@thobach.de
  • 3.
    Gliederung • Motivation • Definition • Bedeutung • Plattformgedanke und -bestandteile • Marktüberblick • Fazit • Disclaimer: Die Aussagen in dieser Präsentation beziehen sich nur auf die Programmiersprache Java 1
  • 4.
    Motivation Bild-Quelle: http://dilbert.com/strips/comic/2010-01-18/ • Administrationsaufwand senken • Flexibilität erhöhen • Skalierbarkeit verbessern • Entwicklungsaufwand reduzieren • Verfügbarkeit erhöhen • schnellerer Markteintritt • Gesamtkosten senken • Fokus auf • Fixkosten senken Geschäftsanwendungen 2
  • 5.
    Definition HuaaS • in der Mitte des Cloud Stacks SaaS • Unterteilung in - Anwendungen Programmier- und - Anwendungsdienste Ausführungsumgebung PaaS • Bereitstellung eines - Programmierumgebung Anwendungscontainers für - Ausführungsumgebung eine oder mehrere Programmiersprachen IaaS • Unterscheidung von - Infrastrukturdienste Application PaaS und (Netzwerk / Speicher / Rechnen) Integration and Governance - Ressourcen PaaS (virtuell / physikalisch) Hardware 3
  • 6.
    Abgrenzung zu SaaSund IaaS Bild-Quelle: http://www.microsoft.com/austria/enterprise/article.aspx?Id=IaaS+PaaS+und+SaaS • kein direkter Zugriff auf das Betriebs- und Dateisystem • Application Server, Load Balancer und andere Middleware ist schon installiert und über APIs nutzbar 4
  • 7.
    Bedeutung • genutzt von Leading Edge Users & ISVs • in japanischen Unternehmen schon mehr Verbreitung • momentan noch nicht für komplexe Anwendungen Bild-Quelle: http://www.gartner.com/it/page.jsp?id=1447613 5
  • 8.
    Plattformgedanke und -bestandteile Programmiermodell • vergleichbar mit Enterprise Anwendungen (Cluster aus Application Servern mit Load Balancer) • Asynchronität • Zustandslosigkeit Bild-Quelle: http://www.ibm.com/developerworks/websphere/library/techarticles/ 0606_petersonr/0606_petersonr.html Entwicklungsprozess • Anbieterauswahl (Vendor Lock-In) • mehrere Versionen parallel benutzbar (Test, Stage, Live) • SDKs und IDE Plugins der Anbieter • Neuentwicklung oder Migration 6 Bild-Quelle: http://www.klinksoft.com/webdev.htm
  • 9.
    Plattformgedanke und -bestandteile Laufzeitumgebung • basierend auf existierenden Laufzeitumgebungen • kann jederzeit vom PaaS Anbieter heruntergefahren werden • teilweise eingeschränkt (Sandbox) • regelt Zugriff auf DB • z.B. Java Servlet Container Bild-Quelle: http://download.oracle.com/docs/cd/E19933-01/819-2641/6n4trr8j8/index.html Persistenz • kein direkter Zugriff Festplatte • Datenhaltung in DB, Caches RDS oder BLOB Stores • Zugriff via anbieterabhängiger NoSQL API oder Laufzeitumgebung BLOB Bild-Quelle: http://www.softicons.com/free-icons/system-icons/ colobrush-icons-by-eponas-deeway/database-icon 7
  • 10.
    Plattformgedanke und -bestandteile Nebenläufigkeitund Kommunikation • Threads nicht überall erlaubt • Asynchronität über anbieterabhängige APIs • Nutzung von Messaging Infrastruktur Bild-Quelle: http://www.thefullwiki.org/Thread_pool_pattern Zugriffsschicht • Zugriff über das Internet via HTTP • Nutzung der Protokolleigenschaften von HTTP (Cache, Zustandslosigkeit) Bild-Quelle: http://www.tcpipguide.com/free/t_HTTPOperationalModelandClientServerCommunication.htm 8
  • 11.
    Plattformgedanke und -bestandteile Multi-Tenancy Bild-Quelle: http://www.ibm.com/developerworks/webservices/library/ws-multitenantpart2/index.html • Mandantenfähigkeit auf verschiedenen Ebenen • PaaS Anbieter unterstützen Multi-Tenancy z.T. durch Namespaces für DB und Tasks 9
  • 12.
    Marktüberblick Bild-Quellen: AWS Logo:http://www.pironet-ndh.com/business-cloud/?attachment_id=5045, GAE Logo: http://www.behindmind.com/de/programs/4674_portable-google- app-engine-sdk-for-python.html, Salesforce.com Logo: http://pro.clubic.com/entreprises/salesforce/actualite-423192-salesforce-bons-resultats-affiche-presque-100-000- clients.html?TB_iframe=true&height=650&width=850, Windows Azure Logo: http://www.microsoft.com/germany/presseservice/news/pressemappe.mspx?id=532350 10
  • 13.
    Amazon Web Services:Elastic Beanstalk • baut auf AWS IaaS Diensten auf • direkter Zugriff auf EC2 Instanzen möglich • unterstützt nur JEE Anwendungen Bild-Quelle: http://itsitspace.blogspot.com/2011/01/elastic-beanstalk-amazons-revolutionary.html 11
  • 14.
    Google: App Engine • Laufzeitumgebung sandboxed • unterstützt JEE und Python Anwendungen Bild-Quelle: http://thegrovegroup.wordpress.com/2009/04/27/the-google-apps-engine/ 12
  • 15.
    Salesforce.com: VMforce • VMware Stack • läuft im salesforce Rechenzentrum • starke Anbindung an force.com Dienste und Datenbank • unterstützt Java Anwendungen • schwer portierbar Bild-Quelle: http://blog.springsource.com/2010/04/27/vmforce-spring-cloud/ 13
  • 16.
    Microsoft: Windows Azure Bild-Quelle: http://www.microsoft.com/china/ard/en/innoforum/innoforum_14.mspx • große Auswahl an Programmiersprachen • 3 Rollen (Web Role, Worker Role, VM Role) • auch als Appliance nutzbar 14
  • 17.
    Fazit, Fragen &Diskussion Bild-Quelle: http://dilbert.com/strips/comic/2010-01-18/ • Administrationsaufwand senken • Flexibilität erhöhen • Skalierbarkeit verbessern • Entwicklungsaufwand reduzieren • Verfügbarkeit erhöhen • schnellerer Markteintritt • Gesamtkosten senken • Fokus auf • Fixkosten senken Geschäftsanwendungen 15

Hinweis der Redaktion

  • #2 Frage an die Runde: Hat schon mal eine JEE Anwendung geschrieben? - für ein Cluster aus App Servern? - die in der Cloud läuft? Ist JEE jedem ein Begriff?
  • #6 Abgrenzung erst auf nächster Folie
  • #9 Migration von on premise Lösungen in die Cloud schrittweise - nur in VM in der Cloud laufen lassen (schlechte Skalierbarkeit) - nur DB in die Cloud auslagern - nur Anwendung ... - alles auf einmal migrieren (DB Verbindung auf Cloud APIs abstimmen, evtl. Laufzeitmgebungseinschränkungen beachten)
  • #10 bei GAE und AWS ist es für Java der Servlet Container
  • #13 nur anbieter und produkte nennen
  • #15 GAE Sandbox: - keine Threads - begrenzte Anzahl an HTTP Requests pro Zeiteinheit - keine nativen Java Netzwerkverbindungen, alles über APIs
  • #17 Compute, Storage, AppFabric, Virtual Network, CDN und Marketplace
  • #18 - Vendor Lock-In durch anbieterspezifische APIs - Portierbarkeit zwischen Anbietern teilweise schwer - erhöhte Flexibilität kostet auch mehr - Fixkosten senken nur wenn ich eigene Infrastruktur abschaffe bzw. nicht weiter ausbaue, geht nicht bei on premise cloud - Skalierbarkeit nur bei Anpassung der Anwendung, wenn nicht schon async und zustandslos - Hochverfügbarkeit bisher schlecht (SLAs) nur 3 9en - Diskussion über Standards, z.b. mal gehen Threads, mal nicht bzw. nur über andere API