Niniejszy post służy za wprowadzenie do nowej serii This Month in Peekr, która wbrew swojej angielskiej nazwie będzie opisywała w języku polskim to, co zmieniło się w Peekrze w przeciągu ostatniego miesiąca. (Jeżeli zainteresowanie będzie większe, pojawiać się będą również tłumaczenia na język angielski, choć potrzebowałbym do tego pomocy chętnych i jednocześnie znających język angielski na poziomie co najmniej B2 - choć sam znam go bardzo dobrze, tak z powodu braku czasu nie mogę robić wszystkiego na raz.)
Nowy crawler
Po miesiącach ciągłego zapowiadania, prace w końcu ruszyły nad nową wersją robota indeksującego. Postanowiliśmy, że go podzielimy na dwie części: pierwszą jest panel kontrolny, gdzie będzie można zarządzać serwerami odpowiadającymi za przeszukiwanie danych przydatnych do budowania indeksu oraz mapami stron (sitemaps), drugą są procesy uruchamiane na serwerach, które skonfigurowane zostały w w/w panelu kontrolnym.
Nowa wersja robota indeksującego napisana jest w Golangu; jak to wpłynie na wydajność, jeszcze nie wiemy - nie mamy jak tego przetestować przynajmniej na chwilę obecną.
Podobnie jak w przypadku strony internetowej, kod robota indeksującego oczywiście udostępnimy do przeglądania jak i sugerowania z Waszej strony poprawek różnego rodzaju. No i przede wszystkim do tworzenia Waszych własnych indeksów.
Lista zrobionych na ten moment rzeczy
- panel kontrolny z podstawową autoryzacją
- podział na mapy stron i serwery
- zarządzanie jednym jak i drugim
- integracja z Elasticsearchem, żeby dokumenty mogłyby być dodawane
- listowanie serwerów jak i oczekujących map stron na przetworzenie
- blacklista, dzięki czemu będziecie mogli zarządzać na swoich instancjach Peekra, co jest okej, a co nie
To, co jeszcze oczekuje na zrobienie to głównie pomniejsze poprawki w panelu kontrolnym jak i sam proces crawlera, który będzie mógł być uruchamiany na wyznaczonych serwerach.
Nowy robot indeksujący będzie też odporny na restarty systemu operacyjnego w przeciwieństwie do dotychczasowych skryptów napisanych w Pythonie, dzięki czemu postęp indeksacji strony nie będzie stracony w przypadku np. nagłej awarii serwera lub zaplanowanego restartu.
300.000 wyszukiwań dziennie
Z jednej strony jest to kamień milowy warty świętowania, z drugiej strony Peekr potrafi też łapać zadyszki w przypadku jednoczesnego serwowania wyników jak i działania obecnych skryptów do indeksowania w Pythonie.
Choć podstawowe narzędzia do ochrony takie jak Fail2ban czy blokada scraperów do budowania najpopularniejszych modeli językowych (tych od Facebooka, Bytedance, Google itd.) zostały wdrożone, poszukujemy dalej sposobów na to, jak zapewnić w miarę szybkie generowanie wyników wyszukiwania przy tak dużym ruchu. Według logów rejestrujemy po co najmniej kilka tysięcy unikalnych adresów IP dziennie, jednak pojedynczy rekordziści potrafią wykonywać nawet po kilka tysięcy zapytań w przeciągu dnia, co może wskazywać na wykorzystanie serwerów proxy. Badamy jednak sytuację i na bieżąco będziemy wprowadzali kolejne stopnie ochrony przed ewentualnymi atakami typu (distributed) denial of service.
Finanse i końcowe słowa
Na naszym Patronite zarejestrowała się jedna osoba, która nas wspiera symboliczną kwotą 10 złotych od ~2 miesięcy. Jeszcze nie mamy dostępu do pieniędzy z racji tego, że musimy osiągnąć próg co najmniej 200 PLN - dopiero wtedy system Patronite’a zleci wypłatę.
Oczywiście inne metody wsparcia finansowego są też dostępne (np. na numer IBAN rachunku bankowego, lub w przypadku, gdy znamy się osobiście - poprzez gotówkę) - zachęcam do przejścia na DMy, żebyśmy się mogli dogadać!
Pierwszy raport finansowy (przychody, dochody, wydatki itd.) będzie dostępny, gdy będzie co w ogóle pokazać z tytułu przekazywanych na poczet Peekra pieniędzy.
W międzyczasie, widzimy się z kolejnym raportem w lutym!