Nie ukrywam, że notka została zainspirowana ostatnim postem na The Daily WTF. Podobną sytuacje mieliśmy całkiem niedawno w pracy.
Jako project lead
systemu CMS wego, mam dość napięty harmonogram i całość mocy przerobowych firmy jest przeze mnie zaangażowana w rozwój tegoż systemu właśnie. W związku z tym, kiedy pojawił się klient, który wymagał indywidualnego rozwiązania, zadecydowano, że zlecenie zostanie outsource’owane, a realizacja przebiegnie poza firmą.
Nie byłoby w tym nic dziwnego, gdyby nie fakt, że po kilku dniach dowiedzieliśmy się, że aplikacja zostanie zbudowana w oparciu o eZ publish — system bardziej enterprise’owy niż statek kosmiczny bohaterów Star Treka. Wcześniejsze doświadczenia z refaktoryzacją aplikacji budowanych na eZ bynajmniej nie przepełniały mnie optymizmem, ale byłem mimo wszystko dobrej myśli — co prawda, już raz zdarzyło mi się przepisywać aplikację oryginalnie opartą na rzeczonym środowisku na wersję standalone, bo wydajność okazała się kwestią krytyczną, ale z całą pewnością w ciągu ostatniego roku eZ się rozwinął. Niczym Bogusław Wołoszański, powinienem teraz powiedzieć tego dnia nie mogli jeszcze przypuszczać, że już za dziesięć dni, w biurze obok, odbędzie się spotkanie, które odwróci bieg historii.
W dziesięć dni później pojawił się bowiem wdrożeniowiec, specjalista od pewnego systemu, którego domena macierzysta mówi wszystko (easy? no!). Rzeczona aplikacja została zbudowana w czasie, który nazwano rekordowym
(choć jej oparcie na frameworku typu Cake z pewnością zaowocowałoby skróceniem tego czasu, jak i oszczędzeniem nam kolejnych kłopotów, ale o tym za chwilę). Przyszedł czas na prezentację. Przygotowania chyżo ruszyły, a specjalista — niczym rączy rumak — wyrwał z kopyta i zatrzymał się na najbliższym słupie. Okazało się bowiem, że nasza wersja PHP jest zbyt nowa. eZ nie działa z PHP5 i tyle, żadna siła boska ni świecka do kooperacji go nie zmusi. Co prawda, wymaga MySQL5, ale parsera oczekuje prehistorycznego.
W 24 roboczogodziny później (Qwiat, jako admin, się specjalnie nie nudzi i bez takich kwiatków), system został uruchomiony. I dnia trzeciego zobaczył Pan, że aplikacja klika i było to dobre.
Chciałoby się powiedzieć, że wszystko śmiga,
ale byłoby to wyjątkowo niecelne sformułowanie. Strony serwisu potrzebują około sekundy na wyświetlenie. Pod jednym warunkiem — że znajdują się w cache. Jeśli się jednak przedawnią, na radość podziwiania kilkudziesięciu linijek HTML przyjdzie nam czekać dokładnie 35 sekund. Na serwerze, gdzie znajduje się kilkaset serwisów, w tym znacznie bardziej skomplikowane rozwiązania, które — bez użycia cache dla danych z bazy — radzą sobie w dobrze poniżej pół sekundy.
Cóż na to można zaradzić? Wdrożeniowiec zalecił instalację eAcceleratora i rekompilację MySQL z parametrami podanymi na stronie eZ publish.
Pewnie, a potem zakup dedykowanego serwera. eAccelerator przyspieszył proces generowania strony o całe 3 sekundy, druga sugestia trafiła wprost do /dev/null. Ale czegóż można się spodziewać po aplikacjach z enterprise
w sloganie marketingowym?
Zapomniałem wspomnieć, że w sytuacji, gdzie wszystkie vhosty mają ustawiony limit pamięci na nie więcej niż 12 8 MB, nasz system na eZ z rozkoszą poprosił o 50 MB żeby się w ogóle uruchomić. Boję się sprawdzać, jak wygląda diagram przepływu sterowania w kodzie, ale na usta ciśnie się cytat z komentarzy do wspomnianego posta na The Daily WTF:
It forgets the steps where it prints an image of the transactions and then scans them on a desktop to get the wood border.
Technorati Tags: ez cms software web enterprise

“Genialny” wdrożeniowiec nie był w stanie określić przed wdrożeniem wymagań CMS-u począwszy od wersji PHP a kończywszy na liście wymaganych modułów PHP. Zabawa polegała na instalacji wszystkich modułów jakie wyświetlała funkcja php_info(), odpalona na jego laptopie (oczywiście to był jakiś automat PHP-owy więc część jest zbędnych).
Na koniec dodam, że ów magik nie potrafił nawet skonfigurować phpMyAdmina, strach pomyśleć, że tacy ludzie próbują uchodzić z “twórców zaawansowanych serwisów internetowych”
coz, moze ja podsumuje innym sloganem “powinni tego zabronic”
Na sam koniec owocnego spotkania wyla mi kawe na moje nowe biale spodnie… Boze gdzie takich sieja?
Jak sam widzisz to jest klasa enterprise. Jeżeli jesteś za cienki to wychodząc na ring dostaniesz w morde. Do aplikacji klasy enterprise musisz dorzucić jeszcze system który to uciągnie. Oczywiście też klasy enterprise - SLES albo RH ES. A jak dorzucisz serwer, po raz kolejny produkt klasy enterprise, np. IBM xSeries 336, 2 x Xeon HT 3,2GHz, 4 GB ramu, to może, zaznaczam może, uda Ci się spełnić wymagania i wszystko będzie działało bez zająknięcia.
A tak na poważnie to współczuję. Za dużo mam do czynienia w pracy z czymś co zwie się enterprise i wiem, że jest to nic innego jak tylko mydlenie oczu ludziom, a dokładniej marketoidom. Ale cóż, taki świat, takie życie.
8MB per vhost? Rozumiem, że to tylko profilaktyka i że nie jesteście ograniczani przez zasoby aż tak bardzo?
yZZuF:
8MB to domyślna konfiguracja, pozwala łatwo wyłapać błędy w kodzie (jak coś nagle zechce sobie zaalokować 20 MB). Jeśli ktoś potrzebuje więcej, to dostanie, ale ciężko znaleźć system w PHP, który by wymagał pamięci liczonej w dziesiątkach megabajtów ;)
Ten Wego ma logo inspirowane 37signals na maksa. ;-)
heh - zawsze czułem, że to całe eZ jest o d… potłuc… jakiś czas temu miałem wątpliwą przyjemność przerabiać sklep oparty o eZ publish (działał dramatycznie wolno i brakowało kilku istotnych elementów) i generalnie skończyło się na zrobieniu wszystkiego od nowa.
Do ww. limitów pamięci dodać należy spore zapotrzebowanie na powierzchnię dyskową ;)))
Nieustająco dziwię się też adminom serwisu PHP.pl, którzy są do tego stopnia zakochani w eZ, że obecnie http://www.php.pl to ramka ładująca stronę z phppl.ezpublish.no (widać nie udało się znaleźć w PL wystarczająco enterprise’owego hostingu).
Witam, znalazłem Twój wpis zupełnie przypadkowo przeglądając polski internet dla słów “eZ+publish”. Zainteresowało mnie którą firmę reprezentował ów wdrożeniowiec?
Ponadto wydajności systemu to koszt który płacisz za funkcjonalność i elastyczność, a te są imponujące. eZ publish to duża aplikacja i jeżeli ktoś decyduje sie z niej korzystać, powinien spełniać wymagania, podobnie jak z każdym innym softwarem.
Co do osiągów eZ publish polecam wątek:
http://ez.no/community/forum/install_configuration/ez_publish_performance/
Hosting w Polsce? Proszę bardzo:
kei.pl
home.pl
webserver.pl
Każda z tych firm hostuje co najmniej kilka instalacji eZ publish, bez problemów i czasy generowania strony są bardzo dobre. Jeżeli trzeba, możesz korzystać ze static cache. Być może ów wdrożenioweic, pseudo-profesjonalista nie był w stanie zasugerować albo nie wiedział która firma eZ publish hostować może.
Padł także argument braku kompatybilności z PHP 5. Ty jako “project lead” powinieneś znać i widzieć różnice miedzy aplikacjami typu “PHP 5 ready” (które na PHP 5 można tylko uruchomić) a aplikacjami które w pełni korzystają z dobrodziejstw obiektywności PHP 5. Co więcej proces tworzenia eZ publish 4, które będzie PHP 5 strict został zapoczątkowany wraz z pojawieniem sie eZ Components. Wysoka wydajność obiektowego PHP 5 będzie miała na pewno odzwierciedlenie w osiągach eZ publish 4. O tym ze obiektowe PHP 4 jest wolne, wie każdy, cóż zrobić taka platforma …
pozdrawiam
Łukasz
Łukasz:
Z tym, że eZ Publish z PHP5.1 umiera na błędach składni.
Reszta twojego komentarza to marketingowa papka.
Tłumaczenie niskiej szybkości (a może wysokiej powolności) elastycznością, to jak sprzedawanie w salonie samochodowym amfibii, wciskanie jej człowiekowi, który potrzebuje malucha i tłumaczenie, że co prawda jedno tankowanie to cała pensja, ale za to można sobie pływać w razie powodzi.
Patrys,
Umier bo kiedy powstawał, PHP 5.1 było w powijakach ;)
Z manuala PHP 5
The behavior of array_merge() was modified in PHP 5. Unlike PHP 4, array_merge() now only accepts parameters of type array. However, you can use typecasting to merge other types. See the example below for details.
O tym problemie piszesz?
Zgadzam sie ze software trzeba dobierać do potrzeb. Jeżeli eZ publish je przewyższa, zostaw go w spokoju …