Noční restart

Už pár dní dávám dohromady důležité podklady k věcem, co se dějí v posledních dnech na Roští a ještě před tím, než jsem se dostal ke zveřejnění, došlo k malé komplikaci, se kterou bych vás chtěl seznámit. Poslední týden pracujeme na tom, aby se úpravy na serverech vyvolané z administrace prováděly asynchronně pomocí projektu Celery.

Z našeho pohledu je změna pro uživatele Roští.cz extrémní, protože se opět zrychlí odezvy administrace. Instalace nové aplikace nezablokuje prohlížeč až na několik desítek sekund, ale hned se vám objeví infokarta.

Bohužel jsme si řádně neotestovali možnosti propojení Celery s message brokerem, v tomto případě je to databáze Redis a narazili na několik problémů. Administrace běží na stejném serveru (Pandora) jako vaše aplikace a tak prvním logickým krokem bylo spuštění Redisu na stejném stroji tak, aby naslouchal na unix socketu. Jenže k němu se Celery neumí připojit. Následovala instalace Redisu na nový databázový server, ale ten poslouchá jen na IPv6, což Celery opět neumí. Naštěstí má Roští už nějaký čas privátní IPv4 síť, která propojuje většinu serverů, včetně těch, které nemají veřejnou IPv4 adresu. I Pandora, server s administrací, byl do této sítě zapojen, ale dělil ho od ní jeden restart, který umožnil přidání virtuální síťové karty.

Byli jsme tlačeni časem, aby vám ráno administrace opět fungovala jak má, takže jsme se rozhodli server neplánovaně restartovat, za což se vám omlouváme. K výpadku došlo v 3:06 a trval přibližně  minutu a 30 sekund.

Kromě novinek v administraci dojde tento týden ještě k jedné změně a to přidání nového webového serveru. Bude se jmenovat donkie.rosti.cz a bude to první čistokrevný webový server určený jen a pouze pro aplikace. K dispozici na něm budete mít PHP 5.4 a Python 2.7 a 3.3. Na novém serveru už nebude fungovat Python 2.6. Na tom starém samozřejmě ano. Více se dozvíte dnes během dne.

Změna IP adresy pro přístup k aplikacím (SSH/SFTP/FTP)

V těch všech věcech, co bylo potřeba zařídit, aby vaše aplikace jely po migraci jak mají, jsme zapomněli zmínit jednu důležitou věc. Pro přístup k datům a aplikacím přes SSH, SFTP nebo FTP nyní musíte použít adresu, kterou máte uvedenou v info kartě konkrétní aplikace ve webové administraci.

Pokud se přihlásíte přes SSH na starý server, vyskočí na vás velké oznámení, které změnu vysvětluje, ale při přístupu přes FTP nebo SFTP toto oznámení samozřejmě neuvidíte. Správný postup je tedy podívat se do info karty aplikace, kde je uvedena IPv4 i IPv6 adresa a doména, na které je server s vaší aplikací dostupný. Tyto adresy se mohou za určitých okolností změnit, ale bude to v případě změny na vaši žádost nebo při velmi výjimečných příležitostech. Doménové jméno serveru, které pokrývá přístup jak z IPv4 nebo IPv6, se pro konkrétní servery měnit nebude a nezměnilo se ani proběhnutou migrací. Doporučujeme proto používat to.

Uživatelé staré implementace hostování webových aplikací mohou použít adresy:

  • pandora.rosti.cz 
  • IPv4: 89.187.152.33 
  • IPv6: 2a01:5f0:c001:125:3::2

Protože jde o změnu konceptu, tak je tato popsaná i na nové wiki stránce.

Rychlý report o změnách tento týden

Toto je rychlý report, který vás má informovat o tom, co se dnes v noci a zítra přes den bude dít. Dnes v noci bude konečně provedena migrace starého serveru na nový virtuální. Administrace kvůli tomu prošla několika změnami a zítra bude starý server odstaven a budou vyměněny pevné disky.

Důležité změny v administraci:

  • Podpora load balancerů je implementovaná a funkční
  • Už nelze přidávat aplikace ve staré implementaci (menu Webové aplikace), ale pouze nové (menu Aplikace)

Load balancer je zatím jeden, ale tento týden se přidá druhý. Prozatím vás tedy nebudeme zatěžovat změnami DNS záznamů, zatím to není třeba a vnášelo by to do změn zbytečné proměnné.

Migrace na nový server proběhne mezi 1:00 a 3:00 v úterý ráno. Dojde k malému výpadku v řádu minut. Budeme se snažit to minimalizovat. Vše bylo několikrát otestováno a mělo by to jít rychle.

Administrace s podporou SSL a load balancerů

Poslední aktualizace administrace přinesla hromadu změn, které sice na první pohled nepoznáte, ale věřte, že jsou důležité. Z toho co poznáte jde hlavně o úpravy login page, která má nyní stejný design jako zbytek administrace. Druhou změnou je vycentrování menu u horního okraje stránky. Malá změna v kódu, ale velký krok pro oko váženého uživatele. Je možné, že ještě nejsou přeloženy některé texty, tak prosím omluvte těch pár anglických vět, co se v administraci může objevit.

administrace_howie

Další změnou je podpora pro virtuální servery, Není ještě zpřístupněna uživatelům, ale to se brzy změní. Termín zatím dát nemůžeme, je toho potřeba ještě hodně otestovat a odladit.

V minulých týdnech jste si mohli všimnout, že Roští má nový server a hromadu nových IPv4/6 adres. Bohužel se ještě nepodařilo udělat ze starého serveru virtuální a ten odmigrovat na nový fyzický server. Nicméně čas se krátí, takže k tomu dojde zítra večer nebo v pátek ráno. Výpadek bude minimální. Migraci jsme zkoušeli několikrát na nečisto, tak se snad již všem problémům vyhneme.

V pátek večer pak na starý server čekají dva nové disky zapojené do RAID 1 o kapacitě 2 TB. Na těchto discích bude nový systém připravený na virtualizaci. Později se na ně přesune současné Roští, tedy všechny virtuály, které s hostingem na Roští souvisí. Nový server bude sloužit pouze uživatelským virtuálním strojům.

Zpět k administraci. Jak jsme již psali v tomto postu a na Twitteru, interních změn je celá řada:

ipv6_ready_logo

  • Podpora pro SSL certifikáty
  • Přepracovaný systém backendů pro komunikaci se servery
  • Optimalizace rozložení na více serverů
  • Podpora pro IPv6 only servery
  • Podpora pro load balancery
  • Podpora pro Arch Linux
  • Podpora pro Debian 7.0

Všechny body souvisí se všemi. Některé jsou pouze změnou, jiné důsledkem těchto a jiných změn. Administrace byla ještě před měsícem silně závislá na Debianu 6.0 se SysVinit, ale to se nyní změnilo. Nyní je možné s ní ovládat služby na Debianu 7.0 a Arch Linuxu. V jedné z dalších verzí bude přidána ještě podpora pro CentOS/RHEL 5/6.

I když má teď Roští ještě kupu IPv4 adres, nemá smysl ji některým serverům dávat. První vlaštovkou je databázový server, který bude dostupný pouze přes IPv6 ze všech serverů Roští.cz. Nejsme zatím schopni si představit, jak se k tomu postaví běžně používané webové projekty, ale to budeme řešit postupně. Starý databázový server se starými databázemi zůstává tam kde. Tato novinka se tedy týká jen nových aplikací a to až od příštího týdne.

S přihlédnutím na nedostatek IPv4 adres dostala administrace podporu pro load balancery, tedy servery, které jen přesměrovávají požadavky na jiné servery. V budoucnu to přinese například možnost běhu jedné aplikace na více fyzických serverech, ale zatím toho využijeme jen na zpřístupnění IPv6 serverů v IPv4 světě. Malým bonusem bude, že ať už vaše aplikace poběží na jakémkoli virtuálním či fyzickém serveru Roští.cz, bude vám stačit jedna IP adresa pro nastavení DNS záznamů.

Administrace je od prosince postavena na backendech, které komunikují se servery. Je tedy možné změnit backend a tedy i způsob komunikace a není potřeba přepisovat kód, kterého se to přímo netýká. Abych byl přesný, od této aktualizace stačí změnit jeden řádek a administrace začne komunikovat se servery úplně jiným způsobem.

Posledním bodem je podpora SSL certifikátů. U nové implementace aplikací nebylo možné SSL certifikáty používat a to ani interně. Museli jsme to složitě obcházet přes ruční konfiguraci Nginxu, což dělalo nepořádek. Nyní si administrace umí vygenerovat vhost tak, aby umožňoval připojení přes SSL. Bohužel jsme ještě nepřišli na způsob, jak tuto vlastnost zpřístupnit uživatelům, protože vadný certifikát způsobí, že web server nenastartuje.

Nakonec ještě malá novinka. Pokud chcete restartovat či reloadnout aplikaci, nemusíte chodit do webového rozhraní, ale stačí se přihlásit pod její SSH účet a napsat:

  • app_reload pro reload
  • app_restart pro restart aplikace

Migrace aplikací na nový server

Pokud jste nečetli minulý blogpost, Roští dostalo nový server, který slouží primárně pro virtuální stroje. Služby budou nyní rozmístěny na vlastní virtuální stroje, aby se navzájem co nejméně ovlivňovaly a bylo možné je provozovat nezávisle na hardwaru. Tento přechod vyžaduje několik kroků, se kterými vás dnes seznámím.

O víkendu jste si na našem Twitteru mohli všimnout, že došlo ke změnám u e-mailových služeb. Ty se během sobotního rána přestěhovaly na nový server. Vzhledem k tomu, že v rámci migrace přecházelo Roští z doručovacího daemona Courier na Dovecot, dopadla migrace velmi dobře. V sobotu dopoledne chtěl váš e-mailový klient maximálně potvrdit certifikát nebo zadat znovu heslo.

Během migrace došlo k několika problémům, ale pouze jeden byl oznámen na technické podpoře ještě před jeho vyřešením. Uživatelé nepřišli o žádné e-maily a pravděpodobně se jich nedotkla ani hodinová nedostupnost služby mezi 3. a 4. hodinou ranní.

Díky Dovecotu mají nyní uživatelé e-mailových služeb možnost konfigurovat server-side filtry z webového rozhraní nebo z e-mailových klientů s podporou protokolu managesieve. Během dnešní noci se k tomu ještě přidal dspam. Pokud budete poctivě třídit nevyžádanou poštu do složky Spam, dspam si ho zapamatuje a příště ho tam dá sám. Každá e-mailová schránka má vlastní kontext, podle kterého se rozlišuje mezi nevyžádanou poštou, takže pokud uživatel A přijme e-mail X, který uživatel B bere jako spam, tak rozhodnutí uživatele B, zařadit e-mail do spamu, neovlivní uživatele A. Věříme, že dspam posune e-mailové schránky na Roští o velký kus dopředu.

E-maily byly tou jednodušší částí z migračního plánu. Druhý krok je přesunutí celého původního fyzického serveru na virtuální stroj. Bude to akce, která si vyžádá krátkodobý výpadek, kolem 2. hodiny ranní, pravděpodobně v sobotu. Výpadek se pokusíme minimalizovat, pravděpodobně nebude delší než 10 minut. Podrobnosti se dozvíte tento týden na našem Twitter účtu. Dnes dojde k testování celého postupu a pak budeme chytřejší.

Pokud se vše povede, dojde v dalších týdnech k rozdělení tohoto serveru mezi nové virtuální servery tak, aby zapadl do koncepce popsané v minulém díle. To znamená, že budou přesunuty MySQL databáze a částečně také PostgreSQL databáze. S největší pravděpodobností budou přesunuty aplikace založené za poslední 4 měsíce na správné servery a na tom současném tak zůstane jenom stará část Roští.cz. Během roku se pak budeme snažit přesvědčit uživatele, aby tuto starou část opustili a přesunuli se na novou. Když půjde všechno dobře, tak s koncem podpory Debianu 6.0 Squeeze bude stará část vypnuta. U některých uživatelů to nebude možné, protože využívají výhod, které jim spojení aplikace pod jeden účet přinášelo a v takovém případě se dohodneme individuálně.

Nakonec ta nejdůležitější informace. Roští během dvou měsíců přijde o současné IPv4 adresy. Po provedení nezbytných kroků migrace dostanete do svých e-mailových schránek e-mail informující o této změně. Někteří uživatelé mají DNS záznamy mimo Roští a těch se změna dotkne nejvíce. Pokud mezi tyto uživatele patříte, tak ve zmíněném e-mailu najdete vše potřebné k tomu, aby váš web jel bez problémů i po zrušení starých adres.