Sysdig – jak mogłem bez tego żyć?

Jakie zapytania do MySQLa korzystają z tabel tymczasowych? Który proces najbardziej obciąża sieć? Gdzie jest wąskie gardło aplikacji? ♫ … możesz wiedzieć jeśli chcesz … ♫ Sysdig to nowe narzędzie do śledzenia działania systemu inspirowane stracem, solarisowym dtracem i tcpdumpem, a na czubku tortu wisienka z Lua. Jedno z kategorii „jak ja mogłem wcześniej bez tego żyć”?

Pewnie często diagnozujecie problemy wydajnościowe. Coś nie działa lub trzeba sprawdzić jak to coś zachowuje się w bebechach. Bez odpowiednich narzędzi proces działający w systemie jest jak czarna skrzynka. Coś wchodzi, coś wychodzi, ale co się dzieje w środku?



sys

Czytaj dalej


Jak wziąć na klatę duży ruch w serwisie…

…i przeżyć, by o tym opowiedzieć

Wyobraź sobie, że opiekujesz się wcale-nie-takim-małym portalem informacyjnym. 4 mln odsłon miesięcznie, cytują Was inne media, regularnie trafiacie na Wykop. Macie grono wiernych czytelników, nowych wciąż przybywa. Codziennie kilka nowych artykułów, gorące dyskusje pod każdym z nich. Rozwijacie się stale ale stabilnie. Przeszliście z VPSa na dedyka; macie zapasy mocy. Twoim zadaniem jest wprowadzanie nowych funkcjonalności, poprawianie błędów. Czas płynie miło i przyjemnie.

Nagle… nieoczekiwane wydarzenie – napięta sytuacja na Ukrainie! Media prześcigają się w podawaniu kolejnych informacji, minuta po minucie relacjonują wydarzenia. Wasi czytelnicy szturmują Wasz serwis! Ruch na portalu skacze kilkukrotnie. Marzenie dla wydawcy? Niekoniecznie… Pierwsze odkrycie: serwis nie jest przygotowany na tak duży ruch. Drugie: serwer dedykowany się nie skaluje. Co robić?

keep calm

Poznaj rozwiązania, które zapewnią Ci pełen spokój, gdy w Twoim serwisie pojawi się duży ruch.

Czytaj dalej


Zrób to sam – czyli wirtualna lekcja Ansible

W trakcie konferencji PyCon PL 2013 Wiktor Kołodziej (deployed.pl) i Grzegorz Nosek (MegiTeam) pierwszy raz zrealizowali swój autorski pomysł na warszaty prezentujące Ansible – narzędzie do automatyzacji zadań i zarządzania konfiguracją. Od tego czasu warsztaty wędrują po najciekawszych konferencjach IT w Polsce. Jak autorzy warsztatów przyznają, pokochali Ansible od pierwszego wejrzenia, a miłość ta narodziła się z… czystego, pielęgnowanego przez lata lenistwa. Automatyzacja jest przecież dla tych, którzy chcą tak robić, żeby się nie narobić! 

Jeśli właśnie zdobyliśmy Twoją uwagę, mamy dla Ciebie coś więcej! Grzesiek i Wiktor udostępnili nam wszystkie materiały z warsztatów. Wystarczy więc zaledwie kilka godzin by zainstalować wirtualki i przeklikać się przez opracowane slajdy, instrukcje, ćwiczenia. Jeśli będziecie mieli jakiekolwiek pytania – możecie umieścić je pod wpisem. Poprosimy autorów o odpowiedź. Challenge accepted? No to jedziemy!

Czytaj dalej


Django sem, czyli jak z EmailMessage zrobić SignedEmailMessage

Wbrew pozorom podpisywanie maili nie zawsze kończy się na „Pozdrawiam”. Bezpieczeństwo w sieci ma wiele odsłon, a jedną z nich jest certyfikacja maili.

Czytaj dalej


Varnish

Varnish jest zainstalowany na serwerach i możesz z niego korzystać na hostingu współdzielonym i VPSach. Uruchomisz go we własnym zakresie, na prawach Twojego konta – będzie pośredniczył pomiędzy Nginxem a Twoją aplikacją (patrz schemat).

schemat konfiguracji

Czytaj dalej


Cache’owanie w Railsach

Przychodzi czasem taki moment w życiu aplikacji, że trzeba pomyśleć o cache’owaniu. To zazwyczaj miły moment, bo często wynika ze sporego wzrostu liczby użytkowników, ale to nie zmienia faktu, że cache prosty nie jest. Tzn. niby jest prosty, ale jak dochodzi do szczegółów to się sprawy komplikują — jak zwykle. Można do tego problemu podejść na 1000 różnych sposobów, każdy ma jakieś wady i zalety, ja przedstawiam rozwiązanie, którego używamy i które polecam.

Czytaj dalej


Optymalizacja pamięci w Django

Pamięć na serwerach Megiteam nie jest nieskończona. Wybierając dany plan hostingowy wybieramy limit pamięci RAM jaki będzie przysługiwał na nasze aplikacje. Aplikacje np. Django nie potrzebują wiele pamięci by działać. Jeżeli jednak nasza aplikacja zawiera pewne specyficzne drobne błędy w kodzie to może sobie przypisywać więcej RAMu niż potrzebuje. Ograniczy to ilość aplikacji jakie bylibyśmy w stanie uruchomić na serwerze.

Czytaj dalej


Umarł agent, niech żyje agent

Przez pięć lat praktycznie całym środowiskiem hostingowym MegiTeam zarządzał niepozorny skrypt w Perlu, zwany agentem. Zakładał konta, uruchamiał aplikacje, pilnował przydzielonej pamięci itp. Radził sobie nienajgorzej, ale z biegiem czasu wychodziły na wierzch różne braki, a stara architektura nie pozwalała nam na szybkie rozwijanie jego kodu. Dlatego od pewnego czasu pracowaliśmy nad nowym narzędziem, które będzie się lepiej dostosowywać do zmieniających się Waszych i naszych potrzeb. Tada, oto nowy agent.

mtagent-architektura

Czytaj dalej


SQL Injection w Railsach

W Railsach od 3.0 w górę odkryto podatność na SQL Injection. Jeżeli w swoim kodzie macie konstrukcje podobne do tej

Post.where(:id => params[:id]).all

musicie poprawić na

Post.where(:id => params[:id]).all

musicie poprawić na

Post.where(:id => params[:id].to_s).all

lub zaktualizować Railsy.

Więcej informacji tutaj:

https://groups.google.com/group/rubyonrails-security/browse_thread/thread/7546a238e1962f59

Czytaj dalej


rvm

Wpis o instalacji RVMa u nas pojawił się na blogu swego czasu, ale z nowszą wersją projektu zmienił się sposób instalacji i późniejszej konfiguracji i nasz opis przestał być aktualny. Niniejszym uaktualniam wpis i dorzucam do tego opis instalacji Redmine’a.

Czytaj dalej