U nás v MEMOS Software poskytujeme “následnou podporu” u valné většiny projektů a vůbec zde ale nejde o běžné každodenní problémy s firemním IT. Pomáháme jim totiž s provozem a dostupností vlastního softwaru, který si firmy vyvinuli u nás, případně k nám svoje vyvinuté aplikace dali do péče až po vývoji. Jednoduše by se dalo říci, že se pasujeme spíše do role “servisní služby pro vývojáře” u velkých firem a “jistoty včasného zásahu” u menších firem bez vlastního IT oddělení. Co si z našeho přístupu vzít? Že péče o vlastní aplikace je důležitá, ať vám ji vykonává interní tým nebo externí dodavatel.
Zavedení DevOps procesů a úprava databází
Automatizace deployment je jedním z nejdůležitějších kroků v implementaci DevOps. Základní myšlenka spočívá v tom, že kód, který vývojáři vytvoří na svých lokálních strojích, by měl před vydáním procházet různými fázemi testování automatizovaně, až do fáze, kdy je nasazen na produkční servery. Tento proces je klíčový nejen pro zrychlení samotného vývoje, ale i pro snížení rizika chyb v produkčním prostředí. Důležité je pracovat se dvěma pojmy Continuous Integration (CI) a Continuous Deployment (CD). Prvním krokem je zavedení systému pro Continuous Integration, jako je například hojně využívaný Azure DevOps. Tyto služby mohou následně monitorovat repozitáře s kódem a při každé změně automaticky spustit nové sestavení kódu (build). Pokud daný build selže, vývojáři jsou okamžitě upozorněni, což umožňuje rychlou identifikaci a opravu chyb. Po úspěšném průchodu buildem následuje nasazení na testovací prostředí, kde se pak nad kódem mohou provést automatizované/manuální testy. Po úspěšném otestování je aplikace připravena pro další prostředí, zde ale velmi záleží na workflow jednotlivých zákazníků. Následuje Continuous Deployment. Jedná se o proces, v rámci něhož je kód automaticky nasazen na další prostředí, např. Staging, nebo rovnou na produkční servery – v nejlepším případě skrze schvalovací workflow, který zabrání nechtěnému spuštění releasu neautorizovaným osobám. Tímto způsobem dojde k výraznému snížení časové náročnosti při přechodu z vývojového prostředí do produkce.
Často probíraným tématem je také převod infrastruktury do kódu, známý jako Infrastructure as Code (IaaC). “Jedná se o klíčový prvek moderního DevOps přístupu. Tento model umožňuje správu a konfiguraci infrastruktury prostřednictvím textových souborů, což výrazně snižuje riziko chyb, které by mohly vzniknout při manuálním nastavování. V našem prostředí, kde primárně využíváme linuxové servery, se spoléháme na nástroje Ansible pro automatickou konfiguraci (provisioning) a správu, a Azure ARM templates pro definici a konfiguraci zdrojů v Azure,” vysvětluje Daniel Procházka, člen technické podpory firmy MEMOS Software a dodává, že verzování build pipeline také představuje důležitý aspekt, který firmám umožňuje sledovat a provádět revizi všech změn. Využívat k tomu lze například Azure Pipelines YAML v Azure DevOps, nebo jejich ekvivalent např. v GitLabu či jiných CI/CD službách.
Z historického hlediska se řada firem stále spoléhá na ruční úpravy databázových struktur. To je ale již značně přežitý a riskantní proces, jehož využívání může mít za následek mnoho problémů a chyb. Místo toho je dobré zvážit přístup, kdy veškeré změny v databázi probíhají výhradně prostřednictvím kódu – což mnozí znají pod pojmem code-first. Tento způsob zajišťuje, že veškeré modifikace jsou sledovatelné, dají se aplikovat ve verzích a následně i mnohem lépe testovatelné. V celku to výrazně snižuje pravděpodobnost chyb a zjednodušuje proces nasazení nových verzí aplikací.
Správně nastavená síť zajistí dostupnost i bezpečnost
Zabezpečení a správa sítí jsou klíčovými obory při provozu vlastního softwaru, v případě správného zacházení s sebou tato témata přinášejí stabilitu a bezpečnost celého systému. Může se jednat o vyhovující nastavení firewallových pravidel, segmentaci sítě i monitorování datového provozu, což jsou nezbytné kroky pro prevenci neautorizovaného přístupu a zajištění integrity dat. Správná síťová konfigurace a bezpečnostní protokoly také podporují optimální výkon aplikací. V době, kdy mnoho firem nabízí homeoffice, je také zcela zásadní vyřešit bezpečný a jednoduchý přístup do interního systému skrze VPN. Dle našich zkušeností se správou softwarů také přibývá požadavků zřízení hybridní infrastruktury v podobě kombinace on-premise a cloudu. Není se čemu divit, tento přístup totiž kombinuje benefity obou variant: bezpečnost a kontrolu on-premise řešení spolu s pružností a škálovatelností cloudových služeb.
Na druhou část tohoto článku můžete pokračovat zde.