CI oraz CD, czyli o co właściwie chodzi?

Dziesiątki zablokowanych obiektów w SVNie. Przerzucanie się mailami z administratorem baz danych. Wielotygodniowe oczekiwanie na akceptacje instalacji. Jedno wielkie wdrożenie raz na pół roku. Brzmi znajomo?
Właśnie tak wygląda proces developmentu i wdrażania na wielu projektach związanych z Oracle. Programista, zamiast skupić się na wytwarzaniu oprogramowania, musi zadbać o wiele rzeczy. Sprawdzić, czy pliki, których używa, nie są edytowane przez innych. Stworzyć paczkę do instalacji. Przygotować maila do kadry menadżerskiej z prośbą o zatwierdzenie. Wysłać maila do administratora z prośbą o instalację wraz z instrukcją tej instalacji. Zajmuje to czas i energię, czyli zasoby, które powinny być poświęcone na analizę i rozwiązywanie problemów biznesowych.
Możemy mieć też sytuację zupełnie odwrotną. Programista po stworzeniu skryptu uruchamia go na swojej prywatnej bazie developerskiej, dzięki czemu ma kontrolę nad jej stanem. Następnie oddaje skrypt do narzędzia kontroli wersji, które automatycznie rozpozna czy ten sam fragment kodu nie był zmieniany przez innych programistów. Przed zatwierdzeniem zmian otrzymuje feedback o jakości swojej pracy od innych członków zespołu. W tle kod uruchamia się automatycznie na zdefiniowanym środowisku. Sprawdzając w ten sposób, czy zmiany są kompatybilne ze zmianami wprowadzonymi przez innych oraz, czy przechodzą wszystkie zdefiniowane testy. W przypadku spełnienia powyższych warunków kod jest zatwierdzany i oznaczany odpowiednim znacznikiem wersji. Znacznik ten można zainstalować na dowolnym środowisku. Od momentu zatwierdzenia wszystko dzieje się automatycznie. Dzięki temu programista może skupić się na dostarczaniu wartości biznesowej.
Powyżej opisałem przykład zaimplementowania procesu CI oraz CD. Proces Continuous Integration (CI) polega na umożliwieniu programiście szybkiego sprawdzenia, czy jego kod działa, poprawnie kompiluje się na bazie danych oraz współgra z oprogramowaniem wytworzonym przez innych członków zespołu. Proces CI jest również wstępem do procesu Continuous Delivery (CD), czyli instalowaniu kolejnych wydań na środowiskach. Bez dobrze zautomatyzowanego procesu CI nie jesteśmy w stanie zaimplementować poprawnie procesu CD.
Wdrażając powyższe procesy, w prosty sposób zwiększyliśmy ilość sprawdzeń, automatyzacji, usunęliśmy często błędogenny czynnik ludzki. Zmniejszyliśmy również czas potrzebny do instalacji.
Dzięki wykorzystaniu podejścia ciągłej integracji, czyli Continuous Integration możemy rozwiązać wiele problemów wśród zespołów, które pracują nad tym samym produktem, w tym najważniejszy — ciągła integracja kodu. Zwiększymy w ten sposób zarówno szybkość wykrywania potencjalnych błędów jak i wydajność zespołu, który zamiast skupiać się na zarządzaniu zmianami może zająć się dostarczaniem produktu.
W kolejnych artykułach przedstawię narzędzia i podejścia, które pomogą nam osiągnąć taki poziom dostarczania oprogramowania z bazami Oracle.
Najnowsze komentarze