• vývoj
  • e-commerce

Vývoj a produkce: proč je za každou cenu oddělit

Autor vshosting~

Která rizika s sebou nese spojení vývoje s produkcí a jak infrastrukturu nastavit lépe.

Ve vshosting~ je našim cílem nejen klientům poskytovat špičkový hosting, ale i dobře poradit. Za 14 let našeho fungování už jsme toho totiž viděli opravdu hodně, takže víme, co funguje i od čeho je lepší dát ruce pryč. Jedním z klíčových (a velmi drahých) nešvarů, se kterým se setkáváme, je sdílená infrastruktura pro vývoj i produkci. A to i u velkých projektů, které by v případě průšvihu mohly přijít o neskutečné peníze. 

Vzhledem k tomu, jak velké riziko společná vývojová a produkční infrastruktura představuje, je takový průšvih neustále na spadnutí. Proč je vývoj v produkčním prostředí tak nebezpečný? A jak celou infrastrukturu nejlépe nastavit tak, abyste eliminovali riziko? Sepsali jsme to nejdůležitější.

Vývojové vs. produkční prostředí

Vývojové (a testovací) prostředí by mělo sloužit jen a pouze k vývoji a testování nového softwaru či featur. To se vztahuje jak na změny ve vlastní aplikaci, tak i např. na updaty softwarového vybavení serveru. Vývojáři v něm mohou v klidu experimentovat bez obav, že by ohrozili produkci.

Produkční prostředí je naopak to, kde aplikace běží „naostro“ - například e-shop, kde zákazníci vyhledávají a zkoumají produkty, dávají je do košíku a platí za objednávky. Produkce je jednoduše to, co „je vidět“ pro běžného uživatele i všechny systémy v pozadí, které jsou pro funkci aplikace zásadní (například databáze, skladové systémy atd.).

Ale hlavně: produkční prostředí je to, které vydělává. Proto by se kolem něj mělo chodit obloukem a ještě navíc po špičkách. Každý problém na produkci se totiž rapidně změní v ušlý zisk.

Rizika společné infrastruktury

Pokud od sebe neoddělíte vývoj a produkci, může se snadno stát, že vaši vývojáři pustí ven nedostatečně otestovaný software, který následně poškodí nebo rozbije celou aplikaci. Jinými slovy: „spadne“ produkce. Když budete mít dostatečnou smůlu, vaše aplikace nepojede klidně i několik hodin nebo dní než ji vývojáři opraví. To by v případě velkého e-shopu znamenalo klidně i statisíce v ušlých tržbách a zbytečně vynaložených nákladech na marketing. O extra nákladech na vývoj ani nemluvě.

Obzvlášť bolestivé jsou tyto případy v době vysokého provozu na vašem webu. U e-shopů jde typicky o předvánoční sezonu - podívejte se, kolik by vás stál byť jen hodinový výpadek. Může se ovšem jednat i o období, kdy intenzivně investujete například do televizní reklamy. Ta je velice drahá a nejde jen tak pozastavit, protože vám zrovna nefunguje e-shop.

Bohužel už jsme podobných situací viděli mnoho. Z toho důvodu všem našim klientům dlouhodobě doporučujeme, aby nový software tvořili ve vývojovém prostředí, pak otestovali v prostředí testovacím a teprve poté nasadili do produkce. Totéž platí pro rozšiřování softwarové výbavy produkčních serverů. Pouze důkladným otestováním mimo produkční prostředí se můžete vyhnout se situaci, že bug v produkci objevíte v pátek večer těsně před Vánoci.

V rámci odděleného vývojového prostředí můžete bez rizika provádět deploy nových verzí aplikace (např. upraveného e-shopu) a každou dobře otestovat před nasazením do produkce. Umožní vám také aktualizovat nové verze jednotlivých serverových komponent (nová verze DB, PHP, apod.) a otestovat jejich kompatibilitu a funkčnost. Teprve až si budete jisti, že vše správně funguje, převedete vše do produkčního prostředí. Celkově si tak ušetříte mnoho komplikací i snížíte náklady.

Jak vývoj a produkci oddělit: praktické tipy

Při výběru hostingového řešení mějte oddělení vývojového a testovacího prostředí od produkce na paměti. Ideální je mít pro účely vývoje a testů oddělený server a produkční prostředí provozovat na jiném serveru či clusteru serverů. Ve vshosting~ vám rádi zdarma poradíme s výběrem nejvhodnějšího řešení - ozvěte se nám.

Pomůžeme vám navrhnout vhodnou konfiguraci pro vaše vývojové a testovací prostředí tak, aby plně odráželo produkci a zároveň abyste zbytečně neplatili za výkon, který nepotřebujete. Vzhledem k tomu, že vývojové prostředí nemá návštěvnost jako vaše hlavní aplikace na produkci, nemusí být tak robustní. Například pokud vaše produkce sestává z clusteru 3 výkonných serverů, pro účely vývoje a testování vám bude dost možná stačit jeden menší virtuální server. Využití cloudu pro vývoj doporučujeme, protože jde typicky o nejúspornější variantu z nákladového hlediska.

Klientům, kteří u nás využívají managed služby, rádi zajistíme i tvorbu vývojového prostředí. Zjednodušeně řečeno „naklonujeme“ jejich produkci a upravíme tak, aby prostředí bylo identické a zároveň výkon nebyl zbytečně naddimenzován. Díky tomu získáte všechny benefity odděleného vývoje od produkce a ještě ušetříte čas i finance. Následně můžete veškeré úpravy provádět ve vývojovém prostředí a po jejich úspěšném otestování je jednoduše převést na produkci.