Bamboo – ABC konfiguracji

Ten post powstał m.in. z tego powodu, że sam bardzo potrzebowałem pomocy w kwestii konfiguracji Bamboo, a nie udało mi się znaleźć nic sensownego co rozwiałoby moje wątpliwości. Więc drogą dedukcji i błędnych prób, udało mi się zrozumieć jak działa Bamboo (mam taką nadzieję! :D). Opiszę podstawy konfiguracyjne, zasady działania oraz prosty przykład jak skonfigurowałem swoje środowisko i jakie dało mi to korzyści.
Zauważyłem, że mam ciągoty do tematów związanych z „zarządzaniem projektami”, jednak w tym wpisie skupie się na konfiguracji i możliwościach Bamboo w połączeniu z Bitbucket i JIRA.

Mam do dyspozycji instancję Bamboo onDemand – więc będe wszystko opisywał na jej przykładzie.
Jeśli nie wiesz czym jest Bamboo || Bitbucket || JIRA, odsyłam Cię na stronę producenta gdzie znajdziesz wszystkie niezbędne informacje.
Warto też zaznaczyć, że narzędzia te są od pewnego stopnia płatne, jednak moim zdaniem przy pracy nad większymi projektami koszty te się w zupełności zwrócą, a nawet będziemy w stanie zaoszczędzić na tych narzędziach. Wszystko oczywiście zależy od potrzeb, wielkości projektu etc. Ten wpis nie ma na celu reklamowania usług Atlassian. Moim zadaniem było skonfigurowanie Bamboo, więc chcę się z wami podzielić i przedstawić moją subiektywną opinię na ten temat.

*jeśli nie wiesz czym jest Bamboo, obejrzyj ten filmik. Da Ci pogląd z czym to się je.

Czym jest Bamboo dowiedziałem się z kanału na u2b Atlassian. W filmikach o Bamboo nie było wzmianek o tym, jak działa „od kuchni”, więc dopiero podczas konfiguracji dowiedziałem się, że używanie Bamboo bez konta na Amazone (koszta++;) nie ma większego sensu. Oczywiście nie chodzi tutaj o same konto, a o instancje, które trzeba utrzymywać by zapewnić Bamboo moce przerobowe.

Konfiguracja Bamboo

Pierwszym krokiem będzie konfiguracja elastycznych instancji. Ten krok będzie możliwy po włączeniu „Elastycznego Bamboo” i podłączeniu swojego konta Amazon. Proces jest banalny i nie powinien nikomu sprawić problemów. Natomiast podczas pierwszego zetknięcia z Bamboo nasuwało mi się pytanie PO CO?. Odpowiedź poznałem dopiero po kilku godzinach badania Bamboo.
Konfigurując elastyczne Bamboo (bardzo) ważną kwestią jest wybranie odpowiedniego AWS Region.
Jeśli wybierzemy strefe US East (Northern Virginia) będziemy mieli do dyspozycji domyślne obrazy instancji przygotowane przez Bamboo – może nam to znacznie ułatwić pierwsze kroki. Możemy też przygotować Custom Image.
Instancje stawiane przez Bamboo, będziemy mogli śledzić w naszym koncie na Amazone. Istnieje dość ciekawy cron, dzięki, któremu możemy automatycznie zaplanować start instancji, oraz ich wyłączenie.
To bardzo na plus.
Kolejną rzeczą wartą uwagi są globalne zmienne, które można zdefiniować. Ciekawa sprawa, przydaje się bardzo często w definiowaniu konkretnych tasków. Możemy raz ustawić ścieżkę do projektu i później używać; gdy się zmieni – dokonujemy podmiany w jednym miejscu.

plan, stage, job, task – są to pojęcia bardzo często się przewijające, których nie będę tłumaczył ani odmieniał żeby tekst był bardziej zrozumiały.

Warto obejrzeć ten filmik by zrozumieć czym są plan, stage, job i task.

Sercem Bamboo są plans. Ich tworzenie jest proste, podobnie jest ze stages i jobs. Pominę więc tą kwestię, a przejdę do tasks, które są według mnie bardzo fajnie przemyślane.

Tworząc nowy task, możemy określić jego typ. Myślę, że nawet bardziej wymagający gracze znajdą coś dla siebie 🙂

Do ciekawszych zaliczyłbym: SCP Task, SSH Task, PHPUnit, JUnit, Script. Jeśli nie znajdziemy konkretnego typu task, zawsze możemy to uzupełnić SSH Task, Script, które są naprawdę bardzo przydatne – możemy się posiłkować narzędziami z zewnętrznych serwerów.

W kolejnych wpisach poruszę temat tworzenia planów build, deployment oraz jaką rolę odgrywają artifacts.