Tworzenie automatyzacji wiąże się z programowaniem. Mogą to być całe skrypty w Pythonie, playbooki Ansible czy konfiguracje Jenkinsa. Niezależnie od tego co chcesz stworzyć potrzebujesz do tego dobrego, najlepiej darmowego zintegrowanego środowiska (Integrated Development Environment, czyli IDE). Ułatwi Ci ono pisanie kodu, ale i zarządzanie nim w systemach kontroli wersji. Uwierz mi, edytor tekstu się nie sprawdzi.
Jakie powinno być idealne IDE
Środowisko IDE musi Ci pomagać w pracy a nie przeszkadzać. Chwila nauki na poznanie możliwości wybranego produktu szybko zaowocuje. Na rynku dostępnych jest wiele produktów zarówno darmowych jak i komercyjnych. Wiele systemów kontroli wersji posiada własne edytory, wbudowane w interfejs dostępny przez przeglądarkę. One mogę być jednak przydatne do wprowadzania szybkich, drobnych poprawek, a nie codziennej pracy. Szukając odpowiedniego produktu dla siebie musimy zwrócić uwagę na kilka aspektów:
- Niech będzie to IDE dedykowane, lub pozwalające na pisanie, uruchamianie i debugowanie skryptów w języku Python. Jest to jeden z najpopularniejszych języków bardzo często wykorzystywany w tego typu zastosowaniach. Dobrze by wspierał także język Perl, choć ten nie jest w automatyzacji często wykorzystywany. Jeżeli piszesz skrypty w systemie Windows musi wspierać język PowerShell.
- Musi rozumieć i pomagać tworzyć struktury opisu danych takie jak XML, JSON oraz YANG. Powinien sprawdzać składnię i poprawność tworzonych obiektów.
- Musi wspierać język opisu formalnego jakim jest YAML.
- Obsługa systemy kontroli wersji GIT jest elementem praktycznie każdego produktu. Warto jednak, aby Twoje środowisko potrafiło integrować się i w pełni wykorzystać zaawansowane funkcjonalności GitHuba i GitLaba. Jeżeli w Twojej firmie wykorzystuje się inne środowisko kontroli wersji (na przykład Atlassian Bitbucket) to zwróć uwagę by właśnie integracja z tym produktem była wspierana.
- Bardzo przydatne będzie wsparcie dla składni plików konfiguracyjnych Terraforma, języka definicji testów z ROBOT Framework, renderowanych plików dokumentacji w języku Markdown, plików konfiguracyjnych INI czy nawet typowych plików danych CSV.
Jak widzisz potencjalnych języków czy struktur danych, z którymi w automatyzacji ma się styczność, jest bardzo dużo.
Mój wybór to pyCharm
Od paru lat JetBrains pyCharm to podstawowe narzędzie, w którym tworzę wszelkiego rodzaju skrypty czy konfiguracje. Jest to w kompletne IDE pozwalające wykonać mi całość niezbędnej pracy. pyCharm dostępny jest on zarówno jako produkt całkowicie bezpłatny (pyCharm Community) jak i w rozszerzonej wersji płatnej (pyCharm Professional). Mnie wystarcza wersja bezpłatna.
pyCharm jest przede wszystkim środowiskiem przeznaczonym do pisania aplikacji w języku Python. Dlatego zawiera szereg narzędzi ułatwiających pracę programisty. Są to takie udogodnienia jak sprawdzanie poprawności semantyki kodu, podpowiadanie pasujących do użycia metod czy zmiennych czy narzędzia do diagnostyki problemów. Z poziomu projektu możemy też łatwo stworzyć dedykowane wirtualne środowisko dla naszej aplikacji za pomocą venv albo pipenv czy Conda. Poza tym, co już jest oczywiście subiektywną opinią, jest to produkt dobrze zaprojektowany wizualnie i funkcjonalnie.
Za pomocą wtyczek, zarówno darmowych jak i płatnych, możemy rozszerzyć funkcjonalność pyCharma. W ten sposób dodamy obsługę składni YAML, ROBOT Framework, integrację z GitHubem i GitLabem. Możemy też rozszerzyć w ten sam sposób listę obsługiwanych języków programowania o Perl czy PowerShell.
Moim zdaniem jest to najwygodniejsze darmowe środowsko IDE z dostępnych na rynku. pyCharm dostępny jest zarówno w wersji dla Windows, Linux i MacOS.
pyCharm to element całego środowiska
Warto nadmienić, że pyCharm jest elementem sporego ekosystemu developerskiego stworzonego przez firmę JetBrains. Dostępnych mamy środowiska IDE dla bardzo wielu języków programowania od Javy zaczynając, poprzez Ruby, Go, PHP czy nawet C++. Z punktu widzenia szeroko pojętego DevOps na uwagę zasługują jednak inne produkty:
- TeamCity – serwer zapewniający wparcie procesów CI/CD, czyli ciągłego dostarczania i wdrażania projektów informatycznych, w których proces budowania, kompilacji, testowania i wdrażania jest zautomatyzowany. Najbardziej znanym narzędziem tego typu jest niewątpliwie Jenkins. TeamCity jest darmowe w wersji Professional, płatna jest jego rozbudowana wersja Enterprise.
- YouTrack – system do zarządzania bugami i requestami (tak zwany bug and issue tracker) w oprogramowaniu integrujący się z systemem kontroli wersji. Darmowy w instalacjach do 10 użytkownków.
- UpSource – system do zarządzania zmianami w kodzie, akceptacji zmian, współtworzenia kodu. Integruje się z GitHubem czy popularnymi systemami CI. Darmowy w instalacji do 10 użytkowników.
- Hub – system do zarządzania użytkownikami i uprawnieniami w środowisku produktów JetBrains. W pełni darmowy.
- Space – nowy produkt do zarządzania pracą grupową developerów, także w wersji darmowej.
Produkty alternatywne
Na rynku dostępnych jest wiele produktów o podobnych cechach. Zanim przesiadłem się na pyCharm długo używałem innego darmowego produktu o nazwie Atom. Jest to projekt open-source. Atom nie jest jednak w pełni środowiskiem IDE, lecz zaawansowanym edytorem przeznaczonym do programowania w różnych językach czy tworzenia struktur danych. Większość funkcjonalności dostępna jest w postaci wtyczek. Choć brakuje mu dobrych narzędzi do debuggingu to nadal jest to bardzo rozbudowane i wygodne w użyciu narzędzie codziennej pracy. Atom dostępny jest w wersji na Windows, Linux i MacOS.
Jeżeli programujesz w Windows na pewno znasz Microsoft Visual Studio. To bardzo rozbudowane i kosztowne IDE dedykowane językom programowania od Microsoftu. Od paru lat dostępna jest jego okrojona darmowa wersja Microsoft Visual Studio Community. Ma on wbudowane wszystkie niezbędne funkcje, wspiera też programowanie w Pythonie. Jest to jednak bardzo rozbudowane środowisko do tworzenia aplikacji. Jeżeli nie potrzebujesz całego IDE zainteresuj się samym edytorem, który został wydany pod nazwą Visual Studio Code dostępnym w wersjach na Windows, Linux i MacOS.
Ten artykuł nie jest sponsorowany, ja na prawdę lubię produkty ze stajni JetBrains!
[…] wbudowana. Podobne funkcjonalności znajdzie w pozostałych produktach, o których wspomniałem w artykule. W Atom prawdopodobnie będziesz musiał zainstalować dodatkowe wtyczki. Możesz także […]
[…] Jako środowisko do pracy nad projektem będę używał PyCharm, o którym pisałem już wcześniej. Przeprowadzę Cię teraz przez wszystkie kroki niezbędne do utworzenia nowego projektu i […]