Skalierung & Performance

Preview:

Citation preview

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

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

Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin

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

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.

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 ;-)

Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin

High Availability

Redundanz der Systeme

2 Firewalls 2 Webserver 2 Datenbankserver usw...

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.

Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin

Skalierung

Beispiel:

Kurzfristig steigender Bedarf an Web- oder Datenbankkapazitäten

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)

Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin

Skalierung und Performance sind nicht das gleiche

Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin

Skalierung und Performance sind nicht das gleiche

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.

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.

Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin

Unsere neue Website :-)

Ein Server Anwendung,

Datenbank und Media auf einem System

Einfach zu verwalten Keine

Ausfallsicherheit

Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin

Der Programmierer wird unzufrieden

Anwendungs- und Datenbankebene werden auf getrennte Server verlagert.

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...

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

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...

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 :-)

Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin

Immenser Gewinn an Popularität

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

Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin

Point of no return...-

Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin

Wir erinnern uns....

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

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

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

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

Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin

Best Practices

Software-Dokumentation Release Management

-> Entwickeln, Testen, Releasen Source Control

Rene-Chr. Glembotzky, Head of ITCommunityCamp Berlin

Schönes Wochenende :-)

rene.glembotzky@goolive.de

Recommended