Jak stworzyć własną platformę pocztową? Rozmawiamy ze Stefanem Jurczykiem, architektem systemu w home.pl
Firma home.pl zakończyła niedawno wdrożenie nowego systemu poczty e-mailowej. Nie byłoby w tym nic dziwnego, gdyby nie fakt, że home.pl napisał nie tylko własnego webmaila, ale również serwer IMAP. O wyzwaniach, projektowaniu systemów i szansie stworzenia alternatywy dla Exchange’a, rozmawiamy ze Stefanem Jurczykiem z home.pl.
Dariusz Nawojczyk: Nowy webmail w ofercie home.pl to aplikacja, która od podstaw powstała wewnątrz firmy. Dlaczego zdecydowaliście się na takie rozwiązanie? Przecież na rynku nie brakuje gotowych klientów poczty online, które hosterzy mogą zaoferować swoim klientom.
Stefan Jurczyk: Powodów jest kilka. Na pewno głównym czynnikiem była konieczność dopasowania nowego elementu platformy do naszych potrzeb. System z jednej strony musiał bowiem obsługiwać dość dużą listę funkcji, z drugiej zaś musiał być jak najprostszy i przyjazny w obsłudze dla użytkowników końcowych. Musiał także pasować do określonej ścieżki rozwoju naszej oferty i usług. Do tego doszła długa lista wymogów technicznych związanych z wydajnością, skalowalnością, bezpieczeństwem, perspektywą rozwoju, kompatybilnością z istniejącą platformą hostingową i oczywiście możliwością migracji z poprzedniego systemu pocztowego.
Czy aż tak trudno było znaleźć coś pasującego i spełniającego te wymagania?
Zdziwisz się, ale tak. Czym innym jest znalezienie platformy pocztowej do obsługi poczty dla jednej firmy lub instytucji, z której będzie korzystało - powiedzmy - nawet kilkadziesiąt czy kilkaset osób, i zdecydowanie czym innym jest znalezienie platformy, z której aktywnie będzie korzystało prawie 200 tysięcy firm i ponad 700 tysięcy użytkowników. I co waże - istniejących już użytkowników, którzy korzystali z poprzedniej platformy.
Przebrnęliśmy przez testy ponad 20 rozwiązań dostępnych na rynku - większość z nich odpadała zazwyczaj po kilku lub kilkunastu minutach zabawy demo udostępnionym na stronie WWW producenta. Rozwiązania te miały słabą funkcjonalność lub też fatalny interfejs użytkownika. Do głębszej analizy przedostało się pięć rozwiązań - jednak i tu żadne (wówczas) nie spełniało wszystkich naszych wymogów, zazwyczaj technicznych lub licencyjnych.
Jak więc poradziliście sobie z kwestią skalowalności? System już w momencie startu miał obsługiwać setki tysięcy połączeń.
Wbrew pozorom okazało się to bardzo proste. Podjęliśmy decyzję, że cały „storage", który webmail potrzebuje dla swojej pracy, będzie przechowywany po stronie serwera poczty, a konkretnie po stronie protokołu, z którym webmail się komunikuje.
Padła decyzja o wyborze protokołu IMAP i dobudowania do niego kilku funkcjonalności, które potrzebowali nasi klienci. Dzięki temu pomiędzy naszym systemem pocztowym a skrzynką klienta nie ma żadnej bazy MySQL, która przechowywałaby kopie. Dlatego też dane, które są wyświetlane w webmailu, są to zawsze dane "na żywo" pobierane z serwerów IMAP. W ten sposób odpadł nam również problem synchronizacji.
Który z serwerów protokołu IMAP postanowiliście użyć?
No dobrze, serwer IMAP też napisaliśmy sami. Stworzyliśmy go w tej samej technologii, co nasz serwer WWW. Głównym powodem takiego podejścia była kwestia możliwości łatwego realizowania własnych rozszerzeń, dzięki czemu webmail może realizować dość rozbudowane zapytania.
A zaczęło się od tego, że napotkaliśmy po drodze problem z wydajnością. Ponieważ w nowym systemie nie ma warstwy pośredniczącej i webmail jest bezustannie połączony z serwerem IMAP, każda operacja w webmailu przekształca się na ciąg operacji IMAP-owych, które są wykonywane w czasie rzeczywistym.
Okazało się, że większość serwerów IMAP dostępnych na rynku Open Source jest po prostu zbyt wolna - to niezwykle ciężkie aplikacje, które zazwyczaj nie korzystają nawet z indeksowania, więc nie radziły sobie również w naszym środowisku. Najszybszy serwer, który udało nam się znaleźć, to Dovecot, ale w testach - co tu dużo mówić - odpadł również bardzo szybko.
Nie mieliśmy wyjścia - skończyło się na własnym formacie skrzynki pocztowej, na własnym formacie indeksów i na własnym serwerze IMAP. Można powiedzieć, że uzupełniliśmy sobie portfolio, bo przecież już wcześniej mieliśmy własny serwer WWW i POP3.
«poprzednia 1 2 następna »
Polecamy
Reklama
Komentarze
Aby dodać komentarz, musisz podać swój nick, treść komentarza oraz poprawnie przepisać oba słowa z obrazka
(słowa muszą być rozdzielone spacją).
W treści komentarza można używać języka formatowania BBcode.
Popularne
Pobierałeś pirackie pliki? Uważaj! Kontrole antypirackie w domach użytkowników to codzienność
36
Pobieraczek.pl pozwie internautów, którzy nie chcą płacić abonamentu
1455
Debata w sprawie ACTA: internauci spodziewali się chyba czegoś innego
14
Wynalazca WWW przed sądem: walczy tam o wolny dostęp do webowych technologii dla każdego
8
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
15
Internet w EU bez Facebooka i Google? Firmy nie mają wyboru: albo się dostosują, albo…
10
Zaktualizuj PHP do wersji 5.4, zyskasz za darmo nawet o kilkudziesiąt procent wyższą wydajność aplikacji
6
MSWiA zamówiło narzędzia do „złamania” Tora i podsłuchiwania internautów. Czy złamało przy tym prawo?
89
[Aktualizacja] Facebook zablokował Demotywatory.pl. W czym zawiniły?
36
FBI zamknęło Megaupload. Anonimowi dali się sprowokować. Teraz ich akcja uzasadni potrzebę SOPA?
17
Pobieraczek.pl pozwie internautów, którzy nie chcą płacić abonamentu
1455
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
15
„Donald matole, twój rząd dopadną kibole” – hakerska elita przyłącza się do walki z ACTA
23
Pobierałeś pirackie pliki? Uważaj! Kontrole antypirackie w domach użytkowników to codzienność
36
Społeczność
WebDev @slawek22
OK. Rozumiem i wiem, że koncerny stosują regionalizacje i nie...
slawek22 >są inne rodzime serwisy VOD z legalny filmami
WebDev no fakt... jeśli...
WebDev @BLACK BEAR®
"bo denerwujesz mi ludzi na forum” lool
Minister Zdrowia...
tobas ClickShop bardzo wolno działa!!!
Nie dajcie się nabrać na wygląd i...
blackbear @WebDev, widzę że muszę Ci rozjaśnić we łbie. Czytaj więc i nie pisz...
Jay Brak obsługi aplikacji x86/x64 ze zwykłych desktopów to kręcenie na siebie...
WebDev @slawek22
Tak jak ze wszystkim tak i z prawem własności można przesadzić...
- gardius: Dobra hurtownia sportowa (1)
- gardius: Tanie książki gdzie warto kupować? (1)
- Najdmen.pl: PROMOCJA, 500 DOMEN .EU ZA 1 PLN NETTO ! (1)
- VMLine: [Oferta] Serwery VPS Xen-HVM/OpenVZ z darmową administracją (2)
- Marek: Generowanie PDFa (2)
- Marek: problem z menu (2)
- Marek: Własne checkboxy w HTML,CSS (1)
Polecane książki
Praca
Czytaj Webhosting
Chcesz być na bieżąco z naszymi informacjami? Zapisz się na Newsletter.
Zarejestruj domenę
Sprawdź dostępność swojej domeny:
| .pl: | 0 zł | .com: | 19.90 zł | |
|---|---|---|---|---|
| .com.pl: | 0 zł | .eu: | 19.90 zł |










#1 kikut 2010-06-04 10:31:27 0
IP: 188.121.11.[...] Mozilla/5.0 (Windows; U; Windows NT 6.0; pl; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 (.NET CLR 3.5.30729)
#2 soran - Michał K. 2010-06-04 17:01:39 0
IP: 95.51.110.[...] Mozilla/5.0 (Windows; U; Windows NT 5.1; pl-PL; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 (.NET CLR 3.5.30729) FirePHP/0.4
#3 finrod® 2010-06-05 22:18:55 0
IP: 90.156.6.[...] Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; en-GB)
#4 aaa 2010-06-06 12:23:55 0
IP: 62.152.139.[...] Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.1 (KHTML, like Gecko) Chrome/6.0.422.0 Safari/534.1
#5 Andrzej P 2010-06-06 13:11:27 0
IP: 77.46.35.[...] Mozilla/5.0 (Windows; U; Windows NT 6.0; pl; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 ( .NET CLR 3.5.30729)
#6 markoni 2010-06-06 20:11:09 0
IP: 188.121.11.[...] Mozilla/5.0 (Windows; U; Windows NT 6.0; pl; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 (.NET CLR 3.5.30729)
#7 KubaG 2010-06-07 10:59:05 0
IP: 83.15.238.[...] Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3
#8 lolka 2010-06-07 12:46:01 0
IP: 213.192.88.[...] Opera/9.80 (X11; Linux x86_64; U; en) Presto/2.5.24 Version/10.53
#9 M... 2010-06-08 16:31:50 0
IP: 78.133.245.[...] Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.9 Safari/533.2
#10 xyz 2010-06-10 20:15:53 0
IP: 89.77.217.[...] Opera/9.80 (X11; Linux x86_64; U; pl) Presto/2.5.28/2.5.23 Version/10.60
#11 trolololo 2010-06-11 18:25:29 0
IP: 188.146.244.[...] Opera/9.80 (Windows NT 6.0; U; pl) Presto/2.2.15 Version/10.00
#12 robson__ 2010-06-13 22:04:05 0
IP: 78.88.167.[...] Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2.4) Gecko/20100527 Firefox/3.6.4
#13 soaking bathtubs 2011-03-10 03:47:34 0
IP: 116.23.85.[...] Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10
#14 soaking bathtubs 2011-03-10 03:48:10 0
IP: 116.23.85.[...] Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10
#15 qiao456 2011-12-21 03:19:10 0
IP: 116.27.189.[...] Mozilla/5.0 (Windows NT 5.1; rv:8.0.1) Gecko/20100101 Firefox/8.0.1