Łagodny uścisk Pythona

Prosta konwersja

Początkowo serwis budowany był tylko przez jedną osobę. Z czasem zatrudniano kolejne, w praktyce wszyscy uczyli się Pythona praktycznie od zera. Znalezienie programistów mających odpowiednie doświadczenie okazało się niemożliwe. Przejście np. od Javy czy PHP do nowej technologii dla wielu programistów nie jest takie trudne, jak mogłoby się wydawać. Wprawdzie nowa osoba osiąga odpowiedni do pracy w Gronie poziom umiejętności po ok. pół roku, to jednak już po krótkim przeszkoleniu może zacząć pracować przy mniej skomplikowanych projektach.

"Mamy duży problem z rekrutacją. Bardzo trudno znaleźć specjalistów od Pythona. Poza tym, tak jak w przypadku każdego innego języka, dobry programista Pythona ma już pracę. Staramy się więc zatrudniać dobrych programistów Javy lub PHP i uczyć ich Pythona. Z doświadczenia mogę powiedzieć, że lepiej sprawdzają się ci od PHP. Programiści Javy mają przyzwyczajenia, które do końca się nie sprawdzają" - mówi Albert Szybiński.

Technologie Grona

Python

Dynamiczny, interpretowalny język obiektowy wysokiego poziomu. Pośród zalet można wymienić czytelną składnię, dużą liczbę bibliotek oraz prężną społeczność użytkowników. Po przepisaniu kodu z Javy na Pytona Grono zostało pierwszym dużym serwisem w Polsce napisanym wyłącznie w tym języku.

Django

Jeden z pierwszych frameworków służących do szybkiego pisania i rozwijania aplikacji internetowych w Pythonie. Grono jest największym na świecie serwisem wykorzystującym tę technologię. Django zyskał w ostatnim czasie dużą popularność. Stał się istotną alternatywą dla Ruby on Rails, standardowego frameworku małych aplikacji Web 2.0, który umożliwia jeszcze szybsze tworzenie aplikacji. Ze względu na to doskonale nadaje się do budowania start-upów. Trzeba jednak przy tym dodać, że jest on wolniejszy niż Django. Przy wzroście liczby użytkowników do obsłużenia obciążenia potrzebne są nie dziesiątki, ale setki serwerów.

PostgreSQL

Szybka, skalowalna, baza danych udostępniana jako open source. Grono wykorzystuje ją do gromadzenia praktycznie wszystkich danych.

MySQL

Prosta, relacyjna baza danych. Jej główną zaletą jest szybkość. Grono wykorzystuje ją w projektach, gdzie niezbędny jest bardzo szybki mechanizm składowania danych.

Memcache

Warstwa pośrednia między bazą danych a sprzętem. Maszyna najpierw odpytuje memcache, a dopiero jeśli nie znajdzie tam potrzebnych danych zadaje pytanie do bazy danych. Bez tego mechanizmu baza danych nie byłaby w stanie obsłużyć ruchu na Gronie. Programiści Grona stworzyli własny moduł (memoize) do komunikacji z memcache, który znacznie przyspiesza wyświetlanie każdej strony.

Spreadfs

Napisany przez programistów Grona autorski "system plików" całkowicie w Pythonie. Dzięki modelowi RAIS i asynchronicznej obsłudze wydarzeń umożliwia przechowywanie praktycznie dowolnych ilości danych bez użycia zaawansowanych maszyn.

PyLucene

Lucene to napisany w Javie popularny silnik wyszukiwarki pełnotekstowej. PyLucene to "port", który umożliwia współpracę aplikacji Pythonowych z Lucene. Dzięki unikalnemu podejściu do indeksowania danych pozwala na wykorzystywanie tanich komputerów do indeksowania. Nie jest wymagane systemowe rozproszenie PyLucene.

Haproxy

Napisany na platformę Linux bardzo szybki mechanizm do równoważenia obciążenia (load balancer) oraz webproxy. Alternatywą są drogie rozwiązania sprzętowe. Na razie jednak - jak przekonują programiści Grona - nie natrafiono na jakiekolwiek ograniczenia Haproxy. Serwis współpracuje bezpośrednio z twórcą tej technologii. Dzięki temu ma wpływ na kształt najnowszych wersji projektu.

Gentoo

Dystrybucja Linuxa wykorzystywana przez Grono. O jej wyborze zadecydowały duże możliwości dopasowania systemu do specyficznych potrzeb serwisu.


TOP 200