Anonymizovaný projekt z praxe

Z komerční RPA platformy na Robot Framework: řešení převzal interní tým

Komerční RPA platforma klientovi umožnila rychle spustit první automatizace interních procesů. S dalšími procesy, uživateli a licencemi ale rostly provozní náklady i závislost na komerčním nástroji. Klient se proto rozhodl přejít na open-source řešení postavené na Robot Frameworku a připravit vlastní tým na jeho samostatný rozvoj.

  • Robot Framework
  • Python
  • Page Object Model

Jak se s rozsahem automatizace měnily náklady

Komerční RPA platforma klientovi pomohla začít bez budování vlastního technického základu. S přibývajícími procesy, uživateli a licencemi rostly také provozní náklady a závislost na původní platformě.

Klient se proto rozhodl pro open-source řešení, nad kterým by měl větší kontrolu a mohl ho rozvíjet vlastními kapacitami. Jako nový základ jsme zvolili Robot Framework, který se používá také pro robotickou automatizaci procesů (RPA).

Open-source řešení neodstraňuje náklady na infrastrukturu, údržbu, aktualizace ani odbornou podporu. Další rozvoj už ale nemusel být svázaný s původním licenčním modelem. Kritéria tohoto rozhodování rozebíráme také ve srovnání open-source a komerčních RPA řešení.

Automatizace jsme postavili znovu

Existující automatizace nešlo jednoduše exportovat a přenést do nového nástroje. Řešení jsme proto stavěli prakticky od začátku. Při návrhu jsme odstranili vazby na původní platformu a nastavili společná pravidla dříve, než začal počet robotů znovu růst.

Navrhli jsme architekturu v Robot Frameworku, strukturu projektů a principy pro další procesy. Procesy jsme v Robot Frameworku zapisovali v čitelné podobě. Pomocné knihovny a vlastní technickou logiku, pro kterou samotná klíčová slova nestačila, jsme doplnili v Pythonu.

Od začátku jsme oddělili procesní logiku, technickou komunikaci s aplikacemi, vstupní data, konfiguraci a znovupoužitelné komponenty. Autoři robotů tak nemuseli u každého projektu znovu rozhodovat, kam tyto části patří a jak mají fungovat.

První roboty ukázaly způsob dalšího vývoje

V úvodní fázi jsme vytvořili první skutečné robotizované procesy a použili je také jako referenční implementace. Interní tým na fungujícím projektu viděl syntaxi Robot Frameworku i způsob, jak navrhnout další proces v souladu se společnou architekturou.

Jeden z použitých modelů opakovaně spouštěl stejnou automatizační logiku s různými vstupními daty. Namísto samostatného robota pro každou položku zpracoval při každém běhu další připravený vstup. Samotný postup se neměnil.

Oddělení dat od logiky usnadnilo opakované použití. Změna vstupu nevyžadovala zásah do postupu robota. Při změně procesu stačilo upravit jedno místo namísto několika téměř stejných implementací.

Osvědčené postupy jsme zapracovali přímo do projektu

Open-source nástroj sám o sobě nezaručí udržitelný vývoj. Bez společných pravidel může i v Robot Frameworku vzniknout nepřehledná sada skriptů, které rozumí pouze původní autor. Spolu s architekturou jsme proto stanovili standardy pro další automatizace:

  • vrstvenou strukturu inspirovanou návrhovým vzorem Page Object Model, která oddělovala technickou komunikaci s aplikacemi od procesní a byznysové logiky
  • společné zdroje (resources), klíčová slova a komponenty, aby se stejná funkcionalita neimplementovala znovu v každém robotovi
  • jednotnou strukturu pro úlohy (tasks), konfiguraci, vstupní data, proměnné a pomocné knihovny
  • centralizovanou správu prostředí a konfigurace namísto hodnot zapsaných přímo v automatizacích
  • jednotné zpracování očekávaných chyb, ukončování procesů a diagnostické informace
  • standardizované logování, podle kterého bylo možné zpětně dohledat průběh zpracování a příčinu neúspěšného běhu
  • pravidla pojmenování, přiměřenou velikost klíčových slov a jasné rozdělení odpovědností mezi vrstvami
  • pravidla rozšiřování, aby nové roboty nejprve využívaly existující komponenty a nevytvářely souběžná řešení stejné úlohy

Předání připravilo tým na samostatný vývoj

K převzetí řešení nestačila znalost syntaxe Robot Frameworku. Interní tým potřeboval rozumět architektuře, organizaci projektů, společným komponentám, vývojovým standardům, pravidlům pojmenování, konfiguraci, datům, logování i zpracování chyb.

Součástí předání byla školení, dokumentace a praktické ukázky na prvních robotech. Při tvorbě dalších automatizací jsme tým technicky vedli, aby si nový způsob práce osvojil na fungujícím řešení.

Know-how jsme předávali tak, aby po zavedení architektury a prvních procesů nevznikla nová závislost na externím dodavateli. Interní tým potom dokázal další roboty vyvíjet a podporovat samostatně.

Co se pro klienta změnilo

  • Komerční RPA platformu nahradilo řešení postavené na open-source Robot Frameworku.
  • Klient získal společnou architekturu, strukturu projektů a pravidla pro další rozvoj automatizace.
  • První automatizace připravené pro produkční použití interní tým používal také jako referenční implementace pro nový vývoj.
  • Pro konfiguraci, data, logování a zpracování chyb vznikl jednotný postup.
  • Znovupoužitelné komponenty omezily potřebu implementovat stejné kroky ve více robotech.
  • Interní tým získal dokumentaci, praktické zaškolení a zkušenost s rozšiřováním řešení.
  • Po předání mohl interní tým pokračovat ve vývoji a podpoře robotizovaných procesů vlastními kapacitami.
  • Klient získal větší kontrolu nad řešením a jeho další rozvoj už nebyl svázaný s původním licenčním modelem.

Potřebujete nahradit nebo rozšířit RPA řešení?

Stručně popište současnou platformu, automatizované procesy a způsob, jakým je chce váš tým dále rozvíjet.