Konec emailových služeb

O konci emailových služeb už jsme minulý rok psali a v tomto krátkém článku bychom chtěli jen zopakovat již zveřejněné informace a postup, kterého se budeme držet. Konec emailů, stejně jako konec starého Roští je pro nás zavření jedné kapitoly, která se s naší firmou táhla od jejího začátku.

Důvodem ukončení emailových služeb jsou nároky na jejich provozování a malý zájem mezi zákazníky, kteří u nás platí za aplikace. Za emaily jsme nikdy nechtěli žádné peníze a brali jsme je jen jako vedlejší službu pro zákazníky, kteří u nás měli web. Z dat, která jsme za pět let nasbírali, jsme zjistili, že 26 % schránek u nás web nemá a přibližně 60 % zákazníků, kteří u nás mají web, u nás nemá žádnou emailovou schránku.

Chvíli jsme zvažovali, zda bychom emaily na Roští nezmodernizovali, ale investice do takového projektu a blížící se potřeba nového hardwaru, nás přesvědčily, že by to byl krok do neznáma a raději tu energii budeme věnovat hostingu aplikací, ve kterém můžeme, na rozdíl od emailů, nabídnout něco unikátního.

Doufáme tedy, že náš krok pochopíte. Vypnutí serveru přijde 31. května 2018, tedy za necelé čtyři měsíce. To by mělo být dostatek času na migraci pod jiného poskytovatele. Tři poskytovatele, se kterými máme zkušenosti, jsme vám vypsali v naši dokumentaci, společně s dalšími informacemi, které vám s migrací pomohou.

V následujícím seznamu najdete seznam událostí spojených s touto změnou. Některé už proběhly, jiné nás ještě čekají.

Co se týče odchozího emailového serveru, tak ten zůstane a jeho možnosti se rozšíří pro potřeby aplikací. O tom ještě zveřejníme informace později.

Konec starého Roští (stare.rosti.cz)

Jak jsme psali už dříve, tak staré Roští pomalu končí a 31.5.2018 bychom rádi původní servery vypnuli. Když jsme vypustili novou administraci s úplně novou infrastrukturou, posunuli jsme staré Roští na vedlejší kolej a byla jen otázka času, kdy ho vypneme úplně. V tomto postu vám chceme dát vědět, jak celou akci plánujeme.

Důvodů, proč byste na starém Roští neměli mít žádná data je hned několik:

  • Infrastruktura je založená na Debian Wheezy a Squeeze (už bez upstream podpory),
  • administraci jsme poslední dva roky nevyvíjeli,
  • všechny aplikace běží na našem fyzickém serveru, za který již nemáme žádnou náhradu,
  • instalace serverů není nějak automatizovaná.

Staré Roští používá na jednom ze serverů Debian Squeeze, který již není podporován a obsahuje minimálně dvě zásadní bezpečností chyby. Jednu se nám podařilo potlačit, druhou bohužel ne. Debian Wheeze je stále podporován, ale jeho podpora končí 31.5.2018. Tam běží většina webů a proto chceme staré Roští vypnout dříve než se z pohledu bezpečnosti stane úplně nepoužitelné.

V administraci jsme od nasazení nové administrace moc neudělali, pouze opravili ty nejdůležitější chyby a změnili způsob fakturace. Hodně nás naučila, ale už jsme se posunuli dál.

Aktuálně běží všechny aplikace na starém Roští na našem fyzickém serveru, kde jsou jen pomalé HDD disky a výkon se během dne občas propadne. Migrací tedy získáte pár milisekund k dobru.

Když nepočítáme výpadky v Master DC, neměly aplikace hostované na starém Roští problém dosáhnout 100% dostupnosti většinu roku. Na druhou stranu, postupy související se starou infrastrukturou vybledly a kdyby nyní k něčemu došlo, trvalo by nám hodně dlouho dát vše do pořádku. Nové Roští je celé zansiblované. I kdybychom nyní přišli o všechny servery najednou, jejich obnova se bude rovnat času potřebnému pro kopírování dat ze záloh, což trvá u některých strojů asi dvě hodiny.

Jak to bude probíhat

Vypnutí proběhne 31.5.2018 ale předtím i potom je několik bodů, které musíme splnit. Tady jsou:

  • únor: rozešleme emaily o konci služby
  • únor až březen: přesuneme DNS servery na samostatné servery
  • duben: další email o konci služby
  • 31. květen: konec starého Roští
  • červen: kredity ze staré administrace převedeme do nové na účet se stejnou emailovou adresou
  • 31. červenec: odstraníme všechna data

Článek ještě budeme aktualizovat.

Migrace do DigitalOcean

Doporučujeme

Na Twitteru už jste mohli postřehnout, že chystáme stěhování ze Scaleway do DigitalOcean. Psali jsme o tom i minulém zápisku a tento zápisek je jen popsání toho, co se bude v příštích týdnech dít.

Migrace se týká všech aplikací, které jsou hostovány v novém Roští, což jsou ty, co byly vytvořeny v posledních třech letech. Ze strany uživatelů není potřeba žádná spolupráce, pouze budeme měnit doménové názvy serverů, na kterých jsou aplikace hostované. Ty si prosím upravte ve svých skriptech či nastavení podle tabulky níže.

To nejdůležitější, migraci administrace, máme již za sebou. Neobešlo se to bez problémů, ale to už je za námi a také jsme díky nim upravili kontaktní formulář a schránku podpory tak, aby nebyla na našem mail serveru jakkoli závislá.

V druhém kroku musíme přenést servery pro aplikace. Rozhodli jsme se jít cestou, která je pro nás nejjednodušší, protože jednoduchý proces bude méně náchylný na chyby. Přeneseme aplikace ve dvou vlnách. V první půjdou aplikace, které používají databázi store3.rosti.cz. V druhé pak ty, co používají store4.rosti.cz.

Databázi už jsme přenesli a máme připravený skript, který je udělá finální synchronizaci. U aplikací je to složitější, protože budeme spojovat některé servery. Scaleway používá méně výkonné serverové procesory Atom, takže jsme na jeden stroj dávali méně aplikací. DO na druhou stranu má rychlé Xeony a dává i dostatek prostoru, takže limitujícím faktorem pro nás není procesor, ale paměť RAM a tam jsme schopni přesně říct, kolik aplikací může na jednom serveru být.

Prozatím plánujeme jednoduché spojení serverů podle následující tabulky. Později ho ještě upravíme po jednotlivých aplikací tak, abychom měli servery rovnoměrně zatížené. Zároveň přidáme čtvrtý, node-14, na kterém budou hostovány nové aplikace.

Původní server Nový server
alpha-node-4.rosti.cz node-12.rosti.cz
alpha-node-5.rosti.cz node-12.rosti.cz
alpha-node-6.rosti.cz node-13.rosti.cz
alpha-node-7.rosti.cz node-11.rosti.cz
alpha-node-8.rosti.cz node-11.rosti.cz
alpha-node-9.rosti.cz node-11.rosti.cz
node-10.rosti.cz node-14.rosti.cz

Pokud tato doménová jména používáte ve svých skriptech, tak je prosím změňte na nová. Stará přesměrujeme, ale na konci února je smažeme.

Status

  • 1.-2. února*: Úprava administrace – funkce pro notifikování uživatelů o změnách
  • 1.-2. února*: Úprava administrace – nástroje pro jednodušší migraci mezi servery
  • 3. února: v ranních hodinách*: Migrace alpha-node-7, 8, 9 a store3
  • 10. února: v ranních hodinách: Migrace alpha-node-4, 5, 6, 10 a store4
  • 28. února**: smazání starých doménových jmen

* Termíny nejsou pevné a mohou se změnit.

Kdy k jednotlivým krokům dojde ještě doplníme.

Celý proces je vzhledem k naší softwarové architektuře velmi přímočarý a není v něm moc prostoru na chyby. Kromě výpadku během přenášení by nemělo dojít k žádným dalším problémům. Před migrací se prosím přesvědčte, zda vaše aplikace přežije restart kontejneru. V administraci stačí kliknout na tlačítko restart.

Nedostupnost

Do migrace se pustíme během noci, přibližně od půlnoci a bude trvat kolem dvou až tří hodin. Během této doby budou aplikace nedostupné. Plánovali jsme to udělat mnohem rychleji s výpadkem maximálně několik minut, ale spojování serverů nám do toho hodilo trochu vidle.

K migraci dojde během následujících dvou týdnů a o krocích, které mohou ovlivnit dostupnost vaší aplikace budete informování emailem. Proto chceme do administrace přidat novou sekci podpory, kde vám budeme moci poslat notifikace o změnách a zároveň je patřičně cílit.

Jiných služeb, než hostingu aplikací, se migrace nedotkne. Emaily jsou umístěny na našich fyzických serverech v Master DC v Praze, stejně jako všechno okolo starého Roští a záloh.


Aktualizace 3.2.2018 4:00

Server node-11.rosti.cz už běží a jsou na něj přemigrovány všechny aplikace podle tabulky výše. Pokud vše půjde dobře, druhé vlně příští týden v pátek nic nebrání.

Aktualizace 3.2.2018 14:15

Kvůli nepatrnému překliku před pěti dny musíme dnes ještě na chvíli shodit všechny aplikace na node-11. Máme ho totiž ve špatné lokalitě. Půjde o jednodušší proces než z dnešní noci, protože to je přenesení 1:1 a aplikace by neměly být dole déle než pár minut. Akci provedeme mezi 1:00 a 3:00. Jinak vše běží v pořádku a nový stroj je zatížen podle očekávání.

Zatížení node-11.rosti.cz

Aktualizace 9.2.2018

Na zítřejší migraci je vše připraveno. Přes týden jsme nezaznamenali žádné problémy a tak nám nic nebrání v přenesení zbytku.

Aktualizace 9.2.2018 13:30

Aktualizovali jsme tabulku s doménovými názvy nodů. Prohodil se cílový node mezi alpha-node-4,5 a 6.

Aktualizace 10.2.2018 2:50

Všechny servery jsou přenesené. Děkujeme za trpělivost. Tahle zkušenost nám pomohla dopilovat role v Ansiblu a implementovali jsme kvůli ní notifikační systém do administrace, přes který vám můžeme posílat emaily, pokud se bude dít něco důležitého. Ale o tom ještě napíšeme nějaký článek. Prozatím dobrou noc.

Bezpečnostní chyba v procesorech Intel

Světem serverů otřásá bezpečnostní problém procesorů Intel, kvůli kterému může útočník v extrémním případě přistupovat do libovolné části paměti serveru bez ohledu na to, pod jakými právy běží. Jde tedy o problém, který se musí opravit i za cenu výpadku v méně vhodných časech.

Většina provozovatelů moderních cloudů aktuálně bojuje s tím, jak systém ve svých serverech záplatovat a restartovat, což bohužel ovlivní i Roští. Většina nového Roští je hostována ve službě Scaleway, kde problém berou vážně a v příštích dvou dnech budou restartovat všechny servery. Bohužel k tomu nevydali žádný konkrétní plán a pojedou jeden po druhém. Rizika při zneužití jsou, prakticky je možné získat jakákoli data uložená na napadeném serveru.

Scaleway začne s restarty svých clusterů dnes  kolem 8:00 ráno a skončí v sobotu ve stejný čas. Neměly by být problémy s databází a adminem. V minulosti jsme měli problémy s automatickým startem kontejnerů v Dockeru. Jde o dva roky starou zkušenost a od té doby jsme tuto funkci nevyzkoušeli. Tohle tedy bude ostrý test.

Držte nám palce. Pokud vše půjde jak má, bude výpadek pouze několik minut a nebude při něm potřeba zásah lidské ruky.

Servery pošty a starého Roští máme na vlastním hardwaru a ten budeme restartovat zítra v noci.

Update 1: Scaleway nám zatím servery nerestartovalo a důvodem je, že nabízejí bare metal servery a na své straně mohou opravit jen microcode procesoru, který ještě nemají a možná ani nebyl uvolněn Intelem. Zatím tedy opravujeme jádra ručně. Dnes budeme restartovat servery alpha-node-{4,5,8 a 9}. Servery 6 a 7 jsou větší a necháváme se je na zítra. Staré Roští přijde až poté, co bude vyřešeno nové. Exploity zatím nebyly zveřejněny, takže se nemusíme bát masivního zneužívání. Administrace nám běží na ARM jádře, které je podle posledních informací v bezpečí.

Důležité změny na Roští

Bohužel jsme se poslední dva měsíce setkávali s výpadky, které jsme neměli moc možnost ovlivnit. Vypadávaly nám servery ve Scaleway i naše fyzické servery v Master DC. Jsou to věci, kterým se nevyhneme, protože nemáme pod kontrolou každý článek řetězce mezi kód a jeho uživateli. Samozřejmě s tím ale nejsme spokojení a tak se chystáme udělat změny, které by nám mohli pomoci řešit problémy rychleji a nebo jim i kompletně předcházet.

Aktualizace: Kvůli průtahům aktualizujeme plán celého postupu. Původní termíny prodloužíme o dva měsíce, abychom vám dali dost času se na změny připravit. Bohužel se nám zatím nepodařilo připravit dostatečně univerzální a funkční nástroj na migraci aplikací ze starého Roští na nové. Na tom ještě pracujeme. V článku najdete aktualizovaný harmonogram.

Z pohledu moderních aplikací je Roští stále běžný hosting, i když trochu naboostovaný. Běží u nás totiž aplikace na jednoduchém setupu, kdy každá má jeden kontejner a ani v případě, že by zvládla běžet ve více kontejnerech, tak to aktuálně neumíme nabídnout. Zákonitě pak, když aplikace běží na jednom serveru, za jedním load balancerem a nad jednou databází, dřív nebo později se něco stane.

Řešení výpadků je pro nás extrémně drahé i psychicky náročné. Nemůžeme si vybrat hodinu ani den, musíme se postarat aby služba zase jela a u toho odepisovat lidem, kteří chtějí vědět, kdy budeme zase up. Je tedy v zájmu obou stran problémům předcházet.

Některým klientům, kteří u nás mají celý svůj business, nabízíme vysoce dostupný cluster, který je odolný vůči výpadkům jednoho či více kusů hardwaru a nebo se alespoň dají problémy řešit mnohem rychleji. Nicméně to vyžaduje spolupráci nás i programátorů, abychom připravili prostředí, které oni mohou využít. Vysoce dostupná aplikace musí umět pracovat s úložištěm statických dat a někdy i s více databázemi najednou.

Tímto bychom tedy rádi oznámili, že s další aktualizací administrace dostane Roští podporu pro běh aplikací ve více kontejnerech. Zatím půjde o nasměrování load balanceru na dva či více kontejnerů a budeme sbírat odezvu od uživatelů, ale hned v dalším kroku chceme nabídnout úložiště kompatibilní s S3 a replikované custom databáze.

Vysoká dostupnost našich služeb bude další roky naší největší prioritou. Chceme nabídnout standardizované prostředí, ve kterém půjde snadno rozjet aplikaci distribuovaně a tím usnadnit život jak nám tak našim klientům.

Naneštěstí není nic zadarmo a ani v tomto případě nevyhneme nějakým dalším změnám, které nám to umožní. Můžeme být nejlepší v hostování aplikací, ale zároveň nemůžeme být nejlepší v poskytování emailových služeb. Společně se změnou popsanou výše chceme také oznámit, že od března příštího roku přestaneme nabízet naše emailové služby a zároveň zrušíme staré Roští.

Emailové schránky nabízíme od začátku zdarma jako doplňkovou službu. V současné době se ale počet emailů rozrostl přes únosnou mez a to jak množstvím dat, tak co se týče podpory. Většina dotazů na podpoře se týká emailů a i kvůli tomu nás každá schránka stojí přibližně 30 Kč měsíčně.

Zrušení emailů proběhne v několika krocích.

  • V dokumentaci přidáme text popisující tři služby, na které je možné přejít a víme, že fungují spolehlivě.
  • Rozešleme informaci o rušení služby do každé schránky. (leden 2017)
  • Zakážeme přidávat nové schránky. (leden 2017) – už je hotovo
  • Rozešleme znovu informaci o rušení služby do každé schránky. (březen 2018)
  • Poslední upozornění na rušení služby do každé schránky. (květen 2018)
  • Vypnutí emailových služeb. (31. května 2018)
  • Smazání všech dat. (30. června 2018)

Druhou službou, kterou ukončíme, je staré Roští. Aktuálně pracujeme na migračním nástroji, který ale nebude stoprocentní a bude vyžadovat změny v kódu vaší aplikace. Staré Roští tu s námi je šest let a je čas se s jeho prostředím rozloučit. Jeho servery nejsou nějak automatizované a navíc by bylo nutné je brzy aktualizovat na novější verzi Debianu a do toho se už pouštět nebudeme.

Vypnutí proběhne v těchto krocích:

  • Upozornění že staré Roští končí. (leden 2017)
  • Další upozornění, že staré Roští končí. (duben 2018)
  • Vypnutí webů na load balanceru. (květen 2018)
  • Smazání dat (31. června 2018)

Až budeme mít tohle všechno za sebou, uvolní se nám ruce k posunování Roští o kousek dál trochu větším tempem a hlavně trochu jiným směrem. Změny jsou důležité hlavně kvůli uvolnění hardwaru a podpory, abychom mohli provozovat distribuované služby, potřebujeme trojnásobek serverů tak jsou oba kroky nezbytné k tomu, co jsem v prvních části tohoto článku nastínil.

Chápeme, že ne všichni uživatelé z toho budou nadšení, ale doufáme, že oceníte změny, které nám to umožní implementovat. Děkujeme za dosavadní podporu a budeme rádi, když nám napíšete, co si o chystaných novinkách myslíte.