Nieustanny rozwój Tomasz Leśniewski tomasz.lesniewski@netart.pl
Poczta w chmurze? Czy nazwa.pl ma pocztę w chmurze? Biorąc pod uwagę poniższe kryteria, tak: Dla końcowego użytkownika dostępna jest pełnowartościowa usługa z której może korzystać zarówno przez dostarczaną przez nas aplikacje, jak i swojego klienta jak z czarnej skrzynki, nie interesuje go co jest poniżej i jak to działa Skalowalność i wydajność rozwiązania wystarczy dołożyć klocek do układanki Współdzielenie infrastruktury przez wielu klientów
Statystyki Użytkownicy: Ponad 1 milion użytkowników korzystających z poczty w nazwa.pl Ilość danych jaką generują użytkownicy: Około 4-5 milionów wiadomości dziennie średnio 2,2TB dziennie (to prawie 300Mb/s) Średnia wielkość wiadomości: 200kB
Statystyki
Statystyki Spam: Średnio 30% wiadomości jest odrzucanych przez nasz system antyspamowy Około połowa spamu jaki otrzymujemy, zatrzymywana jest już podczas odpytywania list RBL Pozostałe wiadomości są zatrzymywane przez pozostałe elementy systemu wszelkiego rodzaju miltery, skanery treści, antywirusy
System pocztowy nazwa.pl Jak nasz system wyglądał kilka lat temu: Wszystkie usługi dostępne dla klienta utrzymywane na tych samych maszynach Problemy z wydajnością przy większej ilości klientów Duża ilość pracy administratora Jak się rozwijał: Wyniesienie usług na całkowicie oddzielne maszyny Centralna baza użytkowników Podział na funkcjonalne klocki W efekcie znaczne zwiększenie wydajność systemu pocztowego i umożliwienie dalszego rozwoju
Schemat poczty w nazwa.pl
Schemat poczty w nazwa.pl Bezpośrednim stykiem całego systemu z internetem jest nginx działający jako proxy: Proksuje wszystkie protokoły pocztowe (smtp, pop3, imap) Przeprowadza autoryzację użytkowników w webservice Przekazuje połączenie do wskazanego przez webservice smarthosta lub mailstore
Schemat poczty w nazwa.pl Wyodrębnione grupy serwerów pełniących te same funkcje Każdy z serwerów może połączyć się do dowolnego z serwerów z danej grupy do przekazania wiadomości, odpytania bazy użytkowników itp. (wyjątkiem są serwery mailstore) Łatwe zwiększenie wydajności wystarczy dołożyć kolejną maszynę. Duży stopień niezawodności usługi przy dużej liczbie maszyn, awaria jednej nie powoduje problemu
Smarthost
Smarthost Smarthost: Wieloprocesorowe maszyny Odpowiednio skonfigurowany postfix Webservice odpowiedzialny za autoryzację użytkowników oraz rozdzielanie poczty pomiędzy poszczególne serwery
Antyspam
Antyspam System antyspamowy zbudowany jest min. w oparciu o powszechnie znane rozwiązania: Listy RBL Amavis Spamassassin Clamav Oraz autorskie mechanizmy: Definiowane przez użytkowników listy
LDAP
LDAP Jako centralna baza użytkowników działa LDAP. Rozwiązanie to zapewnia: Łatwość wyciągania danych dzięki drzewiastej strukturze (unikamy skomplikowanych zapytań z wieloma złączeniami tabel, które miały by miejsce w relacyjnych bazach) Bezpieczeństwo danych (replikacja, złożone ACLki)
LDAP Zwiększenie wydajności oraz bezpieczeństwa przez kaskadową replikację danych: Przy jednej instancji LDAPa na każdy serwer smarthost, widoczne były braki w wydajności Utworzenie hierarchicznej struktury dało możliwość lepszego wykorzystania sprzęt i łatwiejszej rozbudowy Duża wydajność - kilkanaście replik bazy danych dostępnych dla każdego z serwerów
Mailstore
Mailstore Mailstore: Kilka instancji dovecota na każdym z serwerów Duża ilość pamięci RAM Wydajny podsystem dyskowy DAS
Webmail
Webmail Webmail: Stara aplikacja GroupOffice została zastąpiona nowym rozwiązaniem OpenXchange Skalowalność Zwiększenie funkcjonalności Nowe możliwości
Spam a hosting Duża skala problemu Ilość użytkowników Specyficzne problemy w walce ze spamem w środowisku hostingowym: Konieczność zabezpieczania zarówno naszych klientów przed spamem przychodzącym z zewnątrz, jak i pozostałych użytkowników Internetu, przed spamem wychodzącym z naszych serwerów.
Jak walczymy ze spamem Zestaw mechanizmów antyspamowych: Listy adresów IP (DNSBL, RBL) Filtry (amavis, spamassassin) Własne mechanizmy - definiowane przez użytkowników listy Kolejki pocztowe dla poczty nieuwierzytelnionej oraz uwierzytelnionej Rygorystyczne polityka antyspamowa w stosunku do użytkowników rozsyłających spam J.A.C.E.K
A tego nie używamy SPF niestety, nie jest lekiem na całe zło Brak zgodności z RFC Problem z aliasami do innych providerów definiowanymi przez użytkowników Nie powinien być rozpatrywany jako mechanizm antyspamowy Greylisting Wprowadza znaczne opóźnienia w dostarczaniu wiadomości do użytkowników Został odrzucony jako świadoma decyzja biznesowa
Co się wydarzyło w styczniu? Styczniowa awaria poczty w nazwa.pl Co się stało: Podczas rozszerzania schematu bazy LDAP, zmieniło się zachowanie zapytań do elementów wyszukiwania doszły nowe, nieindeksowane atrybuty Mimo wielu testów poza środowiskiem produkcyjnym, zmiana zachowania nie ujawniła się ze względu na skalę środowiska Problem objawił się dopiero pod koniec prac na produkcyjnym systemie (rozszerzenie schematu + uzupełnienie nowymi danymi)
Co się wydarzyło w styczniu? W efekcie: Rozwiązywanie map trwało znacznie dłużej z ~15ms do kilku sekund Wystąpiły problemy z autoryzacją użytkowników zapytania do bazy trwały znacznie dłużej, przez co występowały timeouty Kolejka maili urosła do ponad 1,5 miliona Przez kilka porannych godzin klienci mieli problemy z dostępem do swoich skrzynek oraz wysyłaniem poczty Kilka kolejnych godzin trwało dostarczanie zaległych wiadomości
Co się wydarzyło w styczniu? Jak działaliśmy: Problem został rozpoznany w ciągu kilkunastu minut Chwilę później zostały założone odpowiednie indeksy w bazie danych na nowych atrybutach Niestety, reindeksacja musi być wykonana na wszystkich instancjach LDAPa, a taka operacja na obciążonych serwerach trwa bardzo długo Następnie trzeba poczekać na dostarczenie wszystkich zaległych wiadomości
Jakie wnioski? Co zmieniliśmy: Mimo i tak wielkiej wagi przykładanej do testów, staramy się jeszcze zwiększyć ich ilość Wydzieliliśmy dedykowane maszyny pod bazę LDAP Utworzyliśmy nową strukturę replikacji LDAP, posiadającą o wiele większą wydajność Zapewnienie w każdym momencie prac punktu powrotu
Co dalej Dalszy rozwój infrastruktury aby zapewni odpowiednią niezawodność oraz wydajność przy ciągłym wzroście ilości użytkowników korzystających z poczty w nazwa.pl Wdrażanie oraz rozwijanie nowych rozwiązań pozwalających zwiększyć funkcjonalność naszego systemu Jak najmniej awarii ;)
Dziękuję za uwagę Tomasz Leśniewski tomasz.lesniewski@netart.pl