Interfejs do R1Soft Server Backup Manager

Ostatni tydzień mojej pracy w AttHost poświęcony był stworzeniu interfejsu który pozwoliłby użytkownikom samodzielne przywracanie kopii zapasowych, wprost z poziomu panelu klienta, bez kontaktu ze wsparciem. Była to bardzo długo wyczekiwana funkcja przez naszych klientów. 

System kopii zapasowych w AttHost opiera się o komercyjne oprogramowanie R1Soft Server Backup Manager oraz kilka serwerów do przechowywania danych. Stosujemy to rozwiązanie od kilku miesięcy i z czystym sumieniem mogę powiedzieć, że sprawdza się doskonale. Tworzenie kopii zapasowych tym narzędziem polega na kopiowaniu całych bloków danych z dysku, z pominięciem systemu plików. Dzięki temu kopia tworzona jest szybko i prawie nie obciąża serwerów.

Poprzednio – jako rozwiązania do tworzenia kopii zapasowych – używaliśmy własnego narzędzia opartego na rsync. Mimo wielu trików które udało się zastosować – tworzenie kopii trwało kilka godzin i zauważalnie obciążało serwery. W chwili obecnej – kopię zapasową wykonujemy co 6 godzin, wydaje się to już sensowne w obliczu dzisiejszych aplikacji internetowych i popularyzacji e-handlu. Mimo to, będziemy jeszcze dążyć do tego aby jeszcze skrócić ten czas – do 1 – 2 godzin. Dla porównania mogę powiedzieć, że w dalszym ciągu niektóre, duże firmy hostingowe wykonują kopię danych klientów co 7 – 14 dni. Pozostawię to jednak bez komentarza.

Oprogramowanie R1Soft Server Backup Manager udostępnia interfejs API, który można skorzystać do napisania własnego oprogramowania sterującego serwerami kopii zapasowych. Niestety interfejs ten ma słabą dokumentację oraz duże braki (np. nie ma pełnej informacji jak przywrócić kopię bazy MySQL). Dlatego też, stworzenie integracji z panelem AttHost nie było wcale takie proste. Musiałem opierać się na strzępkach informacji dostępnych w Internecie oraz ręcznej analizie plików WSDL w celu poszukiwania brakujących obiektów, które były mi potrzebne. Na szczęście – udało się, oprogramowanie powstało, zostało wdrożone i jak dotąd działa bezbłędnie. Klienci przyjęli nową funkcję z dużym entuzjazmem.

Ja natomiast, biorąc pod uwagę jak ciężko było mi znaleść działający kod funkcji do przywracania danych – postanowiłem podzielić się modułem komunikacyjnym z SBM i umieściłem go jako oprogramowanie na licencji GPL w serwisie GitHub. Interfejs stworzony jest w języku Python, gdyż w tym języku napisane jest całe oprogramowanie do zarządzania usługami hostingowymi w AttHost.

A oto i link do kodu źródłowego: https://github.com/tszulborski/r1soft-python-connect.