Îmi place software-ul auto-găzduit, dar există dezavantaje despre care nimeni nu vorbește


A rula propriul tău pachet de software are destul de multe avantaje. Pornești un container, îndrepți un domeniu către el și, dintr-o dată, deții datele tale și infrastructura pe care rulează software-ul. Nimeni nu îți citește notițele pentru a-ți afișa reclame, niciun abonament nu poate fi revocat și o companie care intră în faliment mâine nu te afectează.

Există o mulțime de instrumente auto-gazduite care pot înlocui abonamentele software costisitoare. În teorie, auto-gazduirea pare a fi soluția pentru aproape orice problemă cu software-ul mainstream. Totuși, există și dezavantaje pe care comunitatea de auto-gazduire tinde să le minimalizeze, și dacă ești începător, și tu te vei lovi de ele.

Încetezi să mai fii un utilizator și începi să fii administratorul de sistem

Depanarea devine în tăcere parte din rutina ta






În momentul în care rulezi primul tău serviciu sau software auto-găzduit, nu mai ești un simplu utilizator. Acum ești administrator pentru întregul stack, indiferent dacă ți-ai dorit acest rol sau nu. Și acest rol vine cu responsabilități care pot deveni foarte tehnice, foarte rapid. Actualizările nu se aplică singure, patch-urile de securitate nu apar cu memento-uri utile, și dacă ceva se strică la mijlocul nopții, devii de asemenea și suportul pentru clienți.

Complexitatea administrării depinde de software-ul pe care îl folosești. De exemplu, cu Copyparty, acest lucru se manifestă în mod subtil, dar real. Software-ul este incredibil de capabil în ceea ce privește încărcările fragmentate și paralelizate, transferurile reluabile, deduplicarea, transcodarea media și multe altele, dar multe dintre aceste funcții sunt disponibile doar dacă sunt activate opțional, atunci când ai instalate dependențele corecte.

Uneori, funcțiile trăiesc adânc în interiorul unui format de fișier de configurare care poate fi greu de navigat, chiar și pentru utilizatorii experimentați sau entuziaști. Nu poți pur și simplu să instalezi și să te aștepți ca software-ul auto-găzduit să funcționeze. Trebuie să îl configurezi, să îl întreții și să fii atent la remedierile de securitate, pentru că, oricât de bune ar fi aceste programe, ele nu sunt imune la vulnerabilități.

Aceasta este munca din spatele auto-găzduirii propriului tău pachet de software, care nu este discutată prea mult. Poți economisi sute de bani auto-găzduind software-ul, dar nu este un cost de configurare unic. Este un angajament continuu de timp, iar acel timp este rar luat în considerare atunci când cineva vrea să renunțe la software-ul cloud pentru totdeauna.

Când viziunea dezvoltatorului nu mai corespunde cu a ta

Furci, funcții abandonate și schimbări bruște de direcție în planul de dezvoltare






Software-ul găzduit pe propriul server este aproape întotdeauna produs de dezvoltatori care de asemenea rulează o versiune găzduită și comercială a aceluiași produs. Nu e nimic în neregulă cu această practică. De fapt, acesta este modul în care multe proiecte open-source rămân viabile din punct de vedere financiar. Totuși, aceasta creează o anumită tensiune care este adesea resimțită de utilizatorii de pe partea găzduită pe propriul server.

AFFiNE este un exemplu tipic. Este un instrument grozav de gestionare a cunoștințelor — un hibrid între Notion și o tablă albă — iar versiunea sa auto-găzduită este tehnic deschisă oricui. Dar experiența de a-ți rula propria instanță a fost mereu în schimbare. Instalările auto-găzduite pot fi presetate aleatoriu la restricțiile planului gratuit, care includ un plafon de stocare de 10 GB, o limită de încărcare a fișierelor de 10 MB și un istoric al versiunilor de 7 zile.

Frustrarea nu este cu adevărat despre limitele în sine; este despre mesajul pe care îl transmit acele limite. Produsul cloud al dezvoltatorului și instanțele găzduite local încep să se apropie în ceea ce privește restricțiile. Aceasta ridică întrebarea: dacă poți obține toate avantajele pe nivelul gratuit al cloud-ului, de ce să pierzi timp și efort întreținând un server?

AFFiNE a clarificat între timp unele dintre aceste planuri, promițând stocare nelimitată pentru bloburi, dar episodul este instructiv. Când veniturile unei companii depind de conversia ta într-un utilizator plătitor de cloud, calea auto-găzduită devine o prioritate secundară.

Cele mai bune caracteristici uneori trăiesc în spatele zidului de nori

Software-ul în cloud aduce bani, găzduirea proprie îți oferă libertate

Strâns legată de cele de mai sus este problema disparității funcțiilor. Versiunile de software găzduite local rămân constant în urmă față de omologii lor cloud și, în unele cazuri, funcțiile cheie pur și simplu nu sunt disponibile deloc pentru utilizatorii găzduiți local.

Asistentul AI al AFFiNE este cel mai evident exemplu în acest sens. Funcționalitatea de copilot AI este integrată în produsul cloud, iar într-o instanță auto-găzduită, pentru a-l face să funcționeze înseamnă să inversezi ingineria variabilelor de configurare, să determini ce furnizori de modele sunt codificați hard versus configurabili și să setezi corect variabilele de mediu. Funcțiile AI sunt un diferențiator comercial pentru produsul găzduit, iar utilizatorii auto-găzduiți lucrează împotriva acestei politici de fiecare dată când încearcă să reproducă experiența.

Aceasta nu este o problemă unică pentru AFFiNE. Este realitatea structurală a aproape oricărui instrument open-source care are o ofertă comercială în cloud. Produsul găzduit primește primele noile funcții și, uneori, exclusiv, iar versiunea auto-găzduită ajunge din urmă mai târziu, dacă ajunge vreodată.

Banda de întreținere nu se oprește cu adevărat niciodată

Actualizări, schimbări majore și probleme cu dependențele






Apoi urmează întreținerea instanțelor tale auto-găzduite. Când folosești un produs cloud sau SaaS (Software ca Serviciu) obișnuit, actualizările se realizează în fundal. Aceste actualizări uneori impun schimbări asupra ta, cea mai comună fiind modificările neîntrebate ale interfeței. Dar atunci când rulezi propria instanță, ești responsabil de a decide când să actualizezi, de a testa că actualizarea nu strică ceva de care depinzi și de a remedia atunci când, în cele din urmă, o face.

Schimbările care sparg compatibilitatea sunt, de asemenea, mai frecvente decât ai crede. O dependență se actualizează și, brusc, configurația ta Docker Compose nu mai funcționează. O versiune nouă livrează o migrare a bazei de date care nu gestionează corect datele tale existente. O cheie de configurare este redenumită și serviciul tău se prăbușește.

Nimic din toate acestea nu este vina dezvoltatorului. Software-ul evoluează în timp, dar ajunge complet pe biroul tău. Actualizarea pe care ai sărit-o acum șase luni pentru că nu aveai timp este acum cu trei versiuni majore în urmă, iar recuperarea devine un proiect de sine stătător.

Există, de asemenea, problema a ceea ce se întâmplă dacă proiectul încetinește sau se oprește complet. Ecosistemul open-source are o problemă reală de abandon, fie că vrei să recunoști acest lucru sau nu. Cercetările au constatat că marea majoritate a componentelor open-source auditate nu prezintă semne clare de întreținere activă. Sigur, instrumentele auto-găzduite pot înlocui abonamentele plătite preferate, dar instrumentul auto-găzduit pe care ți-ai construit fluxul de lucru astăzi ar putea fi un depozit părăsit în următorii doi ani, rulând încă pe serverul tău, colectând încet vulnerabilități de securitate nepatch-uite, doar pentru a fi exploatate mai târziu.

Costul ascuns de configurare despre care nimeni nu te avertizează

Timp, hardware și faza nesfârșită de ajustări

Ultimul, dar nu cel din urmă, este costul inițial de a pune ceva în funcțiune, care rareori decurge la fel de lin cum sugerează documentația. Copyparty, pentru toate beneficiile sale, necesită să gestionezi TLS singur. Poți face acest lucru fie prin furnizarea directă a certificatelor, fie rulându-l în spatele unui proxy invers precum Nginx.

Dacă ești fluent cu proxy-urile inversate sau ai experiență anterioară în rețele, ești bine. Altfel, poate fi un proiect de învățare destul de dificil pe cont propriu. Așadar, chiar dacă este incredibil de ușor să rulezi Copyparty chiar și pe un telefon Android, să-l faci să funcționeze efectiv ca un serviciu cloud real necesită expertiză și timp, pe care s-ar putea să le ai sau să nu le ai.

Da, soluțiile cloud nu sunt gratuite nici ele. Dar comparația de cost între software-ul cloud și cel găzduit local rareori ține cont de timpul și efortul cognitiv—orele petrecute pentru depanarea unei probleme de redirecționare a porturilor, citind discuții pe GitHub sau încercând să înțelegi de ce proxy-ul invers se oprește singur la fiecare 24 de ore. Acest timp are valoare, și pentru mulți oameni, depășește costul unui abonament lunar.

Auto-gazduirea este grozavă, dar nu este pentru toată lumea

Găsirea echilibrului între control și comoditate

Nimic din toate acestea nu este un argument împotriva găzduirii proprii. Beneficiile pentru confidențialitate sunt reale, controlul este real, iar satisfacția unei infrastructuri care îți aparține în totalitate este mai bună decât ceea ce ți-ar oferi orice serviciu.

Dar narațiunea că auto-gazduirea este pur și simplu alternativa mai inteligentă, mai bună și mai liberă la software-ul cloud pur și simplu nu este adevărată. Este un schimb, și ca orice schimb care merită făcut, vine cu costuri care s-ar putea să funcționeze sau nu pentru tine. Software-ul open-source nu este întotdeauna opțiunea mai bună, și asta este în regulă. Uneori plata unui abonament este opțiunea mai bună în loc să te pierzi în fișierele de configurare; alteori, este o pierdere de bani.