Łagodny uścisk Pythona

Subskrybuj RSS A A A
6 listopada 2007
Rafał Jakubowski

Grono.net to jeden z największych na świecie serwisów internetowych tworzonych z wykorzystaniem technologii Python i frameworku Django.

Grono.net to jeden z największych na świecie serwisów internetowych tworzonych z wykorzystaniem technologii Python i frameworku Django.

Albert Szybiński dyrektor działu IT w Grono.netAlbert Szybiński dyrektor działu IT w Grono.netGrono.net, największy serwis społecznościowy w Polsce, powstało na przełomie 2003 i 2004 roku. Początkowo do jego budowania wykorzystywano technologię Java. O wyborze zadecydowała jej popularność i wygoda pisania kodu. Błyskawiczny sukces i rosnące wymagania (obecnie liczba użytkowników przekracza 1,4 mln) spowodowały, że Java szybko okazała się niewystarczająca do zaspokojenia wszystkich potrzeb. "Zastanawialiśmy się co robić, żeby Grono działało lepiej i szybciej. Java nie dawała nam elastyczności, której potrzebowaliśmy. Portal zmienia się bardzo szybko. Każdego dnia, a nawet kilka razy dziennie wprowadzane są zmiany" - mówi Albert Szybiński, dyrektor działu IT w Grono.net.

Po analizie zdecydowano się na podjęcie próby zastosowania technologii Python. Miała ona umożliwić optymalizację Grona pod względem szybkości pisania kodu i reagowania na nowe potrzeby biznesowe. W ocenie zarządzających serwisem Python oferował największą elastyczność i łatwość wprowadzania modyfikacji spośród dostępnych technologii.

Błyskawiczny sukces

Do obsługi Pythona nie potrzeba potężnych maszyn. Wystarczają zwykłe komputery wyposażone w procesory Intel Celeron. "Nie mieliśmy w owym czasie dostatecznych środków finansowych, żeby móc pozwolić sobie na wielkie wydatki. Zastanawialiśmy się jak oszczędzać na wszystkim. Serwer o takiej samej mocy dawał dużo większą wydajność w przypadku Pythona niż Javy" - tłumaczy Albert Szybiński.

Podstawowe problemy Grona koncentrowały się wokół poprawiania wydajności. Szybki wzrost liczby użytkowników Grona sprawiał, że po godzinie 20.00 serwery nie wytrzymywały obciążenia. Celem właścicieli Grona była szybkość działania na poziomie najlepszych serwisów tego typu na świecie. Ograniczeniem były przede wszystkim zasoby sprzętowe. W owym czasie, inaczej niż obecnie, firma nie dysponowała środkami finansowymi umożliwiającymi dokładanie kolejnych maszyn. "Analizy dostępnych możliwości skoncentrowały się wokół Google. Poza horyzontalnym modelem skalowania, w którym dołożenie kolejnego komputera liniowo podnosi wydajność, Google wykorzystywał Pythona. Rozpoczęliśmy testy i szybko okazało się, że to doskonały wybór" - mówi Albert Szybiński.

Pierwszy moduł napisany w Pythonie obsługiwał galerie zdjęć na Gronie. Firma była zaskoczona, że wykorzystując nową technologię od razu udało się jej stworzyć działający serwis. "Pierwsza wersja działała bez zarzutów. Byliśmy zaskoczeni. Python okazał się prosty i przyjazny w użyciu" - opowiada Marek Pułczyński, pionier pythonowych projektów Grona, obecnie odpowiedzialny za badania nowych technologii i rozwój serwisu. Decyzja o przepisaniu istniejącego kodu Javy do Pythona zapadła więc błyskawicznie. "Przepisywanie kodu było uciążliwe. Żaden programista nie lubi takiej roboty. Niemniej udało się zrealizować ten projekt w trzy miesiące. Można to było zrobić szybciej, ale jak to w portalu, trzeba było wykonywać mnóstwo prac bieżących związanych z utrzymaniem i rozwojem" - mówi Marek Pułczyński.

Ograniczenia frameworku

Pod względem czystej wydajności Python nie prezentuje się najlepiej. Jest wiele szybciej działających technologii. Niepodważalną zaletą jest jego elastyczność i szybkość tworzenia kodu. "Według różnych szacunków programista wykorzystujący Pythona w pewnych konkretnych zastosowaniach pisze kod 10 razy szybciej, niż zrobiłby to w Javie. To daje spore oszczędności" - mówi Marek Pułczyński. Poza tym Python podatny jest na skalowanie horyzontalne, co pozostaje w zgodzie z naczelną zasadą przyjętą przez Grono, czyli rozwoju poprzez dodawanie małych maszyn. W połączeniu z frameworkiem Django i bazą danych PostgreSQL, Python sprawdza się doskonale.

Na Grono.net praktycznie co miesiąc pojawiają się nowe funkcje. Programiści zyskali taką biegłość w produkcji kodu pythonowego, że framework Django zaczął stanowić dla nich ograniczenie. Na etapie budowy portalu Django sprawdzał się doskonale. Obecnie coraz częściej programiści Grona muszą go samodzielnie modyfikować. Przykładowo, w przypadku bardziej skomplikowanych zapytań nie używają już wbudowanego we framework mechanizmu ORM (Object-Relational Mapping). Zapytania do bazy danych tworzone są bezpośrednio w kodzie. Pomimo obiektywnych ograniczeń Django i "personalnych" zastrzeżeń niektórych programistów, firma pozytywnie ocenia jego wpływ na rozwój serwisu. "Na początku drogi był to optymalny wybór. Oceniając dzisiaj, alternatywą mógłby okazać się Pylons" - mówi Albert Szybiński.

Przedstawiciele Grona przyznają, że na obecnym etapie wycofanie się z Django stanowiłoby poważny problem. Dodają jednak, że Python i Django to tylko narzędzia. Najważniejszą kwestią pozostaje architektura serwisu. Django zawiera dużo błędów, ale pozwala bardzo szybko działać. Przykładem przyspieszania działania jest automatyczne tworzenie panelu administracyjnego do napisanego kodu. To o połowę skraca nakład pracy na projekt. Dlatego Grono nadal korzysta z Django, choć obecnie jest to dosyć mocno zmodyfikowana wersja frameworku.

Oceń artykuł

średnio: 0 liczba ocen: 0
1  2  dalej »

Komentarze (0)

Najnowsze

Państwo do konsolidacji

Obywatele uważają administrację publiczną za jeden organizm. W rzeczywistości jest to kilka tysięcy oddzielnych struktur, obrosłych biurokratycznymi naroślami. Czy można zracjonalizować działanie państwa? Jak w tym może pomóc informatyka?

Zarządzanie po japońsku

W praktyce przemysłowej wypracowano szereg skutecznych metod zarządzania. Wiele powstało w Japonii. Dlaczego, mimo ich efektywności, nie zawsze są stosowane w biznesie?

e-Sąd z odsieczą sprawiedliwości

Polski wymiar sprawiedliwości postrzegany jest jako skostniały i opieszały. Tymczasem kolejne e-usługi udostępniane przez Ministerstwo Sprawiedliwości ułatwiają życie przedsiębiorcom i usprawniają pracę sądów.

e-Zdrowie w Polsce i na świecie

Projekty informatyzacji służby zdrowia realizowane są na świecie z różnym powodzeniem. Skąd Polska mogłaby czerpać wzorce? A może jesteśmy skazani na własne rozwiązania?

Raport Państwo 2.0, czyli nowa wizja informatyzacji państwa

Michał Boni, minister administracji i cyfryzacji, zaprezentował raport "Polska 2.0. Nowy start dla e-administracji". Przedstawia on informacje na temat stanu realizacji projektów będących w gestii nowo utworzonego ministerstwa oraz prezentuje kierunki dalszych działań związanych z informatyzacją i cyfryzacją administracji publicznej w naszym kraju.

Cyberprzestępcy podążają za użytkownikami

Już dwie na trzy polskie firmy odnotowały ataki lub awarie, które spowodowały spadek produkcji. Co trzecia firma utraciła dane. Liczba takich przypadków będzie rosła, bo hakerzy biorą na cel najbardziej masowe technologie. Szybko reagują też na zmiany w firmowej architekturze.

Jak zaplanować karierę w branży IT

Doświadczenia łączone na różnych stanowiskach w firmach o odmiennych profilach są szczególnie cenione przez pracodawców. Dlatego warto głęboko przeanalizować możliwości rozwoju kariery, które obecnie stwarza rynek IT.

Rekomendacje



Serwisy IDG - Warunki obsługi - Kontakt - Redakcja - Regulamin - O nas - Polityka prywatności - Serwis zgodny z ASME
Reklama - Licencjonowanie treści - Prenumerata: Computerworld, Networld, PC World
Computerworld Polska i Computerworld Polska online są znakami towarowymi IDG Poland SA.
© Copyright 2012 International Data Group Poland S.A. 04-204 Warszawa ul. Jordanowska 12 tel.(+4822)321-78-00 fax(+4822)321-78-88