Scroll to top
en pl

Kontrola wersji a repozytoria artefaktów: dwa kawałki puzzli


Armin Orlik - 10 sierpnia 2017 - 0 comments

CONTINUOUS DELIVERY

Narzędzia kontroli wersji stanowią prawdopodobnie jeden z najlepszych sposobów na wzrost produktywności  zespołów inżynierskich. Łatwość współpracy, śledzenia, i zrozumienia zmian w kodzie źródłowym ma ogromne znaczenie dla poprawy jakości oprogramowania.

Dwa kawałki jednej układanki

Rzeczywiste wymagania względem oprogramowania są z roku na rok coraz bardziej złożone. Ten zwiększony poziom skomplikowania prowadzi do powstawania większych i bardziej zawiłych kodów źródłowych, które z kolei wymagają wyspecjalizowanych narzędzi, umożliwiających zespołom bezpieczne poprawianie i aktualizowanie oprogramowania, jak również współpracę przy jego tworzeniu.

Możliwość zrozumienia jak, dlaczego, i kiedy zmienił się fragment kodu jest konieczna, jeśli chcemy zgłębić przyczyny spadku wydajności, problemów z zabezpieczeniami i bugów. Zestaw narzędzi oferowany przez Perforce dostarcza wielu funkcji, które pomagają użytkownikom osiągnąć ten cel (i wiele innych!) w sposób bezpieczny, łatwy i wydajny, bez względu na rozmiar zespołu czy kodu źródłowego.

Produktem ubocznym tej poprawy widoczności jest zwiększona pewność możliwości zespołu do dokonywania szybkich poprawek w oprogramowaniu w przypadku zmiany wymagań biznesowych. To pozwala zespołom zwiększyć efektywność, poprawiając równocześnie ich zdolność do śledzenia zmian w oprogramowaniu podczas jego szybkiej ewolucji.

Zwiększenie szybkości cyklu życia oprogramowania ma wiele zalet; wczesne i częste release’y pozwalają opracować płynniejszy workflow, który może uwzględniać feedback od klienta, czy też poprawki związane ze zmianą celów biznesowych.

Te zmiany cyklu życia oprogramowania, poczynając od kontroli wersji, wywołały efekt fali działający na inne narzędzia używane w codziennej pracy programisty. Continous integration, analiza statyczna, przechowywanie artefaktów, narzędzia wdrożeniowe – wszystko to podlega zmianom wraz z coraz szerszym użyciem i narastającymi zależnościami przy tworzeniu oprogramowania. Inżynierowie są dziś zależni od możliwości integracji swojego systemu kontroli wersji z wieloma innymi narzędziami, umożliwiającymi zwiększenie szybkości pracy, przy zachowaniu (lub poprawie!) jakości oprogramowania.

Przechowywanie artefaktów ma ogromne znaczenie w nowych, szybkich workflowach, i doskonale zazębia się z funkcjami widoczności i współpracy, jakich dziś oczekują inżynierowie w swoich narzędziach kontroli wersji. Repozytorium binarne i platforma do przechowywania artefaktów packagecloud.io to klucz do zwiększenia widoczności, poprawy wdrożeń, i sprawnego zarządzania artefaktami builda, gdyż pozwala ona inżynierom na szybki upload artefaktów, kontrolę dostępu do nich, współpracę, i wdrażanie z różnych języków programowania i środowisk.

Układanie puzzli

Workflow, które pozwala na pełne wykorzystanie mocy silnika wersjonowania Perforce Helix, Continuous Integration, i przechowywania artefaktów od packagecloud.io może prezentować się następująco:

  • Zespół modyfikuje i recenzuje kod Java na swoich stacjach roboczych.
  • Kod wysyłany jest na serwer Perforce Helix.
  • Usługa Continuous Integration (np. Jenkins) pyta serwer Helix o aktualny kod do buildu, na przykład przy pomocy wtyczki Perforce Jenkins.
  • Usługa CI buduje i testuje kod.
  • Gdy kod przejdzie testy, do rewizji dodawany jest tag z identyfikatorem wersji, a następnie kod wysyła się na serwer Helix.
  • Build jest kontynuowany poprzez wysyłanie artefaktów JAR przy pomocy Mavena do serwisu packagecloud.io.
  • Oprogramowanie jest teraz gotowe do finalnego wydania.

Korzyści

Nasz przykładowy workflow przynosi następujące profity:

  • Testy wykonują się przy wprowadzaniu nowych zmian, co umożliwia wczesne wyłapanie bugów przez testy automatyczne.
  • Konkretna rewizja, z której będzie budowany nowy obiekt, jest oznaczona tagiem. Pozwala to deweloperowi łatwo porównać dwa buildy, i wychwycić przyczyny spadku wydajności lub bugi.
  • Zbudowane artefakty mają przypisaną wersję. Pozwala to deweloperowi połączyć artefakty z kodem źródłowym, z którego zostały wygenerowane.
  • Zbudowane artefakty przechowywane są w serwisie (np. packagecloud.io) za pośrednictwem Mavena. Pozwala to na łatwe wdrażanie finalnego  oprogramowania i umożliwia łatwy rollback: developer może po prostu zmienić numer wersji do wdrożenia, by wrócić do poprzedniej wersji artefaktu.

Nasz workflow pozwala zespołom zwiększyć szybkość cyklu rozwoju oprogramowania, poprawiając jednocześnie jakość i widoczność.

Zdolność do śledzenia zmian w oprogramowaniu jest kluczowa dla budowania szybszych i wydajniejszych produktów. Podobnie, zdolność do łatwej aktualizacji, cofania wdrożeń, i synchronizacji wewnętrznych usług infrastruktury, jest kluczowa dla utrzymania wydajnego i szybkiego cyklu dostarczania oprogramowania.

 

Related posts