29
Rene-Chr. Glembotzky, Head of IT CommunityCamp Berlin Raus aus der Garage, rein in den Markt: Skalierung und Performance von Web-Applikationen René-Chr. Glembotzky CommunityCamp Berlin

Skalierung & Performance

Embed Size (px)

Citation preview

Page 1: Skalierung & Performance

Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin

Raus aus der Garage, rein in den Markt:Skalierung und Performance von

Web-Applikationen

René-Chr. GlembotzkyCommunityCamp Berlin

Page 2: Skalierung & Performance

Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin

Zur Person

René-Chr. Glembotzky 32 Jahre Gründer und Entwickler

von free-sms.de mit 1.8 Mio Mitgliedern

IT Leiter von goolive.deCommunity mit 130 Mio. Seitenaufrufen pro Monat

Page 3: Skalierung & Performance

Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin

Wunschzettel für unsereWebanwendung Hohe Verfügbarkeit Skalierbarkeit Performance Einfache Verwaltung Low Cost Viele Features €€€

Page 4: Skalierung & Performance

Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin

High Availability...

sorgt dafür, dass im Falle eines Ausfalls

unsere Website erreichbar bleibt, unsere Nutzer und Kunden zufrieden sind und weiterhin Revenues generiert werden.

Page 5: Skalierung & Performance

Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin

High Availability...

sorgt dafür, dass im Falle eines Ausfalls

unsere Website erreichbar bleibt, unsere Nutzer und Kunden zufrieden sind und weiterhin Revenues generiert werden.

IT-Leitung behält ihren Job ;-)

Page 6: Skalierung & Performance

Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin

High Availability

Redundanz der Systeme

2 Firewalls 2 Webserver 2 Datenbankserver usw...

Page 7: Skalierung & Performance

Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin

Skalierung

Skalierung ist die Eigenschaft einer Plattform oder Anwendung, wachsenden Anforderungen gerecht zu werden und dahingehend vorbereitet zu sein, dass die Systeme bei Bedarf flexibel erweitert werden können.

Page 8: Skalierung & Performance

Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin

Skalierung

Beispiel:

Kurzfristig steigender Bedarf an Web- oder Datenbankkapazitäten

Page 9: Skalierung & Performance

Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin

Was Skalierung NICHT bedeutet Reine Speed-Performance (2 Ghz vs. 3 Ghz) Betriebssystems (Linux vs. Solaris) Technologie (PHP vs. Python vs. Rails) Hardware (AMD vs. Intel) Code Optimierung (10 vs. 10.000 Zeilen

Quelltext) Storage Technologie (SAN vs. NAS)

Page 10: Skalierung & Performance

Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin

Skalierung und Performance sind nicht das gleiche

Page 11: Skalierung & Performance

Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin

Skalierung und Performance sind nicht das gleiche

Page 12: Skalierung & Performance

Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin

FAKT 1

Eine Anwendung lässt sich nicht skalieren,wenn sie nicht von vornherein dafür

konzipiert wurde.

Page 13: Skalierung & Performance

Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin

FAKT 2

Selbst wenn eine Anwendung für die Skalierungentwickelt wurde, lässt die Entwickler wahnsinnig

werden, sobald es erforderlich ist.

Page 14: Skalierung & Performance

Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin

Unsere neue Website :-)

Ein Server Anwendung,

Datenbank und Media auf einem System

Einfach zu verwalten Keine

Ausfallsicherheit

Page 15: Skalierung & Performance

Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin

Der Programmierer wird unzufrieden

Anwendungs- und Datenbankebene werden auf getrennte Server verlagert.

Page 16: Skalierung & Performance

Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin

Hurra: 1.000 Nutzer

Media Files werden auch ausgelagert, um die Webserve mit weniger unnützen Prozessen zu belasten...

Page 17: Skalierung & Performance

Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin

Das typische Startup-Setup Firewall/Load-

Balancer Mehrere Webserver Datenbankserver Internes Storage Leicht zu verwalten Keine Redundanz Günstiger Betrieb

Page 18: Skalierung & Performance

Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin

Das Startup wird erfolgreicher Redundante Firewall Redundante Load Balancer Mehr Webserver für mehr Performance Datenbank Storage zieht um -> SAN Aus Anwendungssicht relativ simpel...

Page 19: Skalierung & Performance

Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin

Immenser Gewinn an Popularität Nennung des Startups z.B. bei Digg oder

Techcrunch Caching: Reverse Proxy (Squid/Varnish) Mehr Webserver Replikation der Datenbank Applikation überarbeiten :-)

Page 20: Skalierung & Performance

Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin

Immenser Gewinn an Popularität

Page 21: Skalierung & Performance

Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin

Point of no return...

Caching mit Memcached Datenbankreplikation „gibt auf“ Datenbankpartitionierung macht Sinn Mediacluster für Content Neustrukturierung der Applikation und

Datenbank erforderlich

Page 22: Skalierung & Performance

Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin

Point of no return...-

Page 23: Skalierung & Performance

Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin

Wir erinnern uns....

Page 24: Skalierung & Performance

Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin

PANIK!

Überdenken des Geschäftsmodells Überarbeitung der gesamten Applikation Datenbankstrukturierung anhand von

„weichen“ Features

Partitionierung nach Herkunft, Nutzer ID, Themengebiet

Einsatz eines „Finde-Mechanismus“, um herauszufinden, welcher Nutzer in welchem Cluster beheimatet ist

Page 25: Skalierung & Performance

Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin

Zurücklehnen...

Applikation und Datenbank sind skalierbar Performance ist „in Ordnung“ Neue Features werden wieder entwickelt Code wird teilweise optimiert Wachstum, aber managebares Wachstum

Page 26: Skalierung & Performance

Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin

Best Practices

Trennung des IT-Bereichs in Development & Operations

Das Rad nicht zweimal erfinden. Vorhandene Lösungen nutzen.

Einfaches soll so einfach wie möglich gemacht werden (aber nicht einfacher *g*)

Gutes Equipment verwenden (Sun, Dell) Dienste trennen, „sanfte Updates“

-> Troubleshooting

Page 27: Skalierung & Performance

Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin

Best Practices

Keine Über-Optimierung der Software-> bei Bedarf step-by-step anpassen

Last-Tests der Applikation-> bevor es live zu Problemen führt

Caching! Caching! Caching! Memory! Memory! Memory! (64 bit) Nice to have vs. have to have

-> Performance Analyse neuer Features

Page 28: Skalierung & Performance

Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin

Best Practices

Software-Dokumentation Release Management

-> Entwickeln, Testen, Releasen Source Control

Page 29: Skalierung & Performance

Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin

Schönes Wochenende :-)

[email protected]