piątek, 21 maja 2010

Przyspieszanie Drupala 6.x

Przyśpieszanie Drupala 6.x

Mechanizmy pamięci podręcznej dane z "automatu" przez CMS Drupal są oczywiście rewelacyjne. Przemyślane, stabilne i rozszerzalne. Mało przejrzyście zaimplementowane co prawda, ale nie mam tu zastrzeżeń, bo wynika to głównie z konstrukcji samego języka PHP i z cudownie nieeleganckiej dowolności jaką on daje.
Osobiście, po cichu liczę na to, że w kolejnych wersjach Core Drupala zacznie bardziej przypominać nowoczesne systemy typu business i enterprise. Z tym jednak przyjdzie poczekać do pierwszej, w pełni obiektowej, zgodnej ze standardami, wersji języka PHP.

Duża plastyczność systemów opartych na Drupalu i próba utrzymywania spójnego API na przestrzeni pojedynczych wersji głównych (ale nie pomiędzy nimi - sposób pracy z core w wersji 5.x jest inny od tego, co mamy w 6.x), wymusza utrzymanie pewnej warstwy abstrakcji, nie zawsze dającej pole do łatwej optymalizacji pod konkretny projekt. Dodatkowo głównym zadaniem tej platformy jest bezawaryjna i bezproblemowa praca w ogromnej ilości potencjalnych środowisk działania. Co samo "przez się" daje nam czytelny sygnał, że w naszym danym, konkretnym przypadku pojawią się mechanizmy, z których nie będzie można automatycznie skorzystać i będzie potrzeba ( a nawet konieczność ) dostosowania kilku rzeczy przed przeniesieniem aplikacji z serwera developerskiego na maszynę produkcyjną.

Co nam daje taka optymalizacja ? Oczywiście: "to zależy", ale na pewno daje nam więcej niż jej brak. Cenna jest więc w ogóle świadomość, że możemy takiej optymalizacji dokonać, a zupełnie bezcenna staje się wiedza jak tego dokonać. Pamiętajmy że optymalizacja jest jednym z podstawowych etapów tworzenia oprogramowania, i choć nieraz będziemy mogli spokojnie oprzeć się na warstwie optymalizacyjnej oferowanej przez nasz framework: będzie to dla stron, które nie wymagają dynamicznych zmian i nie obsługują znacznej liczby użytkowników jednocześnie ( mniej niż 100 ), to już dla nieco większych systemów będziemy musieli zatroszczyć się o ręczne opracowania stosownej, dodatkowej warstwy optymalizującej aplikacje. Znane i powszechnie dostępne moduły optymalizacyjne do Drupala są wyśmienicie opisane na wielu stronach i blogach.
Ja natomiast, w kolejnych wpisach, chciałbym skupić się nad innym podejściem do osiągnięcia lepszej wydajności wdrażanych stron:

1. modyfikacja rdzenia
2. tworzenie optymalnych autorskich modułów
3. szukanie alternatywnych źródeł pamięci podręcznej
4. odchudzanie instalacji
5. optymalizacja bazy danych

Każdy z tych elementów (razem lub z osobna) jest stosowany w naszych wdrożeniach cms, a więc poparty jest żywą analizą działania i bogatym zapleczem testującym.

Brak komentarzy:

Prześlij komentarz