Droga do pełnej automatyzacji czyli jak wdrożyliśmy CI/CD w Signal

Głównym celem prelekcji, będzie przedstawienie ponad 2-letniej pracy, której finalnym efektem było wprowadzenie procesu Continuous Delivery w projekcie Signal – czyli aplikacji webowej służącej do zarządzania komercyjnymi statkami takimi jak (kontenerowce, tankowce, gazowce). Prezentacje chciałbym rozpocząć od opisania procesu wytwarzania oprogramowania, który zastałem po przyjściu do Signala, opowiedzieć o jego wadach i brakach w kontekście automatyzacji.

Następnie chciałbym przedstawić działania, które udało nam się stopniowo wprowadzać, aby podwyższyć poziom automatyzacji całego procesu tworzenia aplikacji webowej, a były to m.in., migracja testów automatycznych UI z narzędzia TestCafe do Cypress, stworzenie pipeline’a za CD za pomocą Teamcity oraz Azure Devops, zwiększenia pokrycia testami UI, stworzenie testów UI opartych na mockowanych responsach oraz testów wizualnych, zaimplementowanie testów warstwy API oraz testów kontraktów, stworzenie mechanizmu tworzenie dynamicznych środowisko dla każdego Pull Requesta, stworzenie panelu UI do obsługi dynamicznych środowisk, pełne przeniesienie infrastruktury deweloperskiej (agenty, vm’ki, środowiska, bazy danych) do Azure Cloud, przyspieszenie wykonywania testów UI do 6 min (600 testów UI), dzieki skorzystaniu z serwisu Azure Batch, i dynamicznie stawianych i usuwanych wirtualnych maszynach.

Prelekcja ma mieć charakter Case Study i jako QA-DEvops Lead projektu Signal chciałbym przedstawić uczestnikom, drogę jako przeszliśmy, aby osiągnąć najwyższy możliwy poziom automatyzacji w wytwarzania oprogramowania, który udało się osiągnąć przede wszystkim poprzez implementacje i zapewnienia pokrycia testami automatycznymi na różnych poziomach.