Twórcy platformy współpracy SourceHut opublikowali raport z incydentu, w wyniku którego działanie usługi zostało zakłócone przez 7 dni z powodu przedłużającego się ataku DDoS, na który infrastruktura projektu nie była przygotowana. Podstawowe usługi udało się przywrócić trzeciego dnia, ale niektóre serwisy były niedostępne od 10 do 17 stycznia. Na początkowym etapie ataku deweloperzy nie zdążyli zareagować i próbować przeciwdziałać problemowi po stronie swoich serwerów, ponieważ cały ruch do serwerów SourceHut został całkowicie zablokowany po stronie dostawcy.
Do zapewnienia działania SourceHut wykorzystano serwery trzy centra danych. W pierwszym znajdowała się aktywna konfiguracja, drugie służyło do tworzenia kopii zapasowych, a trzecie było używane do eksperymentów związanych z migracją infrastruktury do bardziej skalowalnej i odpornej na awarie wersji usługi (rozwijano wariant SourceHut nowej generacji).
Na rozwiązanie kwestii zapewnienia dostępu do swoich serwerów w głównym centrum danych po zablokowaniu potrzebowano około 9 godzin, ale deweloperzy nie zdążyli nic zrobić, ponieważ rano atak się nasilił i objął całą podsieć, po czym dostawca ponownie przekierował ruch do interfejsu null. Deweloperzy byli zmuszeni do pilnego rozpoczęcia pracy nad wdrażaniem infrastruktury SourceHut w innym centrum danych z kopii zapasowych (czasową podsieć do dostępu do głównych serwerów udało się uzyskać dopiero po 2 dniach).
Aby chronić się przed atakiem DDoS na poziomie sieci, uznano, że najlepszym rozwiązaniem jest umieszczenie pośredniego serwera serwera w sieci dostawcy chmurowego OVH, który oferuje ochronę przed DDoS. Wszystkie żądania były kierowane na ten serwer, a następnie przekazywane do działającej infrastruktury. Podczas migracji nie udało się uniknąć błędów, które pochłonęły dodatkowy czas, na przykład niepoprawnie wykonano przywracanie za pomocą narzędzia rsync, wystąpiły błędy w konfiguracji sieci, a także trzeba było rozwiązać problemy z przekierowaniem ruchu (do momentu, kiedy system ochrony przed DDoS w OVH zadziałał, na działające serwery był kierowany również ruch z ataku DDoS, co spowodowało, że system ochrony zareagował i zidentyfikował serwer przyjmujący żądania jako źródło ataku).
Programiści również zwrócili się z prośbą do Cloudflare i kilku innych usług ochrony przed DDoS, jednak zaoferowana cena ochrony okazała się nieprzyzwoicie wysoka. Później pracownicy Cloudflare zdołali dojść do porozumienia z kierownictwem, aby zapewnić ochronę projektowi SourceHut za darmo, jako pomoc sponsorską, ale programiści SourceHut odmówili oferty, ponieważ do tego czasu znacznie posunęli się naprzód w rozwiązaniu problemu na własną rękę.
Wdrożenie nowej infrastruktury SourceHut i przeniesienie projektu na serwery w innym centrum danych planowano stopniowo przez co najmniej rok, ale w obliczu zaistniałych okoliczności migrację trzeba było przeprowadzić nagle w ciągu 7 dni. Obecnie wszystkie usługi SourceHut zostały przeniesione do innego centrum danych, a działanie platformy zostało w pełni przywrócone.
Platforma SourceHut wyróżnia się unikalnym interfejsem, który nie przypomina GitHub ani GitLab, ale jest prosty, bardzo szybki i działa bez JavaScript. SourceHut oferuje takie możliwości, jak praca z publicznymi i prywatnymi repozytoriami Git i Mercuriala, elastyczny system zarządzania dostępem, wiki, przyjmowanie zgłoszeń błędów, wbudowaną infrastrukturę ciągłej integracji, czat, dyskusje oparte na email, drzewiasty przegląd archiwów mailowych, przeglądanie zmian przez Web, dodawanie adnotacji do kodu (przypinanie linków i dokumentacji). Przy odpowiednich ustawieniach dopuszczalne jest uczestnictwo w rozwoju użytkowników bez lokalnych kont (autoryzacja przez OAuth lub udział przez email). Kod jest napisany w językach Python i Go i jest dystrybuowany na licencji GPLv3.
Źródło: opennet.ru
