Rozwiązania dla IT
CICD bez bólu – jak zautomatyzować wdrożenia i odzyskać czas na kawę
Czy wyobrażasz sobie proces CICD, który zaczyna się od zmiany wykonanej przez dostawcę Twojego systemu, a kończy wdrożeniem poprawki u Ciebie, na produkcji – bez czasochłonnego przekazywania kodu, bez ręcznego wdrażania, bez stresu?
Brzmi nierealnie?
A jednak – to możliwe.
Jak to działa?
Dostawcy oprogramowania przygotowują zmiany, które po zatwierdzeniu automatycznie trafiają do Twoich repozytoriów. Ty decydujesz, kiedy je zbudować, zainstalować i przetestować w swoich środowiskach. Na końcu Twój biznes akceptuje zmianę, którą wdrożysz na produkcji – również automatycznie. W międzyczasie system wykonuje testy regresji i bezpieczeństwa – w tle, najczęściej w nocy. Ty widzisz tylko raporty z błędami, jeśli się pojawią.
Co z konfiguracją? Kto napisze kod?
Dostosowanie procesu CICD do nowej aplikacji trwa zaledwie dwa dni. Co więcej – ani Ty, ani Twój dostawca nie potrzebujecie specjalistów od programowania pipeline’ów czy pisania testów automatycznych. W naszym podejściu nie trzeba tego robić – nawet się nie da. To nie jest opcja dla tych, którzy lubią „urobić się po łokcie”. To propozycja dla osób, które wolą kliknąć „zatwierdź” i wrócić do kawy, zanim ta wystygnie. Już się domyślasz, że chodzi o rozwiązanie typu „no code”? Tak, niech kodowaniem zajmuje się AI – ludzie są stworzeni do większych wyzwań. CICD bez bólu.
Co z Twoim zespołem DevOps, czy raczej SRE?
Pozostanie równie ważny jak wcześniej, bo będzie w stanie dostarczyć znacznie więcej niż poprzednio i szybciej reagować na zmiany. Właściwie, zamiast tworzyć procesy CICD zajmie się głównie ich monitorowaniem, poprawą dostępności i wydajności … oraz piciem kawy.
Jeśli nie chcesz hostować infrastruktury pod CICD?
To nawet lepiej. Dostarczymy środowisko, którym będziemy zarządzać. Może działać w chmurze, gdziekolwiek – wszystko skonteneryzowane: repozytoria kodu, artefaktów, obrazów, serwer automatyzacji.
Infrastruktura CICD
Jeśli Ty i Twoi dostawcy posiadacie Gita, Nexusa/Artifactory i Jenkinsa – wspaniale, użyjemy istniejącej infrastruktury. Jeżeli czegoś brakuje, mamy wszystkie potrzebne „klocki”, co więcej, są one skonteneryzowane. Możemy je dostarczyć w postaci obrazów na Twoją platformę k8s. Jeśli preferujesz chmurę, „nasz klient, nasz pan” – wdrożymy Twoje CICD w chmurze.
Platforma CICD, co to takiego?
To gotowy framework, „no code solution” CICD, dla Ciebie i Twoich dostawców. Instalujemy nasze oprogramowanie na serwerze automatyzującym Jenkins i to wszystko.
Pierwsza aplikacja w CICD, jak to się robi?
Czym jest aplikacja? Zazwyczaj jest zbiór komponentów (programów, bibliotek, plików, itp.), które mogą być niezależnie budowane i instalowane, lecz ściśle współpracują tworząc wartość biznesową (np. frontend, backend, baza danych). Musisz jedynie zdefiniować strukturę aplikacji (jej komponenty), określić miejsce przechowywania kodów, konfiguracje środowisk uruchomieniowych i gotowe – możemy zaczynać.
Zmiana – to robimy ręcznie
Dostawca oprogramowania, właśnie poprawił błąd lub dodał nową funkcję. Dla utrudnienia, załóżmy, że zmiana dotyczy tylko backendu (frontend oraz struktura bazy bez zmian). Programista twierdzi, że wszystko jest gotowe i może wysłać zmianę mailem do pana Karola. Jednak budował i testował ją na swoim laptopie, więc nie mamy pewności, czy zadziała na Twoich serwerach. Wszystkie procesy powinny być powtarzalne i realizowane z możliwie najmniejszą ingerencją człowieka.
1 krok - Utworzenie wydania
Dostawca definiuje „wydanie” oprogramowania, czyli specyfikację mówiącą, że nowa wersja backendu pracuje razem z aktualną wersją frontendu i bazy. Wydanie jest podstawą wszystkich kolejnych kroków.
2 krok - Budowanie wydania aplikacji
Jeżeli jesteś właścicielem kodów źródłowych, zależy Ci, aby dostawca budował wersję oprogramowania za pomocą dokładnie takich samych mechanizmów, jakie mógłbyś Ty wykorzystać gdybyś chciał budować samodzielnie. Powtarzalność jest tutaj kluczowa. Tego nie może robić programista na swojej stacji roboczej.
3 krok - Wdrożenie w środowiskach testowych
Bez względu na to, czy dostawca daje Ci kod czy już zbudowane komponenty, proces wdrożenia w środowiskach uruchomieniowych u niego i u Ciebie powinien być dokładnie taki sam. Dlaczego? Bo lubimy niespodzianki, ale nie w pracy.
4 krok - Testy automatyczne
Warto mieć przynajmniej zautomatyzowane testy regresji. Test nowej funkcji również, zwłaszcza, że niczego nie kodujemy – definiujemy test deklaratywnie.
5 krok - Przekazanie wydania kodu lub produktu
Dostawca jednym kliknięciem wysyła do Ciebie nowe wydanie aplikacji. Pamiętasz? Tylko nowy backend, bo frontend i bazę dostałeś w poprzednim wydaniu. W razie czego można dla pewności przekazać komplet.
1 krok - Odbiór wydania
Twój dostawca wysłał do Ciebie nowe wydanie aplikacji, ale ono nie trafia bezpośrednio do Twoich repozytoriów, bez Twojej wiedzy i zgody. Dla bezpieczeństwa musisz raz kliknąć i świadomie pobrać oprogramowanie.
2 krok - Budowanie wydania aplikacji
Budowanie wydania będzie Ci potrzebne, jeżeli jesteś właścicielem kodów i chcesz sam budować produkty przed wdrożeniem. Jeżeli dostajesz od dostawcy produkty gotowe do instalacji nie będziesz potrzebował tego procesu.
3 krok - Wdrożenie w środowiskach testowych
Kto wdraża aplikacje w Twoich środowiskach? Twój dostawca? Twoje zespoły? W jaki sposób jest to robione? Framework CICD wdroży je automatycznie, czyli szybko, tanio i całkowicie powtarzalnie.
4 krok - Testy automatyczne
Możesz codziennie uruchamiać testy regresji lub bezpieczeństwa. Tworzenie oraz modyfikacja scenariuszy testowych nie wymaga programowania ani specjalnych narzędzi. Testy wykonywane są przez serwer automatyzacji.
5 krok - Akceptacja wydania do wdrożenia produkcyjnego
Nie musisz się obawiać, że CICD pozwoli komukolwiek uruchomić wdrożenie na produkcję bez uprzedniej akceptacji upoważnionej osoby z Twojego zespołu. Nic nie wydarzy się przypadkiem, bez Twojej zgody i wiedzy. A jeśli aplikacja ma jednak wadę, którą przeoczyły testy? Akceptację można anulować jednym kliknięciem, a powrót do poprzedniej wersji wykonać drugim.
Platforma CICD
Nasza platforma CICD działa w środowisku Kubernetes, zapewniając pełną skalowalność i bezpieczeństwo.
Serwer automatyzacji
W centrum automatyzacji znajduje się Jenkins – sprawdzony serwer, który gwarantuje płynność i niezawodność procesów wdrożeniowych.
Repozytoria
Platforma CICD integruje się z najpopularniejszymi repozytoriami: Git do zarządzania kodem, Nexus i Artifactory do przechowywania artefaktów oraz obrazów.
Wspierane środowiska uruchomieniowe dla wdrożeń
Nie ograniczamy się do jednego typu wdrożeń – wspieramy instalacje w dowolnym środowisku uruchomieniowym. Niezależnie czy wdrażasz obrazy na k8s, aplikacje typu EAR, WAR, JAR na serwerach aplikacji, czy skrypty SQL na bazach danych – nasza platforma obsłuży każdy scenariusz. Dzięki temu możesz wdrażać programy, biblioteki i pliki w sposób szybki, powtarzalny i bezpieczny.
Kroki CICD po stronie dostawcy aplikacji
- Utworzenie wydania aplikacji
- Budowanie wydania aplikacji
- Wdrożenie w środowiskach testowych
- Testowanie
Przekazanie produktów
- Wysłanie przez dostawcę
- Pobranie przez Klienta
Kroki CICD po stronie Klienta
- Budowanie wydania aplikacji *
- Wdrożenie w środowiskach testowych
- Testowanie
- Akceptacja
- Wdrożenie na produkcji