Zase jsme to přepsali — Vyvolej.to V4

Filip Ornstein
Binary trash
Published in
2 min readMay 24, 2016

Před měsícem jsme spustili novou verzi Vyvolej.to, tentokrát s pořadovým číslem 4, poprvé bez viditelných změn pro zákazníky. Hlavním cílem bylo vyrovnat se s vnitřním technologickým dluhem a připravit se na budoucnost.

Pro teď pominu vymýšlení mezinárodní značky a související logistické veletoče. Začalo to nevinně, překladem webu pro spuštění německé a polské verze, kterou logicky následovala i zastřešující anglická verze Squared.one. V těsném sledu release foto plakátu. To jsme ještě zvládli za cenu mnoha problému na staré verzi, ale tím jen definitivně vyplavaly na povrch veškeré nešvary.

Hybatelem byl Jakub, který vyjádřil velkou nespokojenost se současným řešením postaveným sice na jazyku Ruby, ale na zastaralém frameworku Padrino. Po několika incidentech typu shit hit the fan bylo rozhodnuto. Jeho téměř neodolatelné nabídce na přepis do Ruby on Rails se — při přehlížení všech návazností a ignorování faktu, že se bude hodně kácet a bude lítat hodně třísek — nedalo odolat. Petr současně přišel s myšlenkou přepsat veškeré foto exporty do LaTeXu, abychom podporovali emotikony, další fonty a jazyky (např. umíme arabštinu, protože knihovnu používáme i pro Printku).

Jak píšu, umíme už i emotikony ;] Powered by EmojiOne

Nyní je tomu měsíc, co poklidně ve vláknech předou a sem tam spadnou nové Pumy pohánějící Ruby on Rails 5 RC1 aplikaci plnou všech aktuálních návrhových vzorů z Ruby světa. Concerns a stavové automaty na modelech, vlastní generátory administrace, generátory generátorů a testování včetně kontroly exportů. Velkou radost máme z Action Cables, které řeší websockety včetně fallbacků. Konečně se podařilo elegantně napojit nástroj na výběr a úpravu fotek napsaný v Ember.js.

Action Cables, pupeční šňůra k mateřské lodi.

Dále jsme celý web schovali za CloudFlare (transparentní CDN), který čirou náhodou přidal nedávno i podporu zmíněných WebSockets. Všechno by mělo šlapat jako o život. Až na ty pumy. Přiznejme, už za sebou máme i dlouhý výpadek tuto neděli, nebo až na podruhé zvládnutou migraci při spouštění s několika hodinovým výpadkem.

Jsme zase více poučeni. Na CI jsme nasadili Jenkins, aplikace bez zelených testů by správně neměla na server. V tom se zejména já(!) musím zlepšit. Máme více aplikačních serverů (s Nginx failover load-balancingem) a samostatný worker pro exporty, na které děláme deploy pomocí Capistrana.

Jsou i věci, které jdou udělat lépe a rychleji. Plánujeme nahrávání fotografií přímo na Amazon S3 klientem, abychom odstranili zbytečnou brzdu v podobě našich serverů, stejně veškeré zpracování probíhá asynchronně pomocí Sidekiqu a Redisu. Vývoj webu nikdy nekončí a budeme rádi, pokud to zákazníci poznají jen na nových produktech a rychlosti…

--

--