pondělí 7. srpna 2017

Vývoj na VM v Azure - má to smysl a nebo ne?

Při hledání možností, jak usnadnit práci novým kolegům na našem projektu byla jednou ze zvažovaných možností i použití virtuálního počítače v Azure. Nápad byl asi takový, že si uděláme předlohu, tedy ideální pracovní stroj, kde již budou nainstalovány všechny používané aplikace. Tedy mimo samozřejmého Visual Studia i všechny další nástroje pro práci s kódem, všechny potřebné SDK, testovací nástroje a další.
 Nováček by si tak jen na pár kliků na Azure portálu vytvořil svoji instanci, nastavil potřebné přihlašovací údaje a mohl tak prakticky ihned začít pracovat. 


Dnes dostane jen "holé"  pracoviště, tedy laptop s nainstalovaným operačním systéme (v našem případě s Windows 10) a následně si vše musí nainstalovat a nastavit sám. Děje se tak částečně postupně, i tak ale odhadujeme, že pro  přípravu a instalací všeho potřebného, je potřeba více jak tří dnů. Oproti tomu použití předpřipraveného obrazu a VM by tuto dobu mohlo zkrátit na půl dne. Díky tomu, že  veškerá práce probíhá na VM v Azure, není nutné mít nějaký extra výkonný hardware lokálně a dojde tak i k určité úspoře nákladů. 
Na druhou stanu je ale nutné připravit a udržovat obraz našeho vývojářského prostředí na Azure a implementovat následně  i všechny přicházející aktualizace. Také na připojení k Internetu a na místní síť by byli kladeny jiné nároky.

Následné aktualizace jsou pak časově zhruba stejně shodné bez ohledu jestli se provádí na lokále  a nebo na vzdáleném virtuální  počítači.

Práci s VM si občas zkouším - a je fakt, že se to o hodně zlepšilo, ale zpoždění je občas patrné a člověk má občas pocit, že to "není ono" - ale katastrofální to rozhodně  není. Problémy začnou se sítí - na mé domácí síti stačí, aby někdo začal něco uploadovat a jakžtakž pocit, že to jde, je rázem pryč. Kvalitní konektivita je tedy nutnou podmínkou.

Kolik ušetříme?

Ale dává to vůbec smysl po finanční stránce? Zkoušel jsem si to propočítat, všechny ceny jsou v amerických dolarech a časové údaje ve dnech, vše počítáno na dobu tří let:

Provoz VM něco stojí - naprostým minimem je asi konfigurace A3 (4 jádra. 7GB RAM a 120GB disku), která při důsledném vypínání po skončení pracovní doby stojí kolem 40 dolarů měsíčně. Ale to je minimum, kterého se nepodaří v praxi dosáhnout. Hodina práce s instancí o velikosti A4 (což je 8 jader, 14 GB RAM a 240GB diskového prostoru) stojí 60 centů. Pokud bude tato instance běžet 10 hodin denně, 21 dnů v měsíci, bude nás provoz za 3 roky stát kolem 4500 USD.

Pokud to vše nějak shrnu, tak pro provoz VM jsou rozhodující tyto náklady - vše pro dobu tří let:

  • DevOps stráví celkem asi 15 dnů přípravou a následnou aktualizací obrazů
  • Vývojář pak prvotním nastavením stráví půl dne, během tří let každí tři měsíce stráví čtrtinu dne aktualizacemi OS, VS a dalších nástrojů  - celkem tedy asi 3dny.
  • Laptop bude stát 1000 USD, provozní náklady VM budou 4500 USD, celkem tedy 5500 USD

Při lokálním vývoji jsou náklady tyto:

  • Vývojář stráví prvotním nastavením tři a půl dne, podobně jako u BM pak každé tři měsíce čtvrt dne obětuje aktualizacím, celkově tedy touto praí stráví 6 dnů
  • Laptop bude stát 2500 USD - bude mít více lepší CPU, více RAM, rychlý SSD disk.

Dáno do tabulky, lze si snadno vypočítat, kolik bude ušetřený den stát v závislosti na počtu vývojářů:

# developers51015306090
VM days304560105195285
VM price USD275005500082500165000330000495000
LM days306090180360540
LM price USD12500250003750075000150000225000
Price for a day saved in USD1500020001500120010911059

Z tabulky tedy žádná finanční výhoda při používání VM neplyne - v  malém týmu bude den ušetřené práce stát kolem 1500 USD, tedy vedlo by to spíše k prodělku. Ani u velkého týmu není úspora tisícovky dolarů něco, za co by nás finančníci moc pochválili - tedy asi ve většině českých firem.

Co s tím?

Aby to mělo smysl, je nutné:
  • co nejvíce standardizovat vývojové prostředí s tím, že vývojář nesmí provádět žádné velké změny a IT oddělení musí mít co největší kontrolu - tak, aby ideálně odpadly i ty dny nutné na aktualizace vývojářem a celkové doba, kterou stráví "neproduktivně" se omezila jen na prvotní nastavení. 
  • vyjednat slevy na provoz VM, popřípadě zvolit jinou velikost VM a přísněji dbát na dodržování doby běhu instance v Azure. 
  • dělat práci s vyšší přidanou hodnotou, tedy jinými slovy pracovat produktivněji
Snížení ceny provozu VM z původních 4500 USD na 2000 USD během tří let a zkrácení doby nastavení na půl dne se projeví takto:

# developers51015306090
VM days17.52022.5304560
VM price USD15000300004500090000180000270000
LM days306090180360540
LM price USD12500250003750075000150000225000
Price for a day saved in USD2001251111009594

Na závěr

Samozřejmě jsou i jiné důvody pro zavedení práce s VM - firma to může striktně vyžadovat, přeci jen  tak může lépe kontrolovat přístup ke zdrojovým kódům, popřípadě je přidané hodnota práce tak zásadní, že zvýšené náklady nejsou podstatné. navíc si může sama provozovat prostředí pro běh VM a v kombinaci s ostatními faktory se to pak vyplatí.

12 komentářů:

  1. Není lepší udělat totéž na lokálním vmvare ESXi/HyperV serveru? Na gigabitu se pracuje mnohem lépe.

    OdpovědětVymazat
  2. Zmiňuji to jako možnost na konci článku, ale nemám přehled o cenách takového řešení, tedy na kolik přijde vlastní hardware, softwarové vybavení, jaké jsou náklady na administraci a podobně.

    OdpovědětVymazat
  3. I got lot of informations from your blog.And thanks for sharing!!!!
    Digital Marketing Company in Chennai

    OdpovědětVymazat
  4. This blog is very much interesting to see...
    SAP ABAP Training in Chennai

    OdpovědětVymazat
  5. Thank you for your information. it is very useful on any person. really for amazing information in ur file.
    seo company in chennai

    OdpovědětVymazat
  6. i have lot of information your blog. thank for sharing
    seo company in chennai

    OdpovědětVymazat
  7. I got lot of informations from your blog.And thanks for sharing!!!!
    Best sap basis training in chennai

    OdpovědětVymazat
  8. Tento komentář byl odstraněn autorem.

    OdpovědětVymazat
  9. Tento komentář byl odstraněn autorem.

    OdpovědětVymazat
  10. Its is one of the good information. Thanks for sharing the fabulous one..
    .
    AWS Training in chennai

    OdpovědětVymazat
  11. Thanks for the informative article. This is one of the best resources I have found in quite some time. Nicely written and great info. I really cannot thank you enough for sharing.

    Carwash in omr
    usedcars in omr
    automotors in omr
    car accessories in omr

    OdpovědětVymazat
  12. http://martinstrimpfl.blogspot.com/

    OdpovědětVymazat