Panel hostingowy BSNM (BSD Server Network Manager)

Świat administracji serwerami od lat jest mocno zdominowany przez systemy z rodziny Linux, dla których powstały dziesiątki mniej lub bardziej zaawansowanych paneli hostingowych. C-Panel, DirectAdmin, Plesk – to narzędzia, które większość administratorów zna na wylot. Co jednak dzieje się, gdy spojrzymy w stronę niezwykle stabilnego, bezpiecznego i wydajnego systemu, jakim jest FreeBSD? Natrafiamy na rynkową pustkę.

Pomysł BSNM (BSD Server Network Manager) narodził się właśnie po to, aby tę pustkę wypełnić. To projekt, który stanowi bezpośrednią odpowiedź na brak kompleksowego, z prawdziwego zdarzenia panelu hostingowego dla środowiska FreeBSD.

Most pomiędzy światem Linuksa a FreeBSD

Dla wielu administratorów, którzy przez lata przywykli do wygody systemów linuksowych, przejście na FreeBSD bywa sporym wyzwaniem. Różnice w strukturze systemu, zarządzaniu pakietami czy samej filozofii działania potrafią odstraszyć.

Głównym założeniem BSNM jest maksymalne ułatwienie migracji dla administratorów związanych dotychczas ze środowiskiem Linux. Chcę, aby to narzędzie było na tyle intuicyjne, by osoba doskonale znająca Linuksa mogła z marszu rozpocząć pracę z serwerem opartym na FreeBSD. Co więcej, system projektowany jest w taki sposób, aby odnaleźli się w nim również całkowicie początkujący adepci sztuki serwerowej, którzy dopiero stawiają swoje pierwsze kroki w zarządzaniu infrastrukturą.

Trzy dekady doświadczeń przekute w kod

Panel BSNM nie jest dziełem przypadku ani nagłego impulsu. Projekt ten opiera się na moim 30-letnim doświadczeniu w codziennej pracy z najróżniejszej maści serwerami. Moja droga zaczęła się pod koniec lat 90., kiedy to na porządku dziennym budowało się serwery do podziału pasma internetowego (tzw. routery i bramy dostępowe) – własna firma, a następnie ewoluowała przez kolejne dekady w stronę budowy i utrzymania maszyn świadczących zaawansowane usługi internetowe.

Fundamentem BSNM stały się moje własne, autorskie skrypty (przeważnie linuksowe), które tworzyłem i gromadziłem na przestrzeni tych lat. Początkowo były to luźne, niepowiązane ze sobą narzędzia automatyzujące żmudne procesy. Na potrzeby tego projektu zostały one jednak całkowicie rozebrane na czynniki pierwsze i napisane od nowa ze zwróceniem szczególnej uwagi na specyfikę FreeBSD. Zależało mi na tym, aby nie były zbiorem „posklejanych” plików, lecz tworzyły wysoce spójną, logiczną i przede wszystkim bezpieczną całość.

Architektura BSNM: Trzy główne filary

Aby zrealizować wizję kompletnego środowiska, panel hostingowy musi być czymś więcej niż tylko ładnym interfejsem. Dlatego BSNM składa się z trzech rygorystycznie oddzielonych, współpracujących ze sobą elementów:

Instalator kompletnego środowiska serwerowego – narzędzie, które od podstaw przygotowuje czysty system operacyjny, wdrażając odpowiednią architekturę. Instalator dba o to, by fundament serwera był pancerny i gotowy na obciążenia.

GuardX – mój autorski program monitorujący. Jest to napisany w C++ z myślą o minimalnym zużyciu zasobów, szybki i niezwykle wydajny demon „stróżujący”, który nieustannie analizuje parametry serwera za pośrednictwem tzw. modułów i dba o to, by każda usługa działała dokładnie tak, jak powinna.

Web Panel – centralny punkt dowodzenia. Intuicyjny, graficzny interfejs dostępny z poziomu przeglądarki internetowej, z którego można wyklikać zarządzanie usługami, środowiskami i parametrami maszyny.

Filozofia 4xE

Podczas projektowania każdego pojedynczego modułu BSNM, przyświeca mi jedna, nadrzędna zasada, którą nazywam Regułą 4xE:

Ekstremalnie prosty – konfiguracja i codzienne zarządzanie nie mogą wymagać czytania setek stron dokumentacji. Narzędzie ma służyć człowiekowi, a nie odwrotnie.

Ekstremalnie bezpieczny – FreeBSD sam w sobie słynie z bezpieczeństwa. Kod, skrypty i logika panelu muszą podążać tym samym torem, nie pozostawiając miejsca na kompromisy i luki.

Ekstremalnie szybki – narzut technologiczny samego panelu na działanie serwera został zredukowany do minimum. Responsywność zarządzania ma być natychmiastowa.

Ekstremalnie wydajny – środowisko jest projektowane w sposób inteligentnie wykorzystujący zasoby sprzętowe i architekturę systemową FreeBSD, izolując usługi, by nie pożerały się nawzajem.

Środowisko docelowe

Gdzie sprawdzi się BSNM? System jest z premedytacją skrojony oraz intensywnie testowany na małych i średniej wielkości serwerach typu bare-metal (serwery dedykowane, serwery firmowe i domowe) oraz maszynach VPS (maszyny wirtualne). To w takich środowiskach narzędzie ma pokazać swój największy pazur i wydajność.

Nie oznacza to jednak jakichkolwiek limitów technologicznych. Nic nie stoi na przeszkodzie, aby instalator BSNM uruchomić z powodzeniem na potężnych maszynach korporacyjnych (Enterprise) wyposażonych w potężne, wieloprocesorowe układy i gigantyczne ilości pamięci RAM. Architektura skaluje się tam, gdzie pozwala jej na to sprzęt i jądro systemu.

Kilka słów na koniec

Obecnie projekt jest w fazie intensywnego rozwoju. Oficjalna paczka instalacyjna zostanie udostępniona społeczności do pobrania w momencie, gdy uznam, że BSNM jest w stanie niezawodnie, samodzielnie postawić kompletne, w 100% używalne środowisko serwerowe, gotowe do podjęcia pracy produkcyjnej.

Co jakiś czas będę publikował też na łamach bloga artykuły, w których opiszę z jakich precyzyjnie technologii pod spodem korzysta projekt oraz na jakim etapie prac aktualnie się znajduje.

Całość projektu BSNM zamierzam udostępnić na dość liberalnej licencji 3-Clause BSD License (licencja BSD 3-klauzulowa)

Licencja ta jest tak krótka i liberalna, że dosłownie składa się z trzech prostych warunków, na jakich możesz wykorzystywać kod:

Zachowanie praw autorskich w źródłach: Jeśli modyfikujesz i rozprowadzasz kod źródłowy, musisz zostawić w nim oryginalną notkę o prawach autorskich i treść samej licencji.

Zachowanie praw w plikach binarnych: Jeśli kompilujesz kod i udostępniasz gotowy program (binarki), ta sama notka o prawach autorskich musi znaleźć się w dokumentacji lub innych materiałach dołączonych do programu.

Zakaz używania nazwy do promocji (Non-endorsement clause): Nie możesz używać nazw ani nazwisk oryginalnych twórców projektu do reklamowania i promowania własnych, zmodyfikowanych produktów bez ich wyraźnej zgody na piśmie.

BSNM
Przegląd prywatności

Ta strona korzysta z ciasteczek, aby zapewnić Ci najlepszą możliwą obsługę. Informacje o ciasteczkach są przechowywane w przeglądarce i wykonują funkcje takie jak rozpoznawanie Cię po powrocie na naszą stronę internetową i pomaganie naszemu zespołowi w zrozumieniu, które sekcje witryny są dla Ciebie najbardziej interesujące i przydatne.