Bernhard Wick - appserver.io - code.talks 2015

377 Aufrufe

Veröffentlicht am

code.talks 2015 hosted by ABOUT YOU

Veröffentlicht in: Internet
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
377
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
4
Aktionen
Geteilt
0
Downloads
4
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Bernhard Wick - appserver.io - code.talks 2015

  1. 1. Über mich Bernhard Wick
 29 Jahre jung ! Seit 2013 bei TechDivision GmbH Softwarearchitekt für appserver.io Heute mal nicht in Lederhosen
  2. 2. Agenda Agenda • Was ist appserver.io? • Vorstellung und Idee ! • Wozu das alles? • Vorteile und Nutzen ! • Wie nutze ich appserver.io • Anwendungsentwicklung und Beispiel
  3. 3. Vorstellung | Nutzen | Anwendungsentwicklung ! ! ! ! Was ist ?
  4. 4. Vorstellung | Nutzen | Anwendungsentwicklung Ziel" Application Server für PHP, in PHP ! • Alternative zu bestehender Infrastruktur • Konzept von Application Server verfügbar machen • Infrastruktur in der Zielsprache • Alles Open Source
  5. 5. Vorstellung | Nutzen | Anwendungsentwicklung ! ! Ein Application Server ist eine Plattform die Anwendungen über ein Netzwerk bereitstellt und über definierte Schnittstellen ansprechbare Zusatzdienste bietet.
  6. 6. Vorstellung | Nutzen | Anwendungsentwicklung • Webserver liefern statische Inhalte aus • Nutzen Drittprogramme für dynamische Inhalte • Interne Sub-requests ([Fast]CGI) • Selbst keinen Bezug zur Anwendung
  7. 7. Vorstellung | Nutzen | Anwendungsentwicklung • Market share von ~81% • Rasant ansteigende Beliebtheit seit 2000 ! ! ! ! ! • Aber: Schritt in die Enterprise Welt fällt schwer W3Techs, 2015 Netcraft, 2013
  8. 8. Vorstellung | Nutzen | Anwendungsentwicklung Projekthistorie" • Idee besteht seit 2005 ! • Erster Prototyp 2011 • Für interne Projekte ! • Erster commit am 1.7.2013
  9. 9. Vorstellung | Nutzen | Anwendungsentwicklung Seit August 2012: Threading" • Als Extension pthreads by Joe Watkins • Erlaubt echte parallele Verarbeitung • Bietet Inter-Thread Daten Container auf Objektebene ! ! • Aber: Sehr aufwändiger Umbau am PHP Core
  10. 10. Vorstellung | Nutzen | Anwendungsentwicklung • Erstes Produktivprojekt am 12.6.2014 • Nur Webserver • Anwendungslogik in Webserver Module ! • Erstes Webservice Projekt am 10.11.2014 ! • Release 1.0.0 „Iron Horse“ am 16.2.2015 !
  11. 11. Vorstellung | Nutzen | Anwendungsentwicklung Aktueller Produktumfang ! • 24 Jahre Entwicklungszeit (COCOMO Model) • Ca. 96.000 Zeilen Code • 40+ Repositories ! • 8 Produktivprojekte • 2 Partnerfirmen
  12. 12. Vorstellung | Nutzen | Anwendungsentwicklung ! ! ! Wozu das alles?
  13. 13. Vorstellung | Nutzen | Anwendungsentwicklung Infrastruktur in der Zielsprache" ! • Erleichtert das Verstehen von Abläufen ! • Homogenisiert den Technologie-Stack ! • Befähigt zu Infrastrukturveränderung und -erweiterung
  14. 14. Vorstellung | Nutzen | Anwendungsentwicklung • „I am a Teapot“ Module
  15. 15. Vorstellung | Nutzen | Anwendungsentwicklung Beispiel • Rewrite Modul für Anwendung • 3,2 Milliarden Rewrites in Server verlagert ! • Backend API Analytics • Analytics für RESTful API Aufrufe
  16. 16. Vorstellung | Nutzen | Anwendungsentwicklung Alles aus einem Guss" ! • Infrastruktur ! • Framework ! • Laufzeitumgebung
  17. 17. Vorstellung | Nutzen | Anwendungsentwicklung Technologische Sicherheit • PSRs sind super Idee ! • Wir pflegen 10 eigene PSRs • Decken alle Aspekte der Anwendungsentwicklung ab ! • Nutzen semantic Versioning • Feste APIs bis Version 2.0.0!
  18. 18. Vorstellung | Nutzen | Anwendungsentwicklung ! • Komplett Open Source ! • Community Support per GitHub und Gitter
  19. 19. Vorstellung | Nutzen | Anwendungsentwicklung ! ! ! Wie nutze ich ?
  20. 20. Vorstellung | Nutzen | Anwendungsentwicklung Installation" Installierbare Pakete verfügbar für: ! ! + homebrew cask ! ! ! ! + Repository
  21. 21. Vorstellung | Nutzen | Anwendungsentwicklung Zusätzlich
  22. 22. Vorstellung | Nutzen | Anwendungsentwicklung Konfiguration
  23. 23. Vorstellung | Nutzen | Anwendungsentwicklung
  24. 24. Vorstellung | Nutzen | Anwendungsentwicklung Problem" Aufwändiges Bootstrapping (Framework, etc.) ! Lösung" ! Servlets Servlets sind Klassen, deren vorgeladene Instanzen die Request- und Response Verarbeiten auf Seite des Servers übernehmen. —> Controller
  25. 25. Vorstellung | Nutzen | Anwendungsentwicklung • Lifecycle Management und Routing durch Servlet Engine • Erlaubt Bootstrapping noch vor dem ersten Request ! !
  26. 26. Vorstellung | Nutzen | Anwendungsentwicklung • Mapping über Annotation oder XML
  27. 27. Vorstellung | Nutzen | Anwendungsentwicklung • Implementieren Methoden für HTTP Operationen • doGet(), doPost(), … • Erhalten Request und Response Objekte
  28. 28. Vorstellung | Nutzen | Anwendungsentwicklung Problem" Stateless Server, Stateful Client ! Lösung" ! Session Beans! Session- und andere Beans sind serverseitige Klassen, die die Business Logik einer Anwendung beinhalten. Sie werden zentral verwaltet und stehen meist als fertige Instanz bereit.
  29. 29. Vorstellung | Nutzen | Anwendungsentwicklung Verschiedene Arten • Stateless: Neue Instanz für jede Anfrage • Stateful: Persistente Instanz, gebunden an Nutzersession • Singleton: Persistente Instanz, unabhängig von Session immer gleich • MessageDriven: Zur asynchronen Verarbeitung von MQ Nachrichten
  30. 30. Vorstellung | Nutzen | Anwendungsentwicklung
  31. 31. Vorstellung | Nutzen | Anwendungsentwicklung Beispiel • Einkaufswagen als Stateful Bean ! • Repliziert State eines stateful Clients • Hält z.B. Nutzerdaten sicher im Speicher • Erlaubt Caching von komplexen Abfrageergebnissen
  32. 32. Vorstellung | Nutzen | Anwendungsentwicklung Hat jemand persistent gesagt?" Konzept von DataSources: ! ! ! ! ! • Per XML konfigurierbare Datenquellen
  33. 33. Vorstellung | Nutzen | Anwendungsentwicklung Problem" Threading und Frameworks ! Lösung" ! appserver.io Funktionalität appserver.io bringt viel Funktionalität eines modernen Frameworks mit, aber erlaubt Multithreading und feste Integration in die Infrastruktur
  34. 34. Vorstellung | Nutzen | Anwendungsentwicklung AOP
  35. 35. Vorstellung | Nutzen | Anwendungsentwicklung Dependency Injection
  36. 36. Vorstellung | Nutzen | Anwendungsentwicklung Design by Contract und Typsicherheit
  37. 37. Fragen / Questions Fazit ! ! • PHP sollte sich weiter entwickeln ! • Es macht Sinn in Infrastruktur zu investieren ! • Standardisierung ist ein Muss
  38. 38. Fragen / Questions !?
  39. 39. Thanks! appserver.io is a registered trademark of TechDivision GmbH
 
 Spinnereiinsel 3a
 83059 Kolbermoor Tel. +49 8031 / 221055-0
 Fax +49 8031 / 221055-22 info@appserver.io
 Bernhard Wick
 Softwarearchitect bw@appserver.io ! ! !
  40. 40. Further readings http://appserver.io/ https://github.com/appserver-io/appserver https://www.techdivision.com/ https://gitter.im/appserver-io/appserver
  41. 41. Bildernachweis "Tux" by lewing@isc.tamu.edu and The GIMP. Licensed under Attribution via Wikimedia Commons - https://commons.wikimedia.org/wiki/File:Tux.png#/media/File:Tux.png! ! "Fedora logo" by Wondigoma - Own work. Licensed under Public Domain via Wikimedia Commons - https://commons.wikimedia.org/wiki/File:Fedora_logo.svg#/media/File:Fedora_logo.svg! ! "Openlogo-debianV2" by Debian Project - www.debian.org/logos/. Licensed under CC BY-SA 3.0 via Wikimedia Commons - https://commons.wikimedia.org/wiki/File:Openlogo-debianV2.svg#/media/ File:Openlogo-debianV2.svg! ! „Docker (container engine) logo“ von dotCloud, Inc. - http://www.docker.io/static/img/docker-top-logo.png. Lizenziert unter Apache License 2.0 über Wikimedia Commons - https://commons.wikimedia.org/wiki/ File:Docker_(container_engine)_logo.png#/media/File:Docker_(container_engine)_logo.png! ! „Vagrant“ von Fco.plj - Eigenes Werk. Lizenziert unter CC BY-SA 3.0 über Wikimedia Commons - https:// commons.wikimedia.org/wiki/File:Vagrant.png#/media/File:Vagrant.png

×