Akte Z: Erfahrungsberichte aus der Welt der businesskritischen



Ähnliche Dokumente
Datenbank-Verschlüsselung mit DbDefence und Webanwendungen.

Schwachstellenanalyse 2012

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

Informationssystemanalyse Problemstellung 2 1. Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse:

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

EIDAMO Webshop-Lösung - White Paper

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Stammdaten Auftragserfassung Produktionsbearbeitung Bestellwesen Cloud Computing

OP-LOG

Lokale Installation von DotNetNuke 4 ohne IIS

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Task: Nmap Skripte ausführen

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Warum beschäftigt sich ein Linux-Systemhaus mit der Installation von OTRS mit einem Microsoft SQL Server?

SharePoint Demonstration

TimeMachine. Time CGI. Version 1.5. Stand Dokument: time.odt. Berger EDV Service Tulbeckstr München

ecaros-update 8.2 Update 8.2 procar informatik AG 1 Stand: DP 02/2014 Eschenweg Weiterstadt

Lizenzen auschecken. Was ist zu tun?

Firmware-Update, CAPI Update

360 - Der Weg zum gläsernen Unternehmen mit QlikView am Beispiel Einkauf

TYPO3 CMS 6.2 LTS. Die neue TYPO3- Version mit Langzeit- Support

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

SAP Memory Tuning. Erfahrungsbericht Fritz Egger GmbH & Co OG. Datenbanken sind unsere Welt

Installationsanleitung dateiagent Pro

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser

MSSQL Server Fragen GridVis

Verwendung des IDS Backup Systems unter Windows 2000

System-Update Addendum

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

Agiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail:

Memeo Instant Backup Kurzleitfaden. Schritt 1: Richten Sie Ihr kostenloses Memeo-Konto ein

Fragen zur GridVis MSSQL-Server

Eine Anwendung mit InstantRails 1.7

Anmeldung und Zugang zum Webinar des Deutschen Bibliotheksverbandes e.v. (dbv)

Protect 7 Anti-Malware Service. Dokumentation

ERPaaS TM. In nur drei Minuten zur individuellen Lösung und maximaler Flexibilität.

Alle gehören dazu. Vorwort

1 Installation QTrans V2.0 unter Windows NT4

Sie müssen sich für diesen Fall mit IHREM Rechner (also zeitgut jk o.ä.) verbinden, nicht mit dem Terminalserver.

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.

ICS-Addin. Benutzerhandbuch. Version: 1.0

Installation des GeoShop Redirector für Apache (Stand ) ================================================================

Java Entwicklung für Embedded Devices Best & Worst Practices!

4D Server v12 64-bit Version BETA VERSION

Step by Step Webserver unter Windows Server von Christian Bartl

Java Script für die Nutzung unseres Online-Bestellsystems

Kommunikationsübersicht XIMA FORMCYCLE Inhaltsverzeichnis

ITT WEB-Service DEMO. Kurzbedienungsanleitung

Software zur Anbindung Ihrer Maschinen über Wireless- (GPRS/EDGE) und Breitbandanbindungen (DSL, LAN)

Die Installation des GeoShop Redirector für IIS (Internet Information Server, Version 4.0, 5.0 und 6.0) umfasst folgende Teilschritte:

Internet online Update (Internet Explorer)

Die Post hat eine Umfrage gemacht

INDIVIDUELLE SOFTWARELÖSUNGEN CUSTOMSOFT CS GMBH

Workshop: Eigenes Image ohne VMware-Programme erstellen

Formular»Fragenkatalog BIM-Server«

Zend PHP Cloud Application Platform

Update und Konfiguraton mit dem ANTLOG Konfigurations-Assistenten

Oracle APEX Installer

Handbuch. timecard Connector Version: REINER SCT Kartengeräte GmbH & Co. KG Goethestr Furtwangen

Verwendung des Terminalservers der MUG

Zugriff auf OWA Auf OWA kann über folgende URLs zugegriffen werden:

Avira Support Collector. Kurzanleitung

Sie wollen Was heißt das? Grundvoraussetzung ist ein Bild oder mehrere Bilder vom Wechseldatenträger

Softwaren Engineering I

Websites mit Dreamweaver MX und SSH ins Internet bringen

Reporting Services und SharePoint 2010 Teil 1

FrogSure Installation und Konfiguration

Research Note zum Thema: Laufzeit von Support-Leistungen für Server OS

COSA. Portal Client Installation JAVA J2SE / JRE Version 1.4.2_09, Stand Copyright

Demopaket FDFsolutions für Windows, Version 1.73, Voraussetzungen & Installation. (Stand )

Datenübernahme easyjob 3.0 zu easyjob 4.0

Installation Wawi SQL in Verbindung mit Microsoft SQL Server 2008 R2 Express with management Tools

HINWEISE ZUR ARBEIT IM LABOR

Quickstep Server Update

Anmeldung und Zugang zum Webinar des Deutschen Bibliotheksverbandes e.v. (dbv)

Applikations-Performance in Citrix Umgebungen

An integrated total solution for automatic job scheduling without user interaction

:: Anleitung Hosting Server 1cloud.ch ::

MetaQuotes Empfehlungen zum Gebrauch von

YouTube: Video-Untertitel übersetzen

PCC Outlook Integration Installationsleitfaden

Updatehinweise für die Version forma 5.5.5

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

Tipps und Tricks zu Netop Vision und Vision Pro

Einsatzbearbeitung im Sanitätsdienst

Navigieren auf dem Desktop

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Anleitung RÄUME BUCHEN MIT OUTLOOK FÜR VERWALTUNGSANGESTELLTE

TTS - TinyTimeSystem. Unterrichtsprojekt BIBI

Idimager ein Bildverwaltungsprogramm-DAM Software

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

mysoftfolio360 Handbuch

Computeria Solothurn

Verschlüsselung mit PGP. Teil 1: Installation

Xylem WebService Demo Kurzbedienungsanleitung

HOWTO Update von MRG1 auf MRG2 bei gleichzeitigem Update auf Magento CE 1.4 / Magento EE 1.8

MS Outlook Integration

Transkript:

Akte Z: Erfahrungsberichte aus der Welt der businesskritischen PHP-Applikationen Von Axel Schinke Senior Manager of Global Operations for Global Services

Über das Webinar Erfahrungsberichte von Zend Consulting Verschiedene Themenbereiche Performance Architecture & Scalability Coaching & Mentoring Zend Software Manchmal ist es gar nicht PHP Anonymisierte Auswahl aus weltweitem Kundenstamm Aus Datenschutzgründen: Keine Erwähnung von Security-Themen Überblick: Zend Consulting 2

Performance

Performance - Fall Nr. 1 Unsere Website läuft stabil, aber langsam. Sie wurde mit einem selbst entwickelten Framework gebaut. Die Site braucht definitiv mehr Hardware-Ressourcen als zur Verfügung stehen. 4

Performance - Fall Nr. 1 3 Tage Time & Material Consulting - Remote Analyse der Architektur Daten wurden teilweise aus Sicherheitsgründen verschlüsselt abgespeichert Erneute Anzeige dieser Daten bremste das System über die Maßen aus Definition und Integration verschiedener Caching-Szenarien (Caching auf der Platte, im Hauptspeicher etc. / u.a. mit Zend Server) Einsatz der JobQueue von Zend Server für Long-Running Tasks 5

Performance - Fall Nr. 2 Wir haben ein Performance-Problem mit unserer Website. Normalerweise die Website sehr performant außer Mittwochs! Wir haben schon sehr viel Aufwand in die Fehlersuche gesteckt, konnten aber nichts finden. 6

Performance - Fall Nr. 2 Performance Audit -Remote Jeden Mittwoch riefen Web-Spiders eine bestimmte Seite mit einer Produktübersicht auf 1.100 DB-Requests pro User pro Seitenaufruf. Die 1.100 Queries wurden auf 11 Queries reduziert (1,5 Sek. an Stelle von 15 Sek./Aufruf). 7

Performance - Fall Nr. 3 Unser Webshop ist in der Weihnachtszeit unter starker Last. Wir müssen sicher gehen, dass in diesem Zeitraum alles performant läuft. Wir nutzen in der Anbindung viele externe Web-Services. Liegt es evtl. daran? 8

Performance - Fall Nr. 3 Performance Audit Remote Ergebnis des Audits: Die per SOAP angebundenen, externen Web-Services liefen über eine sehr langsame Verbindung Gleichzeitig war die Menge der übermittelten Daten sehr groß Lösung: Viele Teile der externen Web-Services wurden lokal abgebildet. Zusätzlich : Implementierung intelligenter Caching-Mechanismen Endergebnis: Die E-Commerce-Website arbeitete 3-10 mal schneller als vorher. 9

Performance - Fall Nr. 4 Unser Portal für Partner/Distributoren hat Performance-Probleme. Manchmal braucht eine Seite 30-60 Sek. Ladezeit anstatt normalerweise 0,5-4 Sek. Unsere Partner beginnen schon sich bei uns zu beschweren 10

Performance - Fall Nr. 4 Performance Audit Remote Ergebnis: Die Konfiguration des Apache Webservers war suboptimal Lösung: Anpassung der Konfiguration brachte die Berechnungszeit der Seite wieder in den normalen Bereich Kleine Änderungen am Datenbank-Setup brachten zusätzliche 0,3 Sekunden Performancegewinn pro Aufruf Nebenher: Diverse Sicherheitsprobleme im Code gefunden und dem Kunden gemeldet. 11

Architecture & Scalability

Architecture & Scalability - Fall Nr. 1 Wir planen eine erweiterte Version unserer Web-Applikation. Die Komplexität wird um den Faktor 10 höher sein. Wir sind unsicher ob unsere bisherige Architektur der Anwendung und der DB dem gewachsen ist. 13

Architecture & Scalability - Fall Nr. 1 Architecture/Scalability Audit Vor Ort Anwendung mit diffizilem Rechtemanagement. Hürde: Verträgt die Datenbank die Last? Ansatz: Analyse des bestehenden Source Codes Lösung: Neue Datenbank-Struktur skizziert, die problemlos mit der neuen Software-Architektur mithalten kann 14

Architecture & Scalability - Fall Nr. 2 Unser neues Web 2.0- Intranet ist seit über 1,5 Jahren online. Manche Seiten brauchen mehr als 10 Sek. Wir haben es mit Zend Framework gebaut, aber zuletzt waren die Antwortzeiten der Seiten nicht mehr akzeptabel. 15

Architecture & Scalability - Fall Nr. 2 5 Tage Time & Material Consulting vor Ort Ansatz: U.a. Nutzung des Profilings von Zend Studio, um die Probleme zu lokalisieren Lösung: Geringe Anpassungen an der Architektur Ergebnis: Antwortzeit von 10 Sek. auf unter eine Sekunde reduziert, ohne die gesamte Applikation neu schreiben zu müssen. Seiteneffekt: Gemeinsam mit dem Entwickler-Team des Kunden weitere Optimierungen an der Architektur vorgenommen 16

Architecture & Scalability - Fall Nr. 3 Eine wichtige interne Applikation braucht manchmal 5 Minuten, um ein Ergebnis zu liefern. Wir haben viele tausend Kunden, die darunter leiden, dass sie nicht mehr zeitnah unseren Service erhalten können. 17

Architecture & Scalability - Fall Nr. 3 3 Tage Time & Material Consulting vor Ort (initial) Vorgaben: Der Zend Consultant hatte ausschließlich Zugriff auf den PHP- Code Änderungen an der Datenbank oder der Architektur waren vom Kunden ausgeschlossen worden. Ansatz: Analyse vor Ort und nachträgliche Remote-Arbeiten Ergebnis: Die Performance konnte um einen Faktor von bis zu 4.100 (!) erhöht werden. Durchschnittlicher Performancegewinn bei den Applikationsmodulen: Faktor 328. 18

Architecture & Scalability - Fall Nr. 4 Unsere Kundenzahl geht in die Millionen. Wir müssen technisch auf dem aktuellsten Stand sein, um weiteres Wachstum zu fördern. Wir haben Probleme mit der Skalierung. Unsere aktuelle Infrastruktur muss überarbeitet und aktualisiert werden. 19

Architecture & Scalability - Fall Nr. 4 5 Tage Time & Material Consulting vor Ort (initial) Grund: Die sehr komplexe Applikation des Kunden wurde immer auf Basis von Kundenwünschen erweitert. Es lag dabei jedoch kein übergreifender Plan oder eine Langzeitvision vor. Die gewachsene Applikations-Struktur hat die Skalierbarkeit verhindert Die ursprüngliche Datenbank-Struktur hat massive Probleme mit der aktuellen Masse an Daten mitzuhalten. Lösung: Kontinuierliche Beratung während der gesamten Zeit der Neuentwicklung 20

Coaching & Mentoring

Coaching & Mentoring - Fall Nr. 1 Unser Entwickler (-Team) kann bereits PHP Wir haben uns auch bereits in Zend Framework eingearbeitet. Wir haben den Eindruck, dass sich unser Entwickler bei der Architektur nicht sicher fühlt 22

Coaching & Mentoring - Fall Nr. 1 3 Tage Time & Material Consulting vor Ort Ausgangssituation: Kenntnisse über Zend Framework waren vorhanden, jedoch wenig Erfahrung in der Architektur von Applikationen Lösung: Der Zend Consultant hat vor Ort innerhalb von 3 Tagen gemeinsam mit dem Entwickler eine tragfähige, skalierbare Struktur definiert, die heute noch im Einsatz ist und ständig vom Entwickler erfolgreich erweitert wird. 23

Coaching & Mentoring - Fall Nr. 2 Wir brauchen einen Prototyp innerhalb kurzer Zeit und das Ganze muss in PHP auf IBM System i laufen. Gleichzeitig muss der PHP- Prototyp aber mit unseren Legacy-Systemen kommunizieren. 24

Coaching & Mentoring - Fall Nr. 2 5 Tage Time & Material Consulting vor Ort Ansatz: Ein Zend Consultant hat gemeinsam mit dem Entwickler des Kunden im Training on the Job eine Anwendung konzipiert Ergebnis: Diese Anwendung war in der Lage war, existierende RPG- Programme anzusprechen und mit ihnen Daten auszutauschen Seiteneffekt: Der Entwickler war im Anschluss in der Lage eigenständig die Anwendung zu erweitern und weitere Legacy-Datenquellen anzubinden. 25

Coaching & Mentoring - Fall Nr. 3 Unsere Applikation, die viele wichtige Kunden einsetzen, ist architektonisch an einem Scheideweg angekommen. Die Applikation ist über die Jahre gewachsen und das Einhalten von Architekturvorgaben wurde nie konsistent überwacht. 26

Coaching & Mentoring - Fall Nr. 3 3 Tage Training und 3 Tage Time & Material Consulting vor Ort 1. Schritt: Vor-Ort-Training Zend Framework Fundamentals für das Entwicklerteam 2. Schritt: Gemeinsame Evaluierung der Applikation Ergebnis: Über 25 Empfehlungen bzgl. der Models, der Datenbank, der Dokumentation, des Unit Testings, des Zend Servers, des Error-Handlings, der Apache-Konfiguration, der ACL-Implementierung etc. Zusätzlich: Die Entwickler konnten im Anschluss problemlos die Applikations-Architektur eigenständig weiter entwickeln 27

Coaching & Mentoring - Fall Nr. 4 Für einen erfolgreichen Projektstart brauchen wir Unterstützung. Wir wollen eine neue Anwendung auf Basis des gesamten Zend-Stacks entwickeln. Die Anwendung soll für 100.000 Anwender bei über 40.000 gleichzeitigen Nutzern arbeiten. 28

Coaching & Mentoring - Fall Nr. 4 10 Tage Time & Material Consulting vor Ort Lösung: Zend Consulting wurde bereits zu Beginn des Projekts beteiligt Ansatz: Implementierung aggressiver Caching-Strategien in die Applikation Außerdem: System- und Code-Integrität wurde in den verschiedenen Phasen des Projekts analysiert und entsprechendes Feedback gegeben. Vor Beginn des Projekts: Installation und optimale Konfiguration der Zend Software auf allen Systemen des Kunden durch einen Zend Consultant 29

Das Maximum aus der Zend Software herausholen

Das Maximum aus der Zend Software herausholen Wir sind unsicher, ob unsere Installation und Konfiguration von Zend Platform sinnvoll ist. aber können wir nicht noch mehr heraus holen? Der Aufruf der aufwändigsten Seite reduzierte sich zwar von 1,5 Sek. auf 180 ms 31

Das Maximum aus der Zend Software herausholen 1 Tag Time & Material Consulting vor Ort Ansatz: Erläuterung der umfangreichen Möglichkeiten der Performance- Optimierung der Zend Software vor Ort durch einen Zend Consultant Optimierung der Konfiguration und des PHP-Codes auf die Kundensituation Ergebnis: Die Rechenzeit der angesprochenen Seite konnte nochmals um über 50% reduziert werden (180 ms 80 ms). Seiteneffekt: Dem Team konnten wertvolle Tipps für das weitere Schreiben performanter PHP-Codes gegeben werden 32

Manchmal ist es gar nicht PHP

Manchmal ist es gar nicht PHP - Fall Nr. 1 Immer, wenn wir einen E- Mail-Newsletter an unsere Kunden schicken, kommen sehr viele Kunden auf unsere Website Leider bricht unter diesem Ansturm regelmäßig unser PHP zusammen und antwortet nicht mehr. 34

Manchmal ist es gar nicht PHP - Fall Nr. 1 Performance Audit Remote Ansatz: Performance Audit Ergebnis: Das unter Windows laufende Kundensystem war bei der Anzahl der erlaubten eingehenden Verbindungen in Bezug auf die Ports limitiert Lösung: Der falsch konfigurierte TCP-Stack wurde neu konfiguriert und das Problem war behoben 35

Manchmal ist es gar nicht PHP - Fall Nr. 2 Unser PHP läuft zu langsam! Der Seitenaufbau in unserer Intranet- Anwendung ist langsam. Bestimmt liegt es daran, dass PHP unter Windows einfach nicht performt. 36

Manchmal ist es gar nicht PHP - Fall Nr. 2 1 Tag Time & Material Consulting vor Ort Ansatz: Profiling der Intranet-Anwendung Lösung: Eingesetzte Datenbank war für den aktuellen Anwendungszweck nicht passend konfiguriert 37

Manchmal ist es gar nicht PHP - Fall Nr. 3 Wir haben ein ganz komisches Problem beim Öffnen von Dateien über PHP Es kommen sehr seltsame Fehlermeldungen, die wir nur auf unserer Produktionsumgebung haben und nicht auf unserem Testsystem 38

Manchmal ist es gar nicht PHP - Fall Nr. 3 1 Tag Time & Material Consulting - Remote Ansatz: Nutzung des Zend Debuggers in Verbindung mit Zend Studio Lösung: Eine PHP-interne Funktion für das Arbeiten mit dem Dateisystem hat unter FreeBSD (Produktion) komplett anders reagiert als unter Linux (Development) trotz gleichem Code und gleicher PHP-Version Resultat: Anpassung des PHP-Codes, da FreeBSD gesetzt war 39

Manchmal ist es gar nicht PHP - Fall Nr. 4 Eigentlich läuft unsere auf PHP basierende Website prima, aber bei vielen Besuchern kann sich manchmal niemand mehr einloggen. Nach einem Neustart des Apache Webservers läuft wieder alles ok, bis die Maschine nach einer halben Stunde wieder still steht. 40

Manchmal ist es gar nicht PHP - Fall Nr. 4 1 Tag Time & Material Consulting - Remote Lösung: Begrenzte Anzahl der Apache-Prozesse. Zusätzlich war die KeepAlive-Time recht hoch. Auf Dauer: Keine neuen Apache-Prozesse stehen zur Verfügung Lösung: Neu-Konfiguration des Webservers Seiteneffekt: Erkennen von Sicherheitsproblemen, die einen Security Audit nachzogen 41

Zend Consulting im Überblick

Vorteile von Zend Consulting Die Zend Consultants haben Zugang zu den Entwicklern von PHP und können nicht nur deshalb mit einem sehr hohen Level an Fachwissen in Bezug auf PHP und LAMP-Umgebungen aufwarten. Der große Erfahrungsschatz wird seit vielen Jahren kontinuierlich ausgebaut. In 2009 wurden z.b. Consulting- Dienstleistungen für mehr als 90 Kunden in den verschiedensten Branchen mit einer großen Vielfalt an Applikationstypen erbracht. Die Zend Consultants setzen intern entwickelte Methodologien und Tools ein, die fortwährend im Laufe der vielfältigen Einsätze optimiert und erweitert werden. 43

Performance Audit Auswahl an Themen, die je nach Kundensituation untersucht werden Identifikation von Applikations- Flaschenhälsen Audit des ausgeführten PHP-Codes selbst Profiling der Skripte / Optimierungspotential der Skripte Wie ist die Performance des Betriebssystems (inkl. Dateisystem)? Ist der Webserver optimal konfiguriert? Was macht die die Datenbank (Query Analyse bzw. -Optimierung)? Untersuchung des ggf. vorhandenen Load Balancings Untersuchung der Caching-Techniken 44

Architecture/Scalability Audit Auswahl an Themen, die je nach Kundensituation untersucht werden Analyse der horizontalen Skalierbarkeit der Applikation Analyse der Skalierbarkeit der eingesetzten Datenbanken Wie gut ist das Session Clustering? Wie gut ist das Load Balancing? Ist die Architektur und Konfiguration des/der Web Server sinnvoll? 45

Security Audit Der Security Audit wird in zwei Abschnitte unterteilt Pre-Audit (1 Tag) Black-Box Test, um einige der offensichtlichen Probleme aufzudecken Kompletter Security Audit (mehrere Tage) Umfassender Security Audit inkl. optionalem Audit des Source-Codes auf Sicherheitslücken 46

Security Audit Auswahl an Themen, die je nach Kundensituation beim kompletten Security Audit untersucht werden Penetration Testing Cross Site Request Forgeries Analyse der PHP-Konfiguration JavaScript Schwachstellen Output Analyse Denial Of Service Analyse Input Filtering Analyse Header Injection SQL Injection Analyse der Skripte Session-Sicherheit Cross Site Scripting Schwachstellen Analyse der Shell Execution Security 47

Zend Audits Vorteile Zum Abschluss erhält der Kunde einen detaillierten, schriftlichen Report mit Empfehlungen: Denn nur wenn die Probleme bekannt sind, kann ein Kunde Entscheidungen bzgl. der nächsten Schritte treffen Nach dem Audit hat der Kunde die freie Wahl, ob er für die Behebung der Probleme weiterhin mit Zend zusammenarbeiten möchte oder lieber mit jemand anderem 48

Custom Consulting Auf Basis von Time & Material, u.a. PHP Applikations-Architektur: Design & Mentoring Zend Framework Applikationen: Design & Mentoring Analyse von Skalierungs- und Performance-Problemen Unterstüzung bei der Integration von Zend Produkten (z.b. Job Queue System-Design, Caching-Optimierung etc.) Audit-Dienstleistungen für Projekte mit mehr als 50K LOC (Lines of Code) 49

Haben Sie Fragen?

Vielen Dank! Kontakt: axel.schinke@zend.com