LinuxOS novinky 45. týždeň 2015
Výber distribúcie (pls. poraďte niekto), stratégia aktualizácie servera, databáza ... o tom bude dnešný blog.
Výber distribúcie / aktualizácia
Momentálne náš server beží na debiane 7. V podstate by som ho charakterizoval ako beznádejná stará vykopávka ;-)
Teraz ale vážne. Webové technológie sa vyvíjajú pomerne rýchlo. Nie tak moc dávno bolo vydané HTTP/1.1. Momentálne tu už máme HTTP/2.0. Nemám rád nekonečné čakanie na vydanie novej verzie obľúbenej distribúcie, ale nemám rád ani backportovanie Nginx, Postgresql, PyPy, Xapian, uwsgi ... + závislosti.
Upgradu na debian 8 sa obávam. Momentálne bežíme na vps-ke, takže máme staršiu verziu kernelu než je distribučný. Debian 8 má systemd. Obávam sa, že pri neskoršom upgrade jednoducho odmietne kvôli nesprávnej verzii kernelu nabootovať, alebo kvôli nejakej inej obskurnosti. Aké teda máme možnosti?
- Debian - nevýhody ako som popísal, celá distribúcia je strašná vykopávka
- Ubuntu - v podstate to isté čo debian, ale častejšie si musím trhať vlasy pri upgrade
- Arch - moderné ... keď som to používal v práci pri každom druhom upgrade nenabootovalo
- Gentoo - v podstate veľmi stabilný základ porovnateľný s debianom s rolling updatmi, vybrané kusy softvéru môžu byť veľmi aktuálne, nič nevnucuje (áno hovorím o systemd), ale musí sa kompilovať
- Cent OS - ehm ešte väčšia vykopávka
- Niečo iné?
Nie som v tejto chvíli pevne rozhodnutý ktorou cestou sa chcem vydať. Buď zostanem na debiane 7 a doinštalujem niečo z backportov, alebo skúsim upgrade na debian 8 (a zrejme zlyhám), alebo čistá inštalácia debianu 8. Ostatné možnosti sú menej pravdepodobné i keď celkom rád by som sa vydal cestou gentoo, ale kompilácia je zdĺhavá. Pochybujem, že by sa to niekomu okrem mňa chcelo spravovať.
Aktualizácia db
Tento týždeň riešim aktualizáciu tabuliek za asi posledné 2 roky. Pôvodne som chcel napísať update skript, ktorý upraví existujúce tabuľky do podoby v akej majú byť. Lenže za tie 2 roky som toho zmenil viac než som pôvodne čakal, takže plán padol a ide sa vytvoriť nová databáza do ktorej sa dáta prekopírujú.
Od tohto momentu do prechodu na novú verziu nebudem nijako upravovať databázovú schému. Všetky DDL operácie od teraz bude riešiť priamo django (od 1.7 má priamo podporu migrácií, žiaľ my bežíme ešte na 1.6, takže pre upgrade na 1.8 sa musí posledný krát vyriešiť ručná migrácia). Každý modul má od teraz adresár migrations s automaticky generovanými migračnými skriptmi (vytvárajú sa príkazom django-admin.py makemigrations
). Ak si nejaká operácia vyžaduje ručný zásah hoc aj surovo napísaný SQL dotaz tak nie je problém dopísať ho do vygenerovaného skriptu.
V súvislosti s databázou ma trápi aj historická verzia PostgreSQL (9.1). Od jej vydania dostala mnoho užitočných vecí ako napr. json polia (ide o binárny json s podporou indexovania, v podstate to povyšuje PostgreSQL na rovnocenného protivníka NoSQL databáz). Taktiež optimalizácie sú výrazne lepšie než v dobe vydania 9.1.
Pre pridávanie komentárov sa musíte prihlásiť.
Ubuntu 14.04 má relatívne nové verzie balíčkov a má podporu do 2019-04. Kámoš to má na servery a nemá s tým žiadne problémy. Potom by som zvážil ešte Gentoo a predkompilované balíčky.
Prípadne Debian a prehodiť init na sysVinit, v antiXe mi to funguje výborne.
Ja sa zatiaľ najviac prikláňam k debianu. Bolo by fajn keby sa vyjadrili aj iní nech to nevyzerá ako one man show. Mimochodom dnes som dorobil klikateľné dátumy v aktivite.
No po posledných pár hodinách kedy sa snažím opraviť pár problémov s nedostatkom RAM mám pomaly chuť zabiť maintainerov.
Zatiaľ som dokázal upgradnúť redis čím som s rovnakou konfiguráciou zosekal pár stoviek MB na 3MB.
Chcelo by to aktualizovať ešte aspoň uwsgi kvôli správe procesov a pár hnusným bugom, ale debian na to nejako kašle. Backport uwsgi 2 pre debian 7 neviem nikde nájsť. Kompilovať ručne sa mi dnes už nechce, tých posledných pár hodín bolo až až (neznášam balíky rozdelené na -dev).
Momentálne máme na systém pridelených 4GB virtuálnej pamäte. Reálna je okolo 512MB - 1GB. Občas nám systém začne swapovať kvôli niektorým nespratným službám (v aktuálnej verzii opravené, ale debian udržiava staré vykopávky).
ak ide o co najnovsie balicky, priklonil by som sa bud k Ubuntu, Fedore alebo k Archu alebo Gentoo.
na vpsfree.cz sa da urobit klon k produkcnej VPS-ke, a nej skusit upgrade na Debian 8, pripadne urobit experimentalne instalacie ostatnych distribucii a potom len preklopit do produkcie.
Ubuntu je celkom fajn voľba, backporty sa ľahšie hľadajú než na debian. Len jedna vec ktorej sa bojím je systemd v ďalšej verzii. Momentálne systemd funguje na VPS, ale či bude fungovať aj do budúcnosti neviem. Už som videl keď sa kvôli problémom s dbusom nedalo dostať ani k logom ... LinuxOS má momentálne super dostupnosť a chcel by som aby to tak aj zostalo ;)