Konfiguracja środowiska programistycznego – jak robimy to w Develtio
Żaden projekt związany z tworzeniem oprogramowania nie zakończy się sukcesem bez sprawnego i kompleksowego środowiska, tworzonego od samego początku. Tylko dzięki odpowiednim narzędziom programiści mogą w pełni wykorzystać swoje umiejętności i doświadczenie. W Develtio wiemy o tym doskonale. Dlatego poświęciliśmy wiele czasu i zasobów, aby stworzyć wyjątkowe połączenie rozwiązań, które sprawią, że praca programistów jest tak wydajna i bezproblemowa, jak to tylko możliwe. Czytaj dalej, aby poznać unikalne podejście Develtio do konfiguracji środowiska w projektach związanych z tworzeniem oprogramowania.
Starannie zagospodarowane kontenery
Jeśli nie znasz pojęcia o konteneryzacji, oto krótkie podsumowanie: kontenery to pakiety oprogramowania składające się z aplikacji i ich zależności, które mogą być uruchamiane i testowane autonomicznie w ramach tego samego lub różnych systemów operacyjnych. Kontenery eliminują problem rozbieżności sprzętowych i programowych pomiędzy maszynami używanymi przez zespół programistów.
Najpotężniejszym (i najpopularniejszym) narzędziem wykorzystywanym do konteneryzacji jest Docker. Jest to fantastyczne oprogramowanie, które wiele firm wykorzystuje jako podstawowy element konfiguracji środowiska. Nie jest więc zaskoczeniem, że w Develtio też go używamy. O wiele bardziej interesujące jest to, jak go używamy i co zrobiliśmy, aby uwolnić pełny potencjał dockeryzacji.
Biegnij, Docker, biegnij!
Dockeryzacja wymaga tworzenia obrazów, które są w zasadzie plikami zawierającymi wybraną wersję aplikacji, jej konfigurację oraz zależności. Obraz Dockera jest potrzebny do uruchomienia aplikacji w wymagany przez nas sposób. Często jednak, aby aplikacja mogła być uruchomiona w kontenerze, potrzebne są konkretne działania, np. kod źródłowy wymaga kompilacji. I tu właśnie robi się ciekawie.
W Develtio wpadliśmy na pomysł tzw. runnerów, czyli naszych niestandardowych rozwiązań, które potrafią:
- uruchomić Dockera,
- skompilować kod źródłowy,
- wykonywać inne czynności związane z aplikacją.
Runner generuje przyjazny adres URL, pod którym skonteneryzowane środowisko może być łatwo dostępne dla innych deweloperów lub Project Managerów. To sprawia, że praca deweloperów jest znacznie bardziej usprawniona i zapewnia doświadczenie, które ściśle przypomina użytkowanie rzeczywistego serwera na żywo. Brzmi to imponująco, prawda? I, prawdę mówiąc, ledwie dotknęliśmy wierzchołka góry lodowej. Nasze runnery są pełne funkcji i funkcjonalności zaimplementowanych po to, aby konfiguracja środowiska programistycznego Develtio nie miała sobie równych pod względem wydajności i użyteczności. Oto tylko kilka przykładów:
Współdzielone terminale
W większości software house’ów, kiedy programista potrzebuje, aby bardziej doświadczony kolega przyjrzał się jakiemuś problemowi, zazwyczaj kopiują i wklejają logi do okna czatu i omawiają go podczas rozmowy. To działa dobrze, gdy problem jest niewielki, a odpowiedź prosta. Ale kiedy potrzebne są setki linii kodu, krążenie po nim tam i z powrotem może być bardzo nieefektywne. Dlatego umożliwiliśmy naszym programistom współdzielenie dostępu do ich lokalnych terminali kodowych bez współdzielenia dostępu do całej maszyny. Wystarczy jedna prosta komenda, aby terminal był dostępny dla każdego w firmie.
Lokalnie dostępne certyfikaty SSL
Gdy nowo opracowana funkcja wymaga do działania ważnego uwierzytelnienia SSL, należy uzyskać oficjalny certyfikat dla lokalnej domeny. Proces ten może być uciążliwy, ponieważ wyprodukowanie dla Certificate Authority dowodu, że lokalna domena rzeczywiście istnieje, jest znacznie trudniejsze niż się wydaje. Znaleźliśmy sposób na rozwiązanie tego problemu. Nasze lokalne środowiska programistyczne zawsze od samego początku wyposażone są w ważne certyfikaty SSL.
Warto dodać, że na każdym kroku wszystkie nasze lokalne środowiska programistyczne mogą być eksportowane do fazy stagingowej i produkcji, co dodatkowo zwiększa efektywność procesu rozwoju.
Osobne środowiska
Różnica między naszymi środowiskami programistycznymi a normą branżową wykracza daleko poza lokalną konfigurację. Wszystkie gałęzie stagingowe w naszym repozytorium GitHub mogą mieć swoje własne, oddzielne środowisko programistyczne dostępne pod osobnym adresem URL. Pozwala to na pracę z dockerowanymi aplikacjami osobno na każdej gałęzi Git z własnym niestandardowym środowiskiem.
Ponadto możemy tworzyć nieograniczoną liczbę środowisk testowych w ramach tego samego projektu. Aplikacja z nowymi funkcjami może być wysyłana do testów niezależnie od innych gałęzi i ich środowisk. Proces ten może być w pełni zautomatyzowany, a także pozwala na autonomiczne testowanie tylko określonych funkcjonalności.
Dzielimy się
Nasze skonteneryzowane środowiska programistyczne to coś więcej niż inteligentne konfiguracje stworzone tylko po to, aby ułatwić życie naszym deweloperom. Te pakiety tworzą całościowy, kompleksowy ekosystem oprogramowania, dzięki czemu współpraca i dzielenie się wiedzą jest tak wydajne i przejrzyste, jak to tylko możliwe. Korzystają na tym również nasi klienci – udostępniamy im nasze repozytoria na GitHubie, dzięki czemu nasza praca może być monitorowana i testowana na każdym etapie. Jesteśmy dumni z tego, co robimy i nie mamy nic przeciwko dzieleniu się efektami naszej pracy.
Podobne posty:
Co możemy dla Ciebie zrobić?
Porozmawiajmy o Twoim projekcie i zacznijmy budować go razem!