Slajd 1 - Proidea

Transkrypt

Slajd 1 - Proidea
Nieustanny rozwój


Tomasz Leśniewski
[email protected]
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
[email protected]